鴻蒙應用實踐:利用扣子API開發起床文案生成器

前言

扣子是一個新一代 AI 應用開發平臺,無需編程基礎即可快速搭建基于大模型的 Bot,并發布到各個渠道。平臺優勢包括無限拓展的能力集(內置和自定義插件)、豐富的數據源(支持多種數據格式和上傳方式)、持久化的記憶能力(通過數據庫記住用戶重要信息)以及靈活的工作流設計(通過拖拉拽方式處理復雜任務)。這些功能使得用戶可以輕松創建功能強大的 Bot 來處理各種任務。

HarmonyOS NEXT將在今年第四季度正式商用,目前已有top5000應用開啟了原生鴻蒙應用的開發,鴻蒙生態也將會越來越豐富。HarmonyOS NEXT正吸引著越來越多的開發者加入原生鴻蒙應用開發隊伍之中去。俗話說“站在風口浪尖上,豬都能飛起來”,抓住鴻蒙應用搶占先機,是很多應用開發者目前最應該做的。

我們將使用扣子(coze)智能體API開發一個起床文案生成器,用于自己的鴻蒙應用中生成”千人千面“的起床文案。

什么是扣子(coze)智能體API

扣子支持將 Bot 發布為 API 服務,并提供了一系列接口,支持開發者在自己的應用中構建 AI 助手。當前,扣子 API 免費供開發者使用,每個空間的 API 請求限額為:每秒 2 次 (QPS),每分鐘 60 次 (QPM),每天 3000 次 (QPD)。

基礎概念

名詞說明
會話(Conversation)Bot 和用戶之間的一段問答交互。一個會話包含一條或多條消息,并且能夠自動處理截斷,以適應模型的上下文內容。
消息(Message)一條由用戶或 Bot 創建的消息,消息內容可以包括文本、圖片或文件。消息以列表的形式儲存在對話中。
對話(Chat)在會話中對 Bot 的一次調用。Bot 收到請求后,結合用戶輸入、通過預設的一系列工作流等配置來調用模型或工具執行指定任務。每個對話都是會話的一部分,Bot 會將對話中產生的消息添加到會話中。
你可以直接發起會話,與 Bot 進行一次交互;也可以創建會話和消息,并在指定會話中發起對話,會話中的其他消息會作為歷史消息傳遞給大模型。

起床文案生成的原理

根據用戶提供的信息(如稱呼、提醒事項、喜好、城市等),針對每個維度進行相關數據查詢、文案編輯等處理,最終將所有結果整合到一起進行統一潤色,生成一篇完整的文案。如圖:

開發起床文案生成器的具體實現流程

本次開發主要使用到了扣子(coze)平臺的Bot、工作流。

1. 注冊并登錄扣子(coze)平臺

1.1. 進入扣子(coze)官網

可以在API HUB中找到?扣子API?或發現其他 AI 相關API。

1.2. 注冊(登錄賬號)

點擊”開始使用“輸入手機號登錄或者使用抖音一鍵登錄功能(如果首次登錄還需要填寫一些注冊信息)。登錄成功后跳轉到控制臺如圖:

2. 創建工作流

2.1. 工作流基本概念

工作流支持通過可視化的方式,對插件、大語言模型、代碼塊等功能進行組合,從而實現復雜、穩定的業務流程編排,例如旅行規劃、報告分析等。

當目標任務場景包含較多的步驟,且對輸出結果的準確性、格式有嚴格要求時,適合配置工作流來實現。

2.2. 功能概述

工作流由多個節點構成,節點是組成工作流的基本單元。例如,大語言模型 LLM、自定義代碼、判斷邏輯等節點。

工作流默認包含了開始節點和結束節點。

  • 開始節點是工作流的起始節點,可以包含用戶輸入信息。
  • 結束節點是工作流的末尾節點,用于返回工作流的運行結果。

不同節點可能需要不同的輸入參數,輸入參數分為引用和輸入兩類。引用是指引用前面節點的參數值、輸入則是支持設定自定義的參數值。

2.3. 創建工作流

依次點擊 個人空間 -> 工作流 -> 創建工作流

在彈窗中填寫相關信息

2.4. 編輯工作流程

篇幅原因,我們目前暫時只做兩個維度:用戶的稱呼、用戶城市的天氣和用戶的代辦清單。

