用好AppBuilder-SDK,每天都能偷偷早下班

本文主要是對這次AppBuilder-SDK直播課程的文字總結,主題是如何在Python中使用AppBuilder-SDK(使用的IDE 爲 PyCharm社區版)感興趣的朋友也可以去看直播課回放。



直播課:

AppBuilder-代碼態訓練營來啦!快速上手SDK

回放地址:

https://cloud.baidu.com/qianfandev/live/54e3590458



Ai technology

如何安裝

在Pycharm的終端中執行如下命令,快速安裝Python語言的最新版本AppBuilder-SDK,要求 Python版本 >= 3.9。


python3 -m pip install --upgrade appbuilder-sdk




Ai technology

如何獲取密鑰

前往API密鑰,點擊【新增密鑰】按鈕創建密鑰,可自定義備註,支持一鍵複製操作。

這裏要提醒一下,密鑰是比較重要的,自己的密鑰儘量不要外傳。如果刪掉了的話,這個密鑰也是不可恢復的。所以一定保管好密鑰。



Ai technology

實例展示

1.獲取模型列表

將下面這段代碼粘貼到pycharm編輯器中,使用你自己的API密鑰替換["APPBUILDER_TOKEN"] = "..."中的三個點


import osimport appbuilder# 設置環境變量和初始化# 請前往千帆AppBuilder官網創建密鑰,流程詳見:https://cloud.baidu.com/doc/AppBuilder/s/Olq6grrt6#1%E3%80%81%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5os.environ["APPBUILDER_TOKEN"] = "..."models = appbuilder.get_model_list(api_type_filter=["chat"], is_available=True)print(models)


運行代碼之後就會返回你的這個API密鑰當前開通的模型服務

PS. 千帆上有很多模型,這裏不做介紹,需要的話可以去這裏開通付費百度智能雲控制檯 (baidu.com)


2.使用SDK調用創建的應用

所有的實例文檔都可以從這裏獲取

AppBuilder 示例代碼集

此處我們使用“快遞助手”這個實例代碼來進行講解


1.需要你創建一個快遞助手的應用,怎麼創建應用這裏就不展開講了,想要詳細瞭解的可以看這兩個直播的錄屏

AppBuilder原生應用訓練營-如何三步手搓精準多輪agent - 百度智能雲千帆社區 (baidu.com)

AppBuilder又上新能力了?直播幫你get工作流編排新功能 - 百度智能雲千帆社區 (baidu.com)

這裏我們快速的創建一個“快遞助手”應用


1.1 進入百度智能雲控制檯 (baidu.com),點擊“創建應用”


1.2 點擊AI自動生成配置,自動化生成一個快遞查詢助手



1.3 自動生成的Agent僅僅是對大模型進行了角色設定,要真的讓他有三頭六臂(查詢快遞的功能)還需要添加具體的組件,點擊下方的這個按鈕


添加下方的兩個組件


1.4 此時可以再點擊一下角色指令優化功能,這樣的話Appbuilder可以抓取你添加的組件,重新生成一個角色指令


1.5 最後點擊“發佈”,我們的一個“快遞查詢”的Agent就快速生成好了

2.API密鑰的獲取方式上文中提到了,這裏就不贅述了


3.獲取應用ID,那麼應用ID從哪裏看進到個人主頁的應用列表,下圖中標黃的那些就是你的剛創建的快遞助手應用ID了

這裏有一點要注意的,每個人的API key只能調用自己創建的應用。


4.現在我們可以在代碼中體驗它了

複製下列代碼到pycharm編輯器中,替換其中的secret_key,和 APP ID,點擊run 就可以了

import appbuilderimport os# 注意以下示例正確運行依賴的條件包括:# 1. 在百度智能雲千帆AppBuilder官網使用AppBuilderClient創建應用且應用已發佈# 2. 密鑰正確有效# 3. 密鑰需要與發佈應用正確對應,即需要使用發佈應用的賬戶下的密鑰# 配置密鑰與應用IDos.environ["APPBUILDER_TOKEN"] ="secret_key"app_id = "APP ID"# 初始化Agentbuilder = appbuilder.AppBuilderClient(app_id)# 創建會話IDconversation_id = builder.create_conversation()# 執行對話msg = builder.run(conversation_id, "我的快遞單號是:9858485940100; 請查詢下此快遞的狀態")print("快遞查詢助理回答內容:", msg.content.answer)# 執行流式對話msg1 = builder.run(conversation_id, "使用語音播報快遞當前狀態", stream=True)for content in msg1.content:    for ev in content.events:        if ev.content_type == "audio":            print("快遞查詢助理生成的音頻播放地址:", ev.detail["audio"])


5.點擊Run之後,你應該能得到這樣的結果


6.你也可以加入這樣一條命令來看具體的輸出細節


print(msg.model_dump_json(indent=4))



3.使用SDK調用創建的組件

