本文將詳細介紹如何調用文心一言ERNIE4.0 API服務,包括獲取 API 密鑰的步驟、基礎配置、API 調用示例及注意事項。

1. 申請 API 密鑰

使用文心一言產品之前,需先在百度開放平臺申請 API 密鑰用于請求認證。

申請步驟:

1. 注冊百度賬號:前往 百度賬號注冊頁面 完成注冊,輸入您的個人信息,如姓名、郵箱等。

2. 成為開發者:在 百度智能云開放平臺 中注冊成為開發者。選擇個人或企業認證并按提示完成。

1.進入百度智能云官網進行登錄

2.進入千帆ModelBuilder點擊左側的應用接入并且點擊創建應用

3.在頁面上的應用名稱輸入上自己想要的應用名稱和應用描述,

4.獲取對應的API Key 和 Secret Key

2. 配置文心一言ERNIE4.0 API并調用

1.選擇一個想要使用的模型

2.調用API調試(本文選擇的為ERNIE-4.0-8K模型)

用Python調用

import os
import qianfan

# 通過環境變量初始化認證信息
# 方式一:【推薦】使用安全認證AK/SK鑒權
# 替換下列示例中參數,安全認證Access Key替換your_iam_ak,Secret Key替換your_iam_sk,如何獲取請查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

# 方式二:【不推薦】使用應用AK/SK鑒權
# 替換下列示例中參數,將應用API_Key、應用Secret key值替換為真實值
#os.environ["QIANFAN_AK"] = "應用API_Key"
#os.environ["QIANFAN_SK"] = "應用Secret_Key"

chat_comp = qianfan.ChatCompletion()

# 指定特定模型
resp = chat_comp.do(model="ERNIE-4.0-8K", messages=[{
"role": "user",
"content": "你好"
}])

print(resp["body"])

用Java調用

import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.model.chat.ChatResponse;

public class Demo {
public static void main(String[] args) {
// 使用安全認證AK/SK鑒權,替換下列示例中參數,安全認證Access Key替換your_iam_ak,Secret Key替換your_iam_sk
Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");

// 指定模型
ChatResponse resp = qianfan.chatCompletion()
.model("ERNIE-4.0-8K")
.addMessage("user", "你好")
.execute();
System.out.println(resp.getResult());
}
}

用Go調用

package main

import (
"context"
"fmt"
"os"

"github.com/baidubce/bce-qianfan-sdk/go/qianfan"
)

func main() {
// 使用安全認證AK/SK鑒權,通過環境變量初始化;替換下列示例中參數,安全認證Access Key替換your_iam_ak,Secret Key替換your_iam_sk
os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")

// 指定特定模型
chat := qianfan.NewChatCompletion(
qianfan.WithModel("ERNIE-4.0-8K"),
)

resp, _ := chat.Do(
context.TODO(),
&qianfan.ChatCompletionRequest{
Messages: []qianfan.ChatCompletionMessage{
qianfan.ChatCompletionUserMessage("你好"),
},
},
)
fmt.Println(resp.Result)
}

用Node.js調用

import {ChatCompletion, setEnvVariable} from "@baiducloud/qianfan";

// 使用安全認證AK/SK鑒權,通過環境變量初始化;替換下列示例中參數,安全認證Access Key替換your_iam_ak,Secret Key替換your_iam_sk
setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');

const client = new ChatCompletion();
async function main() {
const resp = await client.chat({
messages: [
{
role: 'user',
content: '你好',
},
],
}, 'ERNIE-4.0-8K');
console.log(resp);
}

main();

3、使用文心一言ERNIE4.0 API的其他關鍵考慮因素

1. 正確的語法、用詞以及標點

在Prompt中的實體對象存在多種諧音,而我們在拼寫錯的情況下,往往會獲得錯誤的返回結果。同理,在語法錯誤以及標點錯誤的情況下,可能也會得到不符合預期的返回結果。因此,我們在構建Prompt時,需要保證語法、用詞以及標點的準確性來引導模型生成更準確的內容