2.4.1. 編輯開始節點

如圖,我們的工作流一共需要提供4個輸入參數,其中 userName 和 botName 用與最終生成的文案中的稱呼,city 和 todoList 兩個字段分別表示用戶所在城市和代辦清單,其中代辦清單的類型是一個數組,數組中的每一項包含代辦的描述和代辦的時間。所有參數均不是必填項。

2.4.2. 維度一(城市天氣)

全局瀏覽如圖

新增一個”選擇器節點“:在 如果 中引用變量 city ,選擇條件中選擇 不為空。由于輸入中我們設置的所有字段均可以不填寫,所以在這里我們需要判斷一下city字段是否填寫,如果填寫了才能進行接下來的維度一的流程。

獲取”實時的天氣“:我們需要調用一些天氣信息服務商提供的接口,這里有兩個方案:

  • 方案一:使用代碼節點,通過編寫 js 代碼編寫網絡請求的方式,獲取實時天氣。(優點:獲取信息的方式更加自由。缺點:需要編程基礎,需要自行尋找接口服務商。)
  • 方案二:使用插件節點,到插件商店中選擇已經上架商店的現成的插件。如圖,這里我們選擇墨跡天氣。(優點:集成方便。缺點:自由度不高,智能使用已有的。)

獲取輸入參數:根據墨跡天氣插件的輸入參數,我們需要從開始節點的輸入中 city 字段中獲取這些輸入參數,但是用戶輸入的城市信息是不可控的,所以我們需要大模型的介入來處理這些信息,獲取這些數據。

新增一個”大模型節點“:點擊新增大模型節點

模型我們選擇默認的模型,在輸入參數中選擇city字段,創建輸出字段,與墨跡插件的輸入字段保持一致:

編寫提示詞:讓大模型根據城市信息填充輸出字段。示例如下:

## Global- 提取出{{city}}中的城市名稱,并將信息補全## Skill ### Skill1 提取城市- 將{{city}}中的城市名稱提取出來。### Skill2 補全信息- 將提取出的城市名稱進行補全,盡可能的補全信息,例如:臺湖鎮,補全后為:北京市通州區臺湖鎮。### Skill2 城市信息輸出- 將補全后信息里的省份名,不包含直轄市作為province的值輸出- 將補全后信息里的市名,包含直轄市作為city的值輸出- 將補全后信息里的區縣鎮作為towns的值輸出- 將補全后信息里的鄉村作為villages的值輸出- 將 當前時間 作為start_time的值輸出- 將 7天后的時間 作為end_time的值輸出## Constraints

這個節點放置在墨跡天氣插件節點的前邊,就能保證墨跡天氣可以獲取到想要的參數了。

新增一個大模型節點:成功獲取到想要的天氣信息后,我們需要通過大模型來對天氣信息進行分析、處理和總結。

設置人設與回復邏輯:

# 角色你是一位資深的天氣信息分析專家,擅長運用親切、溫暖且充滿正能量的語言,依據給定的 json 格式數據,為用戶精準剖析接下來 7 天的天氣詳情。## 技能### 技能 1: 詳述今日天氣1. 精準闡述今天的天氣各項要素,涵蓋溫度高低、天空狀況、風力大小等。2. 以溫馨且積極的言辭傳達今天的天氣給人的舒適感受。### 技能 2: 研判后續天氣1. 全面概括接下來一周的天氣變動走向,包含溫度起伏、晴雨交替等。2. 用鼓舞人心的話語讓用戶對未來天氣滿懷樂觀與憧憬。### 技能 3: 給予穿衣指導1. 依照天氣狀況,給出貼合近期的時尚又舒適的穿搭提議。2. 著重強調舒適與美觀二者的完美融合。### 技能 4: 預警極端天氣1. 密切關注并明確指出近期可能出現的極端天氣狀況。2. 提供詳盡的防范手段和應對策略。### 技能 5: 確定雨傘攜帶1. 確切告知用戶今日出門是否需要攜帶雨傘。2. 清晰解釋如此決策的依據,讓用戶一目了然。## 限制- 僅依據給定的 json 格式天氣數據展開分析與回答,杜絕主觀臆測。- 語言始終維持溫馨、積極、鼓舞人心的格調,規避負面或憂慮的表述。- 回復內容務必簡潔清晰、重點突出、通俗易懂。