Appbuilder還提供了一種調用方式,如果你認爲某一個組件很好用,可以直接調用這個組件,Appbuilder目前提供了這些組件可供調用,在SDK介紹文檔中的此處可以看到


代碼體驗語音合成功能

此處我們使用“TTS語音講解”這個組件來進行講解,詳細信息請看:Github文檔

1.此時我們先去薅個羊毛,點擊文檔的這裏領取免費額度

在彈出的頁面中選中語音合成的全部功能以及其他中的圖像內容理解功能,點擊0元領取

(這兩個功能是演示用到的,對於其餘的,強烈建議大家現在先全都領了,過了這村沒這店了)

2.複製下列代碼到pycharm編輯器中,用自己的API key替換其中的secret_key



import osimport appbuilder
# 請前往千帆AppBuilder官網創建密鑰,流程詳見:https://cloud.baidu.com/doc/AppBuilder/s/Olq6grrt6#1%E3%80%81%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5os.environ["APPBUILDER_TOKEN"] = "secret_key"tts = appbuilder.TTS()cwd = os.getcwd()
# 使用baidu-tts模型, 默認返回MP3格式inp = appbuilder.Message(content={"text": "歡迎使用語音合成"})out = tts.run(inp)mp3_sample_path = os.path.join(cwd,"sample_baidu_tts.mp3")with open(mp3_sample_path, "wb") as f: f.write(out.content["audio_binary"])print("成功將文本轉語音,mp3格式文件已寫入:{}".format(mp3_sample_path))
# 使用paddlespeech-tts模型,目前只支持返回WAV格式wav_sample_path = os.path.join(cwd,"sample_paddlespeech_tts.wav")inp = appbuilder.Message(content={"text": "歡迎使用語音合成"})out = tts.run(inp, model="paddlespeech-tts", audio_type="wav")with open(wav_sample_path, "wb") as f: f.write(out.content["audio_binary"])print("成功將文本轉語音,wav格式文件已寫入:{}".format(wav_sample_path))



代碼中的這個部分是我們讓其生成語音的部分

這段代碼中共有兩個模型,可以對比一下選一個你喜歡的(我喜歡paddlespeech-tts)


代碼體驗圖片理解功能

1.這裏分享另一個用來找示例代碼的方式,進入組件廣場,點擊圖片內容理解組件,在SDK示例代碼中就可以看到代碼例子了

2.將示例代碼粘貼到pycharm編輯器中,用自己的API key替換其中的secret_key

下圖中圈出的部分就是我們讓這個組件去理解的內容


這張圖片長這樣

運行後,我們就可以得到圖片的內容了


在百度智能雲控制檯 (baidu.com)中,知識庫在個人空間裏,你可以在這裏添加或修改知識庫

那麼怎麼使用SDK去創建和修改知識庫呢,可以直接看此處的Github文檔,爲照顧不方便訪問GitHub的朋友,我直接粘貼過來


#  請前往千帆AppBuilder官網創建密鑰,流程詳見:https://cloud.baidu.com/doc/AppBuilder/s/Olq6grrt6#1%E3%80%81%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5os.environ["APPBUILDER_TOKEN"] = "..."print("init done")init done


相關功能

初始化已有知識庫

在個人空間裏查看知識庫ID,示例

# 初始化已有線上知識庫, dataset_id 替換爲知識庫IDdataset = appbuilder.console.Dataset(dataset_id)


創建全新知識庫

# 創建全新知識庫dataset = appbuilder.console.Dataset.create_dataset("my_dataset")


上傳文檔到知識庫

# 設置文檔路徑,例如“./test.pdf”file_path1 = "..."file_path2 = "..."file_paths = [file_path1, file_path2]# 將文檔上傳到知識庫document_infos = dataset.add_documents(file_paths)print(document_infos)


獲取知識庫中的文檔列表

# 獲取第一頁的文檔列表, 每頁10條document_list = dataset.get_documents(1, 10)print(document_list)


刪除知識庫中的文檔

# 刪除第一個文檔document_ids = [document_list.data[0].id]dataset.delete_documents(document_ids)



Ai technology

題外話:

Open API 和 Assistants API

Appbuilder 還提供了 API 接口調用的方式,具體文檔可以看這裏Open API文檔

幾個常用接口:新建會話、文件上傳、大模型對話都在這裏,感興趣的朋友可以深入研究


Assistants API

Appbuilder還提供了一個Assistants API,具體文檔可以看這裏Assistants API


截至發稿日,尚在內測,感興趣的朋友可以去深入研究




Ai technology

作者介紹

莫爾斯Gold,專業的金融從業者,AI應用發明家,致力於通過構建智能應用簡化生活,解決實際問題。期待與您探討AI應用的潛力。


⬇️點擊「原文鏈接」前往觀看本次直播回放

本文分享自微信公衆號 - 百度開發者中心(baidudev)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章