最近百度不僅開放了文心一言的服務,同時也開放了文心一言的介面,也就是百度的千帆大模型服務。
開發者只需要呼叫介面就可以將文心一言的功能整合到自己的應用中了。
首先開啟百度雲智慧官網,選擇文心千帆大模型平臺。
點選立即使用,進入控制檯。
如果沒有登入的話,此時會彈出登入框,使用百度賬號登入即可。
首次註冊的使用者,需要進行實名認證,點選實名認證,填寫真實姓名和身份證號碼,點選提交即可。
首次註冊的使用者也會贈送一定額度的代金券,無需啟用,直接使用,可以作為免費試用。
進入控制檯之後,我們在側邊欄找到【大模型服務】下的【應用接入】,然後選擇【建立應用】
進入應用建立頁面,填寫對應的應用名稱和簡介,這部分僅作為個人應用開發的標識,根據實際需求填寫即可。
可以看到服務設定中,已經預設開啟了所有公共的服務,無須選擇,直接點選【建立】即可。
建立完成之後,在應用列表中,可以看到我們剛剛建立的應用,其中包含了APP ID和 Secret Key,這兩個引數是我們呼叫介面時需要使用的引數,複製出來,妥善儲存。
完成應用註冊之後,我們就可以使用文心一言的介面了。
可以檢視API檔案
選擇需要使用的模型,其中 ERNIE-Bot 和 ERNIE-Bot-Turbo 是文心一言的模型,區別在於 ERNIE-Bot 提供了更多可以調整的引數,ERNIE-Bot-Turbo 提供了更快的響應速度。
可以直接使用API介面進行呼叫,也可以使用SDK進行呼叫。
官方沒有提供SDK,但是已經有不少第三方的SDK,可以直接使用。
作為範例,這裡使用 ERNIE-Bot.SDK。
首先安裝 nuget package
dotnet add package ERNIE-Bot.SDK --prerelease
然後初始化一個 Client
using ERNIE_Bot.SDK;
var client = new ERNIEBotClient(clientId,clientSecret);
呼叫介面分為兩種型別,一個是同步模式的,一個是流式模式。
同步模式的介面,需要將所有的文字傳入,然後一次性返回結果。
使用ChatAsync方法就可以呼叫同步介面了。
方法接收兩個引數,一個是訊息記錄Messages,一個是模型的地址。
訊息中的角色分為兩種,一個是使用者(MessageRole.User),另一個是助理(MessageRole.Assistant)。
單輪對話的時候,只需要有一個使用者的訊息即可,多輪對話的時候,需要有多組訊息,使用者和助理依次出現,最後一條訊息的角色必須是使用者。
模型的地址可以在 ModeEndpoints中選擇。
var result = await client.ChatAsync(new ChatRequest()
{
Messages = new List<ERNIE_Bot.SDK.Models.Message>()
{
new Message()
{
Role = MessageRole.User,
Content = "Hello"
}
}
}, ModelEndpoints.ERNIE_Bot_Turbo);
如果使用ERNIE-Bot 模型的話,可以使用ChatCompletionsRequest, 提供更多的引數,例如 temperature、top_p和penalty_score。
流式模式的介面,將返回多條結果,將結果拼接起來就是完整的回覆內容了。
var results = client.ChatStreamAsync(new ChatRequest()
{
Messages = new List<ERNIE_Bot.SDK.Models.Message>()
{
new Message()
{
Role = MessageRole.User,
Content = "你好!"
}
}
}, ModelEndpoints.ERNIE_Bot_Turbo);
除了ERNIE-Bot
和ERNIE-Bot-Turbo
之外,還有其他的模型,例如BLOOMZ-7B
,Llama_2_7b_chat
,Llama_2_13b_chat
,Llama_2_70b_chat
,Qianfan_BLOOMZ_7B_compressed
,Qianfan_Chinese_Llama_2_7b
,ChatGLM2_6b_32k
,AquilaChat_7b
等,都是公共服務模型,可以直接使用。
可以自行評估,根據實際需求選擇合適的模型。
本作品採用知識共用署名-相同方式共用 4.0 國際許可協定進行許可。