至此,我們維度一(城市天氣的)所需要的節點就設置完畢了,把他們鏈接起來:

總結

先判斷是否存在參數城市信息(選擇器節點)->補全城市信息(大模型節點)->獲取天氣信息(墨跡天氣插件)->分析天氣信息(大模型節點)

2.4.3. 維度二(代辦清單)

全局瀏覽如圖

新增一個”選擇器節點“:判斷是否存在代辦信息

新增一個”大模型節點“:

至此,我們維度二(代辦清單)所需要的節點就設置完畢了,把他們鏈接起來:

總結

先判斷是否存在代辦清單(選擇器節點)->分析代辦清單(大模型節點)

2.4.4. 生成親切的早安問候(多維度生成結果合并,統一潤色)

新增一個”大模型節點“:

人設與回復邏輯:

# 角色你是早小安,是經驗豐富且專業的清晨叫醒服務專家,能夠依據用戶提供的具體情況創作出一篇細致且充滿活力的早安叫醒長文,讓被叫醒的人開啟元氣滿滿的新一天。## 技能### 技能 1: 編寫早安叫醒文本1. 全面且深入地剖析用戶所提供的信息,精準抓取核心要點。2. 靈活運用親切、樂觀、振奮人心的措辭,巧妙地將關鍵信息自然融入文本之中。3. 所創作的文本需具備一定規模,涵蓋誠摯的問候、有力的鼓舞、貼心的提醒等豐富內容。4. 在融入有效信息的基礎上,盡可能使文本篇幅較長且表述詳盡。## 限制:- 文本結構清晰,合理分段,層次分明。- 嚴格依據用戶給出的信息進行編寫早安叫醒文本,堅決不自行添加無關緊要的內容。- 始終保持語言風格的溫馨、積極、鼓舞人心特質。- 所生成的文本內容務必符合道德規范與法律法規要求。

其中,輸入參數一共接收4個參數,分別是開始節點的兩個稱呼(用戶稱呼和智能體稱呼)和兩個維度(城市天氣和代辦清單)的輸出結果。進行潤色總結后進行輸出。

2.4.5. 編輯結束節點

所有的節點已經設置完畢,把他們連起來。注意,選擇器節點的否則也要鏈接到信息總和節點中,表示跳過獲取城市信息的流程。

2.5. 試運行(測試)工作流

2.5.1. 試運行

點擊試運行

輸入測試數據,點擊運行

查看測試結果

2.5.2. 發布

測試結果沒有問題后,將工作流進行發布。

3. 創建Bot

工作流發布成功后,回到控制臺點擊創建Bot

3.1. 填寫相關信息

3.2. 填寫人設與回復邏輯:

# 角色你是早小安,是專業的清晨叫醒服務專家,可以根據用戶提供的信息編寫一段較長的早安叫醒文本,為被叫醒的人帶來活力滿滿的一天。## 技能### 技能 1: 編寫早安叫醒文本1. 仔細分析用戶提供的信息,提取關鍵元素。2. 運用溫馨、積極、鼓舞人心的語言,將關鍵信息融入文本中。3. 文本應具有一定的長度,包含問候、鼓勵、提醒等內容4. 文本在包含有效信息的情況盡量長## 限制:- 條理清晰,分段。- 僅根據用戶提供的信息編寫早安叫醒文本,不自行添加無關內容。- 語言風格保持溫馨、積極、鼓舞人心。- 文本內容符合道德和法律規范。

3.3. 添加剛剛發布的工作流

3.4. 預覽并調試并查看調試詳情

3.5. 確認無誤后點擊發布

注意:根據需求點選,需要通過API接口調用則一定要點選”Bot as API“。

4. API調用Bot

4.1. 生成個人訪問令牌

在控制臺頁面點擊“扣子 API”

選擇“API 令牌”并根據提示生成令牌。

4.2. 發送請求

我們以 python 語言為例:

import requestsimport json# 定義 API 的 URLurl = 'https://api.coze.cn/open_api/v2/chat'# 定義請求頭headers = {    'Authorization': 'Bearer {{Personal_Access_Token}}',    'Content-Type': 'application/json',    'Connection': 'keep-alive',    'Accept': '*/*'}# 定義請求體data = {    "bot_id": "{{Bot_Id}}",    "conversation_id": "123",    "user": "user_1",    "query": "我是小明,你是早小安,北京,今天記得完成周末作業,下午去姥姥家買菜,明天去爺爺家看望領居張奶奶,小狗生病了,給于一下人文關懷,記得吃藥",    "stream": False,}# 將請求體轉換為 JSON 格式的字符串json_data = json.dumps(data)# 發送 POST 請求response = requests.post(url, headers=headers, json=data)  # 使用 json 參數自動設置正確的 Content-Type# 打印響應內容print(response.text)

請求成功:

至此,我們的起床文案生成器開發完成。

總結

開發的難易程度:使用扣子(coze)平臺開發起床文案生成器相對簡單,不需要編程基礎,通過圖形化的工作流配置就能實現復雜的功能。同時,平臺內置的插件和大語言模型極大地簡化了開發流程。

使用場景暢想:這個起床文案生成器可以用于個人或家庭的早晨問候,也可以在企業內部用于提升員工的早晨活力。此外,還可以在智能家居設備中集成,為用戶提供更加個性化的叫醒服務。

HarmonyOS NEXT應用空白比較大,開發一個智能的鬧鐘還是非常不錯的~

工作流和Bot均已上架,歡迎大家來玩來交流~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42436.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42436.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42436.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[Unity入門01] Unity基本操作

參考的傅老師的教程學了一下Unity的基礎操作: [傅老師/Unity教學] Unity3D基礎入門 [華梵大學] 遊戲引擎應用基礎(Unity版本) Class#01 移動:鼠標中鍵旋轉:鼠標右鍵放大:鼠標滾輪飛行模式:右鍵WASDQEFocus模式&…

算法設計與分析 實驗5 并查集法求圖論橋問題

目錄 一、實驗目的 二、問題描述 三、實驗要求 四、實驗內容 (一)基準算法 (二)高效算法 五、實驗結論 一、實驗目的 1. 掌握圖的連通性。 2. 掌握并查集的基本原理和應用。 二、問題描述 在圖論中,一條邊被稱…

基于Android Studio訂餐管理項目

目錄 項目介紹 圖片展示 運行環境 獲取方式 項目介紹 能夠實現登錄,注冊、首頁、訂餐、購物車,我的。 用戶注冊后,登陸客戶端即可完成訂餐、瀏覽菜譜等功能,點餐,加入購物車,結算,以及刪減…

【學習筆記】操作系統--萬字長文

計算機操作系統 文章目錄 計算機操作系統引言 操作系統基本概念第一章 引論目標和作用操作系統發展歷程單道批處理系統多道批處理系統分時系統實時系統 基本特征并發共享虛擬異步性(不確定性) 操作系統主要功能處理機管理內存管理設備管理文件管理 第二章…

python `queue` 模塊提供了同步的、線程安全的隊列類

在Python中,queue 模塊提供了同步的、線程安全的隊列類,這使得在多線程環境下共享數據變得簡單。下面是一個使用 queue.Queue 的并發編程示例,其中使用了 threading 模塊來創建多個線程,這些線程將向隊列中添加元素并從隊列中取出…

探索 WebKit 的前沿之旅:HTML5 新特性的卓越處理

探索 WebKit 的前沿之旅:HTML5 新特性的卓越處理 隨著 Web 技術的飛速發展,HTML5 已經成為構建現代網頁和應用的基石。WebKit,作為領先的瀏覽器引擎之一,承載著將這些創新技術轉化為用戶可感知體驗的使命。本文將深入探討 WebKit…

工程化:Commitlint / 規范化Git提交消息格式

一、理解Commitlint Commitlint是一個用于規范化Git提交消息格式的工具。它基于Node.js,通過一系列的規則來檢查Git提交信息的格式,確保它們遵循預定義的標準。 1.1、Commitlint的核心功能 代碼規則檢查:Commitlint基于代碼規則進行檢查&a…

匯聚榮拼多多電商的技巧有哪些?

在電商平臺上,匯聚榮拼多多以其獨特的商業模式和創新的營銷策略吸引了大量消費者。那么,如何在這樣一個競爭激烈的平臺上脫穎而出,成為銷售佼佼者呢?本文將深入探討匯聚榮拼多多電商的成功技巧。 一、精準定位目標客戶群體 首先,…

