
一文快速了解如何調用天工API接口
HarmonyOS NEXT將在今年第四季度正式商用,目前已有top5000應用開啟了原生鴻蒙應用的開發,鴻蒙生態也將會越來越豐富。HarmonyOS NEXT正吸引著越來越多的開發者加入原生鴻蒙應用開發隊伍之中去。俗話說“站在風口浪尖上,豬都能飛起來”,抓住鴻蒙應用搶占先機,是很多應用開發者目前最應該做的。
我們將使用扣子(coze)智能體API開發一個起床文案生成器,用于自己的鴻蒙應用中生成”千人千面“的起床文案。
扣子支持將 Bot 發布為 API 服務,并提供了一系列接口,支持開發者在自己的應用中構建 AI 助手。當前,扣子 API 免費供開發者使用,每個空間的 API 請求限額為:每秒 2 次 (QPS),每分鐘 60 次 (QPM),每天 3000 次 (QPD)。
名詞 | 說明 |
會話(Conversation) | Bot 和用戶之間的一段問答交互。一個會話包含一條或多條消息,并且能夠自動處理截斷,以適應模型的上下文內容。 |
消息(Message) | 一條由用戶或 Bot 創建的消息,消息內容可以包括文本、圖片或文件。消息以列表的形式儲存在對話中。 |
對話(Chat) | 在會話中對 Bot 的一次調用。Bot 收到請求后,結合用戶輸入、通過預設的一系列工作流等配置來調用模型或工具執行指定任務。每個對話都是會話的一部分,Bot 會將對話中產生的消息添加到會話中。 你可以直接發起會話,與 Bot 進行一次交互;也可以創建會話和消息,并在指定會話中發起對話,會話中的其他消息會作為歷史消息傳遞給大模型。 |
根據用戶提供的信息(如稱呼、提醒事項、喜好、城市等),針對每個維度進行相關數據查詢、文案編輯等處理,最終將所有結果整合到一起進行統一潤色,生成一篇完整的文案。如圖:
本次開發主要使用到了扣子(coze)平臺的Bot、工作流。
可以在API HUB中找到 扣子API 或發現其他 AI 相關API。
點擊”開始使用“輸入手機號登錄或者使用抖音一鍵登錄功能(如果首次登錄還需要填寫一些注冊信息)。登錄成功后跳轉到控制臺如圖:
工作流支持通過可視化的方式,對插件、大語言模型、代碼塊等功能進行組合,從而實現復雜、穩定的業務流程編排,例如旅行規劃、報告分析等。
當目標任務場景包含較多的步驟,且對輸出結果的準確性、格式有嚴格要求時,適合配置工作流來實現。
工作流由多個節點構成,節點是組成工作流的基本單元。例如,大語言模型 LLM、自定義代碼、判斷邏輯等節點。
工作流默認包含了開始節點和結束節點。
不同節點可能需要不同的輸入參數,輸入參數分為引用和輸入兩類。引用是指引用前面節點的參數值、輸入則是支持設定自定義的參數值。
依次點擊 個人空間 -> 工作流 -> 創建工作流
在彈窗中填寫相關信息
篇幅原因,我們目前暫時只做兩個維度:用戶的稱呼、用戶城市的天氣和用戶的代辦清單。
如圖,我們的工作流一共需要提供4個輸入參數,其中 userName 和 botName 用與最終生成的文案中的稱呼,city 和 todoList 兩個字段分別表示用戶所在城市和代辦清單,其中代辦清單的類型是一個數組,數組中的每一項包含代辦的描述和代辦的時間。所有參數均不是必填項。
全局瀏覽如圖
新增一個”選擇器節點“:在 如果 中引用變量 city ,選擇條件中選擇 不為空。由于輸入中我們設置的所有字段均可以不填寫,所以在這里我們需要判斷一下city字段是否填寫,如果填寫了才能進行接下來的維度一的流程。
獲取”實時的天氣“:我們需要調用一些天氣信息服務商提供的接口,這里有兩個方案:
獲取輸入參數:根據墨跡天氣插件的輸入參數,我們需要從開始節點的輸入中 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 格式天氣數據展開分析與回答,杜絕主觀臆測。
- 語言始終維持溫馨、積極、鼓舞人心的格調,規避負面或憂慮的表述。
- 回復內容務必簡潔清晰、重點突出、通俗易懂。
至此,我們維度一(城市天氣的)所需要的節點就設置完畢了,把他們鏈接起來:
總結
先判斷是否存在參數城市信息(選擇器節點)->補全城市信息(大模型節點)->獲取天氣信息(墨跡天氣插件)->分析天氣信息(大模型節點)
全局瀏覽如圖
新增一個”選擇器節點“:判斷是否存在代辦信息
新增一個”大模型節點“:
至此,我們維度二(代辦清單)所需要的節點就設置完畢了,把他們鏈接起來:
總結
先判斷是否存在代辦清單(選擇器節點)->分析代辦清單(大模型節點)
新增一個”大模型節點“:
人設與回復邏輯:
# 角色
你是早小安,是經驗豐富且專業的清晨叫醒服務專家,能夠依據用戶提供的具體情況創作出一篇細致且充滿活力的早安叫醒長文,讓被叫醒的人開啟元氣滿滿的新一天。
## 技能
### 技能 1: 編寫早安叫醒文本
1. 全面且深入地剖析用戶所提供的信息,精準抓取核心要點。
2. 靈活運用親切、樂觀、振奮人心的措辭,巧妙地將關鍵信息自然融入文本之中。
3. 所創作的文本需具備一定規模,涵蓋誠摯的問候、有力的鼓舞、貼心的提醒等豐富內容。
4. 在融入有效信息的基礎上,盡可能使文本篇幅較長且表述詳盡。
## 限制:
- 文本結構清晰,合理分段,層次分明。
- 嚴格依據用戶給出的信息進行編寫早安叫醒文本,堅決不自行添加無關緊要的內容。
- 始終保持語言風格的溫馨、積極、鼓舞人心特質。
- 所生成的文本內容務必符合道德規范與法律法規要求。
其中,輸入參數一共接收4個參數,分別是開始節點的兩個稱呼(用戶稱呼和智能體稱呼)和兩個維度(城市天氣和代辦清單)的輸出結果。進行潤色總結后進行輸出。
所有的節點已經設置完畢,把他們連起來。注意,選擇器節點的否則也要鏈接到信息總和節點中,表示跳過獲取城市信息的流程。
點擊試運行
輸入測試數據,點擊運行
查看測試結果
測試結果沒有問題后,將工作流進行發布。
工作流發布成功后,回到控制臺點擊創建Bot
# 角色
你是早小安,是專業的清晨叫醒服務專家,可以根據用戶提供的信息編寫一段較長的早安叫醒文本,為被叫醒的人帶來活力滿滿的一天。
## 技能
### 技能 1: 編寫早安叫醒文本
1. 仔細分析用戶提供的信息,提取關鍵元素。
2. 運用溫馨、積極、鼓舞人心的語言,將關鍵信息融入文本中。
3. 文本應具有一定的長度,包含問候、鼓勵、提醒等內容
4. 文本在包含有效信息的情況盡量長
## 限制:
- 條理清晰,分段。
- 僅根據用戶提供的信息編寫早安叫醒文本,不自行添加無關內容。
- 語言風格保持溫馨、積極、鼓舞人心。
- 文本內容符合道德和法律規范。
注意:根據需求點選,需要通過API接口調用則一定要點選”Bot as API“。
在控制臺頁面點擊“扣子 API”
選擇“API 令牌”并根據提示生成令牌。
我們以 python 語言為例:
import requests
import json
# 定義 API 的 URL
url = '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均已上架,歡迎大家來玩來交流~