2. 避免歧義,簡潔易懂

生成式大模型很多時候也和人類的理解能力相似,需要輸入一些更明確的指示內容助于理解并執行內容生成,意圖不明的模糊指令會讓模型生成內容與預期有些偏離,甚至影響原本Prompt指令的生成內容。如下例中,讓大模型生成一個短點的故事內容,在結構上可能進行了縮短,但生成內容有些偏離“故事”本身;而明確讓大模型生成一個故事并規定字數限制后,可見的表現變得更好了

3. 更完整的信息

在針對一些實體對象進行評價、分析等場景時,大模型訓練時不含這類實體對象的語料,就像我們無法對不認識的人產生評價一樣,大模型也無法理解并生成對應的內容。因此,在針對特定對象以及特定場景進行內容生成時,需要補充更完整的背景信息

4. 設定身份視角

在一些對話場景、創作場景下,不同的身份視角往往會基于Prompt具體的指令內容給出不同角度的生成內容,例如在法律咨詢的場景,我們期待大模型基于律師的視角給與建議;在學生考前焦慮的提問對話場景下,可以讓大模型基于老師、家長不同的視角給與建議與安撫

5. 提供生成示例

提供更多明確的示例內容與格式,可以明確大模型生成的內容在可控范圍內,是在很多通用場景下提升大模型生成內容質量的有效手段

6. 限定Prompt指令范圍(To Do and Not To Do)

在一些需要明確返回內容范圍的場景,例如需要通過返回內容進行檢索等,給出明確的指令輸入模型,能夠提升返回內容的準確度,來滿足場景訴求。同時,這樣限定生成內容范圍的Prompt在某種程度上也減少了泛化內容的生成,節約了網絡傳輸與資源成本

4、 API密鑰申請和使用中的常見問題

產品使用相關

Q:預置服務的付費方式那么多,我應該如何選擇?

??A:?1. 首先初步結合業務場景自行估算TPM/RPM/QPS的速率要求,如果預置服務默認的速率限制滿足業務需求,則可以首選按tokens計費,更為經濟;如果速率要求超出了默認的速率配額,則可以購買TPM&RPM包,從而實現速率提升。
????2. 如果選擇按tokens用量計費,可以進一步靈活選擇預付費還是后付費,按照經驗來看如果業務比較穩定,首選預付費,折扣力度更大;如果僅僅是前期試用,后付費即可,隨用隨停。需要注意的是,購買預付費的Tokens資源包,只是多Tokens可用量進行了擴容,并未對調用速率進行擴容。
????3. 如果選擇購買TPM&RPM配套擴容速率限制,建議購買一定數量的基礎預付費TPM&RPM配額,更加經濟實惠。如果需要應對業務場景中偶發的突增峰值流量,建議按需搭配靈活數量的后付費配額以應對突增流量。

Q:為什么我開啟的訓練任務一直在無法提交,我應該怎么做才能推動模型訓練的進度?

??A:當前訓練任務一直無法提交,一般由于未通過實名認證引起,需要您進入用戶中心,完成實名認證后再正常提交任務。

Q:我在多輪對話的SFT中,有部分輪次的對話效果不符合預期,因為模型并未按照指定要求回答問題,此時如果我使用全部輪次的數據進行精調,模型效果會受到影響,應該怎么辦?

??A:您可能遇到以下情況:[{"prompt":"可以請你用熱情的語氣回答我的問題嗎?", "response":"當然可以,請說出你的問題"}, {"prompt":"法國的首都是哪里", "response":"巴黎"}, {"prompt":"請你用熱情的語氣認真回答", "response":"哦!是巴黎,浪漫之都,那兒有很多漂亮的建筑,有機會你一定要去看看!"}]