Python魔法函數(Magic Methods簡介

在 Python 中,魔法函數(Magic Methods)也稱為雙下劃線方法(Dunder Methods),是指那些名字以雙下劃線開頭和結尾的特殊方法。 這些方法可以讓您的自定義類實現一些特定的行為,從而與 Python 的內…

絕區肆--2024 年AI安全狀況

前言 隨著人工智能系統變得越來越強大和普及,與之相關的安全問題也越來越多。讓我們來看看 2024 年人工智能安全的現狀——評估威脅、分析漏洞、審查有前景的防御策略,并推測這一關鍵領域的未來可能如何。 主要的人工智能安全威脅 人工智能系統和應用程…

Qt 繪圖詳解

文章目錄 頭文件和構造函數啟用反鋸齒功能繪制矩形繪制圓角矩形繪制橢圓繪制圓弧繪制弦繪制凸多邊形繪制圖片繪制直線繪制多條直線繪制多點連接的線繪制路徑繪制扇形繪制點繪制文本擦除矩形區域填充矩形填充路徑 頭文件和構造函數 #include "mainwindow.h" #include…

C-11 三角剖分的調研

C-11 三角剖分算法 三角剖分就是將輸入的多邊形,分割成一系列互不重疊的三角形,其重要性就在這不多贅述。這個是一個別人總結的鏈接:http://vterrain.org/Implementation/Libs/triangulate.html 圖片鏈接:http://www-cgrl.cs.m…

基于CentOS Stream 9平臺搭建MinIO以及開機自啟

1. 官網 https://min.io/download?licenseagpl&platformlinux 1.1 下載二進制包 指定目錄下載 cd /opt/coisini/ wget https://dl.min.io/server/minio/release/linux-amd64/minio1.2 文件賦權 chmod x /opt/coisini/minio1.3 創建Minio存儲數據目錄: mkdi…

springboot校園安全通事件報告小程序-計算機畢業設計源碼02445

Springboot 校園安全通事件報告小程序系統 摘 要 隨著中國經濟的飛速增長,消費者的智能化水平不斷提高,許多智能手機和相關的軟件正在得到更多的關注和支持。其中,校園安全通事件報告小程序系統更是深得消費者的喜愛,它的出現極大…

關于隱藏、覆蓋(重寫)、重載的理解

定義區分 在派生-對象中:優先考慮隱藏,此時派生類中的覆蓋(重寫)也是隱藏;沒有隱藏的情況下,子類對象才能調用父類重載函數。[此時感覺virtual沒用,]在派生-指針或者引用中:只用覆蓋(重寫)和重載; 注:C Pr…

《Programming from the Ground Up》閱讀筆記:p19-p48

《Programming from the Ground Up》學習第2天,p19-p48總結,總計30頁。 一、技術總結 1.object file p20, An object file is code that is in the machine’s language, but has not been completely put together。 之前在很多地方都看到object fi…

高階K8S面試題你會幾個?

前言 K8S架構、公有云、持久化存儲、HELM、CICD、負載均衡、監控告警、可觀察性、服務治理、架構探索。。。 Q1:如何調試 Kubernetes 集群中的網絡連接問題,比如 Pod 間通信失敗的情況? 狀態檢查:使用 kubectl get pods 和 kube…

MySQL-17-mysql alter 語句如何實現?如何合并為一個

拓展閱讀 MySQL 00 View MySQL 01 Ruler mysql 日常開發規范 MySQL 02 truncate table 與 delete 清空表的區別和坑 MySQL 03 Expression 1 of ORDER BY clause is not in SELECT list,references column MySQL 04 EMOJI 表情與 UTF8MB4 的故事 MySQL 05 MySQL入門教程&a…

Git使用中遇到的問題(隨時更新)

問題1.先創建本地庫,后拉取遠程倉庫時上傳失敗的問題怎么解決? 操作主要步驟: step1 設置遠程倉庫地址: $ git remote add origin gitgitee.com:yourAccount/reponamexxx.git step2 推送到遠程倉庫: $ git push -u origin "master&qu…

線程池理解及7個參數

定義理解 線程池其實是一種池化的技術實現,池化技術的核心思想就是實現資源的復用,避免資源的重復創建和銷毀帶來的性能開銷。線程池可以管理一堆線程,讓線程執行完任務之后不進行銷毀,而是繼續去處理其它線程已經提交的任務。 …