其中在第二輪,模型并未按照指定要求熱情地回答問題。
此時,您可以在數據集中配置weight字段,在SFT精調時選擇性跳過特定輪次的模型回答,使之不參與損失函數(loss)的計算過程,避免模型在訓練過程中學習到錯誤信息。
取值:0或1,0表示該輪對話不參與SFT loss計算,默認值為1
格式示例[{"prompt":"可以請你用熱情的語氣回答我的問題嗎?", "response":"當然可以,請說出你的問題", "weight":1}, {"prompt":"法國的首都是哪里", "response":"巴黎", "weight":0}, {"prompt":"請你用熱情的語氣認真回答", "response":"哦!是巴黎,浪漫之都,那兒有很多漂亮的建筑,有機會你一定要去看看!", "weight":1}]

注意:含weight字段的數據僅在ERNIE Tiny、ERNIE Character、ERNIE Lite 0308、ERNIE Lite128K-0419和ERNIE Speed模型精調SFT中可用,該字段對其他模型開放的情況,請您時刻關注官方說明。

Q:我在調用Stable-Diffusion-XL服務的時候,總出現請求超時的情況,應該怎么辦?

??A:建議使用以下方式調用:

????(1)如果未部署該服務,需要您部署本模型為服務,再調用部署好的服務。發布服務流程可參考說明文檔,詳細計費可查看價格文檔。
????(2)如果您已經部署過此服務,可在部署資源中進行復購。

Q:我可以在已購買后付費配額的前提下,繼續擴充或者縮小配額嗎?

??A:平臺支持您支持靈活變更配額,可在已購買后付費配額的前提下,擴增TPM額度或降低TPM額度。(Tips提示:兩次降配TPM額度操作至少間隔60分鐘),同時私有資源池AI加速卡Ⅰ型支持按分鐘后付費,低于15分鐘按15分鐘計算。

Q:千帆ModelBuilder現在有臨期續購提醒嗎?我應該如何配置?

??A:百度智能云提供專屬消息類型配置和消息接收人配置,具體使用方法,可查看幫助文檔。

Q:我已將ERNIE-Lite-8K-0922的預置服務QPS切換為TPM和RPM,如果1分鐘內請求數量大于RPM數值會有什么影響?

??A:假設API服務RPM=60,如果客戶在1分鐘之內發送100個請求,只會有60個請求成功,剩余40個請求直接失敗。

Q:我已將ERNIE-Lite-8K-0922的預置服務QPS切換為TPM和RPM,RPM數值為60,可以1秒直接發送60個請求么?

??A:不可以。建議用戶均勻的發送API請求,較短時間內發送過多的請求,會導致部分請求會進入排隊隊列,排隊請求會按照一定周期重新發送,直到請求成功或排隊超時。

Q:我在創建知識庫的導入配置時,數據庫配置時選擇BES,為什么連接不到了呢?

??A:當前僅支持選擇北京區域的BES,且只能通過Http協議連接您的自建BES。

Q:我的Embedding-V1和bge-large-zh公有云在線體驗服務都已經開通付費了,余額也充足,命中測試提醒我請求數量已達上限?

??A:當前命中測試有上限限制,每日請求量限制不超過100次,每分鐘請求量限制不超過20次

Q:我在提交模型訓練運行的時候,提醒我模型數量已達上限?

??A:SFT任務、獎勵模型訓練、強化學習訓練任務。每種任務的運行(包含新創建的、排隊中的、運行中的)不能超過5個

Q:我在文生文任務SFT時,LoRA訓練后的模型,為什么增量訓練的時候選不到?

??A:當前平臺僅支持訓練方式為全量更新的文生文基準模型,開啟增量訓練

Q:我上傳自己的數據集會不會被其他用戶調用去訓練他們的大模型?

??A:您的上傳的數據集是屬于您賬號下的專屬數據,未經您的許可不會被其他人員查看到,更加不會被其他用戶在大模型訓練時調用。

Q:我將預置模型發布為服務以后,調用接口報錯誤碼17,這是怎么回事?

??A:以上情況出現,是因為您發布了API服務,但是并未進行API付費,需要您根據提示進行在線API付費。

Q:我在調用文心系列大模型服務時,模型返回:“我是文心一言”,是否對百度造成侵權?

??A:出現以上情況不會對百度造成侵權,請您放心使用。

Q:模型訓練過程中,手動終止訓練任務的話,還會計費嗎?

??A:任務終止,計費也將會終止。一旦任務終止,將無法重啟,請您謹慎終止訓練任務。

Q:為什么版本更新完成后,體驗中心的模型輸出調用token為0了?而且我在調用千帆ModelBuilder api時,遇到error code=06,是為什么?

??A:版本更新后,需要您在應用接入中,選擇指定應用的“編輯”按鈕,完成“更新”操作。注:未創建應用的情況下使用在線測試功能,也會遇到此現象,需先創建應用。

API&SDK相關

Messages使用說明

在調用部分大模型相關API時,例如調用ERNIE 3.5 ,需使用請求參數Messages,表示聊天上下文信息。

針對Messages介紹,”成員數目必須為奇數,成員中message的role值說明如下:奇數位messsage的role值必須為user或function,偶數位message的role值assistant,第一個message的role不能是function。”,說明如下。

1.以下列為例介紹Messages使用"messages": [ {"role":"user","content":"你好"}, {"role":"assistant","content":"如果您有任何問題,請隨時向我提問。"}, {"role":"user","content": "我在上海,周末可以去哪里玩?"}, {"role":"assistant","content": "上海是一個充滿活力和文化氛圍的城市,有很多適合周末游玩的地方。以下是幾個值得推薦的地方:\n\n1. 上海科技館:上海科技館是中國大陸最大的科技館之一,有許多互動展覽和科學實驗室,可以讓您了解科技的發展歷史和最新成果。\n2. 上海博物館:上海博物館是一座集藝術、歷史和文化于一體的博物館,有許多精美的藝術品和文物,可以讓您深入了解中國和世界的文化歷史。"}, {"role":"user","content": "周末這里的天氣怎么樣?"} ] }

(1)成員

例如:其中一個message成員為 {"role":"user","content":"你好"}

(2)成員數目

例如,示例中messages參數共有5個message成員。

image.png

(3)message的role限制

例如,示例中message中的role值分別為user、assistant、user、assistant、user。

image.png
  1. 錯誤調用示例舉例

錯誤原因:message成員需要是奇數,示例中為2,是偶數"messages": [ { "role": "user", "content": "你好" }, { "role": "assistant", "content": "你好,有什么我可以幫助你的嗎?" } ]

錯誤原因:偶數位message中的role應該為assistant,示例中為user"messages": [ { "role": "user", "content": "你好" }, { "role": "user", "content": "我在上海,周末可以去哪里玩?" } ]

5、文心一言ERNIE4.0 API 的替代品有哪些?

文心一言(ERNIE 4.0)是百度推出的先進大語言模型,提供強大的自然語言處理能力。如果您正在尋找其替代品,以下是一些值得考慮的選項:

1. 通義千問:由阿里云開發的通義千問大模型,具備強大的語言理解和生成能力,適用于多種應用場景。

2. 訊飛星火:科大訊飛推出的訊飛星火大模型,專注于中文語言處理,廣泛應用于教育、醫療等領域。

3. Minimax:Minimax系列模型在自然語言處理方面表現出色,適用于文本生成、智能問答等任務。

4. ChatGPT:由OpenAI開發的ChatGPT模型,支持多語言處理,廣泛應用于全球各行業。

5. Felo AI Search:Felo AI Search是一款多語言人工智能搜索引擎,提供跨語言搜索和實時信息獲取功能,適合作為文心一言的替代方案。

在選擇替代品時,建議根據您的具體需求、應用場景以及對模型性能的要求,綜合考慮上述選項。

總結

本文詳細介紹了如何獲取和調用千帆大模型 API,包括密鑰申請、基礎配置、調用方法及調試注意事項。通過合理配置 prompt、temperature 和 max_tokens 參數,可以靈活調整輸出效果,最大化千帆大模型的應用價值。

上一篇:

夏季雷暴與飛行安全:湍流預測技術的進步與航空公司的應對策略

下一篇:

如何獲取Llama API Key 密鑰(分步指南)
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費