本文將詳細(xì)介紹如何調(diào)用文心一言ERNIE4.0 API服務(wù),包括獲取 API 密鑰的步驟、基礎(chǔ)配置、API 調(diào)用示例及注意事項(xiàng)。

1. 申請(qǐng) API 密鑰

使用文心一言產(chǎn)品之前,需先在百度開(kāi)放平臺(tái)申請(qǐng) API 密鑰用于請(qǐng)求認(rèn)證。

申請(qǐng)步驟:

1. 注冊(cè)百度賬號(hào):前往 百度賬號(hào)注冊(cè)頁(yè)面 完成注冊(cè),輸入您的個(gè)人信息,如姓名、郵箱等。

2. 成為開(kāi)發(fā)者:在 百度智能云開(kāi)放平臺(tái) 中注冊(cè)成為開(kāi)發(fā)者。選擇個(gè)人或企業(yè)認(rèn)證并按提示完成。

1.進(jìn)入百度智能云官網(wǎng)進(jìn)行登錄

2.進(jìn)入千帆ModelBuilder點(diǎn)擊左側(cè)的應(yīng)用接入并且點(diǎn)擊創(chuàng)建應(yīng)用

3.在頁(yè)面上的應(yīng)用名稱(chēng)輸入上自己想要的應(yīng)用名稱(chēng)和應(yīng)用描述,

4.獲取對(duì)應(yīng)的API Key 和 Secret Key

2. 配置文心一言ERNIE4.0 API并調(diào)用

1.選擇一個(gè)想要使用的模型

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

用Python調(diào)用

import os
import qianfan

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

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

chat_comp = qianfan.ChatCompletion()

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

print(resp["body"])

用Java調(diào)用

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

public class Demo {
public static void main(String[] args) {
// 使用安全認(rèn)證AK/SK鑒權(quán),替換下列示例中參數(shù),安全認(rèn)證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調(diào)用

package main

import (
"context"
"fmt"
"os"

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

func main() {
// 使用安全認(rèn)證AK/SK鑒權(quán),通過(guò)環(huán)境變量初始化;替換下列示例中參數(shù),安全認(rèn)證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調(diào)用

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

// 使用安全認(rèn)證AK/SK鑒權(quán),通過(guò)環(huán)境變量初始化;替換下列示例中參數(shù),安全認(rèn)證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的其他關(guān)鍵考慮因素

1. 正確的語(yǔ)法、用詞以及標(biāo)點(diǎn)

在Prompt中的實(shí)體對(duì)象存在多種諧音,而我們?cè)谄磳?xiě)錯(cuò)的情況下,往往會(huì)獲得錯(cuò)誤的返回結(jié)果。同理,在語(yǔ)法錯(cuò)誤以及標(biāo)點(diǎn)錯(cuò)誤的情況下,可能也會(huì)得到不符合預(yù)期的返回結(jié)果。因此,我們?cè)跇?gòu)建Prompt時(shí),需要保證語(yǔ)法、用詞以及標(biāo)點(diǎn)的準(zhǔn)確性來(lái)引導(dǎo)模型生成更準(zhǔn)確的內(nèi)容

2. 避免歧義,簡(jiǎn)潔易懂

生成式大模型很多時(shí)候也和人類(lèi)的理解能力相似,需要輸入一些更明確的指示內(nèi)容助于理解并執(zhí)行內(nèi)容生成,意圖不明的模糊指令會(huì)讓模型生成內(nèi)容與預(yù)期有些偏離,甚至影響原本Prompt指令的生成內(nèi)容。如下例中,讓大模型生成一個(gè)短點(diǎn)的故事內(nèi)容,在結(jié)構(gòu)上可能進(jìn)行了縮短,但生成內(nèi)容有些偏離“故事”本身;而明確讓大模型生成一個(gè)故事并規(guī)定字?jǐn)?shù)限制后,可見(jiàn)的表現(xiàn)變得更好了

3. 更完整的信息

在針對(duì)一些實(shí)體對(duì)象進(jìn)行評(píng)價(jià)、分析等場(chǎng)景時(shí),大模型訓(xùn)練時(shí)不含這類(lèi)實(shí)體對(duì)象的語(yǔ)料,就像我們無(wú)法對(duì)不認(rèn)識(shí)的人產(chǎn)生評(píng)價(jià)一樣,大模型也無(wú)法理解并生成對(duì)應(yīng)的內(nèi)容。因此,在針對(duì)特定對(duì)象以及特定場(chǎng)景進(jìn)行內(nèi)容生成時(shí),需要補(bǔ)充更完整的背景信息

4. 設(shè)定身份視角

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

5. 提供生成示例

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

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

在一些需要明確返回內(nèi)容范圍的場(chǎng)景,例如需要通過(guò)返回內(nèi)容進(jìn)行檢索等,給出明確的指令輸入模型,能夠提升返回內(nèi)容的準(zhǔn)確度,來(lái)滿足場(chǎng)景訴求。同時(shí),這樣限定生成內(nèi)容范圍的Prompt在某種程度上也減少了泛化內(nèi)容的生成,節(jié)約了網(wǎng)絡(luò)傳輸與資源成本

4、 API密鑰申請(qǐng)和使用中的常見(jiàn)問(wèn)題

產(chǎn)品使用相關(guān)

Q:預(yù)置服務(wù)的付費(fèi)方式那么多,我應(yīng)該如何選擇?

??A:?1. 首先初步結(jié)合業(yè)務(wù)場(chǎng)景自行估算TPM/RPM/QPS的速率要求,如果預(yù)置服務(wù)默認(rèn)的速率限制滿足業(yè)務(wù)需求,則可以首選按tokens計(jì)費(fèi),更為經(jīng)濟(jì);如果速率要求超出了默認(rèn)的速率配額,則可以購(gòu)買(mǎi)TPM&RPM包,從而實(shí)現(xiàn)速率提升。
????2. 如果選擇按tokens用量計(jì)費(fèi),可以進(jìn)一步靈活選擇預(yù)付費(fèi)還是后付費(fèi),按照經(jīng)驗(yàn)來(lái)看如果業(yè)務(wù)比較穩(wěn)定,首選預(yù)付費(fèi),折扣力度更大;如果僅僅是前期試用,后付費(fèi)即可,隨用隨停。需要注意的是,購(gòu)買(mǎi)預(yù)付費(fèi)的Tokens資源包,只是多Tokens可用量進(jìn)行了擴(kuò)容,并未對(duì)調(diào)用速率進(jìn)行擴(kuò)容。
????3. 如果選擇購(gòu)買(mǎi)TPM&RPM配套擴(kuò)容速率限制,建議購(gòu)買(mǎi)一定數(shù)量的基礎(chǔ)預(yù)付費(fèi)TPM&RPM配額,更加經(jīng)濟(jì)實(shí)惠。如果需要應(yīng)對(duì)業(yè)務(wù)場(chǎng)景中偶發(fā)的突增峰值流量,建議按需搭配靈活數(shù)量的后付費(fèi)配額以應(yīng)對(duì)突增流量。

Q:為什么我開(kāi)啟的訓(xùn)練任務(wù)一直在無(wú)法提交,我應(yīng)該怎么做才能推動(dòng)模型訓(xùn)練的進(jìn)度?

??A:當(dāng)前訓(xùn)練任務(wù)一直無(wú)法提交,一般由于未通過(guò)實(shí)名認(rèn)證引起,需要您進(jìn)入用戶中心,完成實(shí)名認(rèn)證后再正常提交任務(wù)。

Q:我在多輪對(duì)話的SFT中,有部分輪次的對(duì)話效果不符合預(yù)期,因?yàn)槟P筒⑽窗凑罩付ㄒ蠡卮饐?wèn)題,此時(shí)如果我使用全部輪次的數(shù)據(jù)進(jìn)行精調(diào),模型效果會(huì)受到影響,應(yīng)該怎么辦?

??A:您可能遇到以下情況:[{"prompt":"可以請(qǐng)你用熱情的語(yǔ)氣回答我的問(wèn)題嗎?", "response":"當(dāng)然可以,請(qǐng)說(shuō)出你的問(wèn)題"}, {"prompt":"法國(guó)的首都是哪里", "response":"巴黎"}, {"prompt":"請(qǐng)你用熱情的語(yǔ)氣認(rèn)真回答", "response":"哦!是巴黎,浪漫之都,那兒有很多漂亮的建筑,有機(jī)會(huì)你一定要去看看!"}]

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

注意:含weight字段的數(shù)據(jù)僅在ERNIE Tiny、ERNIE Character、ERNIE Lite 0308、ERNIE Lite128K-0419和ERNIE Speed模型精調(diào)SFT中可用,該字段對(duì)其他模型開(kāi)放的情況,請(qǐng)您時(shí)刻關(guān)注官方說(shuō)明。

Q:我在調(diào)用Stable-Diffusion-XL服務(wù)的時(shí)候,總出現(xiàn)請(qǐng)求超時(shí)的情況,應(yīng)該怎么辦?

??A:建議使用以下方式調(diào)用:

????(1)如果未部署該服務(wù),需要您部署本模型為服務(wù),再調(diào)用部署好的服務(wù)。發(fā)布服務(wù)流程可參考說(shuō)明文檔,詳細(xì)計(jì)費(fèi)可查看價(jià)格文檔。
????(2)如果您已經(jīng)部署過(guò)此服務(wù),可在部署資源中進(jìn)行復(fù)購(gòu)。

Q:我可以在已購(gòu)買(mǎi)后付費(fèi)配額的前提下,繼續(xù)擴(kuò)充或者縮小配額嗎?

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

Q:千帆ModelBuilder現(xiàn)在有臨期續(xù)購(gòu)提醒嗎?我應(yīng)該如何配置?

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

Q:我已將ERNIE-Lite-8K-0922的預(yù)置服務(wù)QPS切換為T(mén)PM和RPM,如果1分鐘內(nèi)請(qǐng)求數(shù)量大于RPM數(shù)值會(huì)有什么影響?

??A:假設(shè)API服務(wù)RPM=60,如果客戶在1分鐘之內(nèi)發(fā)送100個(gè)請(qǐng)求,只會(huì)有60個(gè)請(qǐng)求成功,剩余40個(gè)請(qǐng)求直接失敗。

Q:我已將ERNIE-Lite-8K-0922的預(yù)置服務(wù)QPS切換為T(mén)PM和RPM,RPM數(shù)值為60,可以1秒直接發(fā)送60個(gè)請(qǐng)求么?

??A:不可以。建議用戶均勻的發(fā)送API請(qǐng)求,較短時(shí)間內(nèi)發(fā)送過(guò)多的請(qǐng)求,會(huì)導(dǎo)致部分請(qǐng)求會(huì)進(jìn)入排隊(duì)隊(duì)列,排隊(duì)請(qǐng)求會(huì)按照一定周期重新發(fā)送,直到請(qǐng)求成功或排隊(duì)超時(shí)。

Q:我在創(chuàng)建知識(shí)庫(kù)的導(dǎo)入配置時(shí),數(shù)據(jù)庫(kù)配置時(shí)選擇BES,為什么連接不到了呢?

??A:當(dāng)前僅支持選擇北京區(qū)域的BES,且只能通過(guò)Http協(xié)議連接您的自建BES。

Q:我的Embedding-V1和bge-large-zh公有云在線體驗(yàn)服務(wù)都已經(jīng)開(kāi)通付費(fèi)了,余額也充足,命中測(cè)試提醒我請(qǐng)求數(shù)量已達(dá)上限?

??A:當(dāng)前命中測(cè)試有上限限制,每日請(qǐng)求量限制不超過(guò)100次,每分鐘請(qǐng)求量限制不超過(guò)20次

Q:我在提交模型訓(xùn)練運(yùn)行的時(shí)候,提醒我模型數(shù)量已達(dá)上限?

??A:SFT任務(wù)、獎(jiǎng)勵(lì)模型訓(xùn)練、強(qiáng)化學(xué)習(xí)訓(xùn)練任務(wù)。每種任務(wù)的運(yùn)行(包含新創(chuàng)建的、排隊(duì)中的、運(yùn)行中的)不能超過(guò)5個(gè)

Q:我在文生文任務(wù)SFT時(shí),LoRA訓(xùn)練后的模型,為什么增量訓(xùn)練的時(shí)候選不到?

??A:當(dāng)前平臺(tái)僅支持訓(xùn)練方式為全量更新的文生文基準(zhǔn)模型,開(kāi)啟增量訓(xùn)練

Q:我上傳自己的數(shù)據(jù)集會(huì)不會(huì)被其他用戶調(diào)用去訓(xùn)練他們的大模型?

??A:您的上傳的數(shù)據(jù)集是屬于您賬號(hào)下的專(zhuān)屬數(shù)據(jù),未經(jīng)您的許可不會(huì)被其他人員查看到,更加不會(huì)被其他用戶在大模型訓(xùn)練時(shí)調(diào)用。

Q:我將預(yù)置模型發(fā)布為服務(wù)以后,調(diào)用接口報(bào)錯(cuò)誤碼17,這是怎么回事?

??A:以上情況出現(xiàn),是因?yàn)槟l(fā)布了API服務(wù),但是并未進(jìn)行API付費(fèi),需要您根據(jù)提示進(jìn)行在線API付費(fèi)。

Q:我在調(diào)用文心系列大模型服務(wù)時(shí),模型返回:“我是文心一言”,是否對(duì)百度造成侵權(quán)?

??A:出現(xiàn)以上情況不會(huì)對(duì)百度造成侵權(quán),請(qǐng)您放心使用。

Q:模型訓(xùn)練過(guò)程中,手動(dòng)終止訓(xùn)練任務(wù)的話,還會(huì)計(jì)費(fèi)嗎?

??A:任務(wù)終止,計(jì)費(fèi)也將會(huì)終止。一旦任務(wù)終止,將無(wú)法重啟,請(qǐng)您謹(jǐn)慎終止訓(xùn)練任務(wù)。

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

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

API&SDK相關(guān)

Messages使用說(shuō)明

在調(diào)用部分大模型相關(guān)API時(shí),例如調(diào)用ERNIE 3.5 ,需使用請(qǐng)求參數(shù)Messages,表示聊天上下文信息。

針對(duì)Messages介紹,”成員數(shù)目必須為奇數(shù),成員中message的role值說(shuō)明如下:奇數(shù)位messsage的role值必須為user或function,偶數(shù)位message的role值assistant,第一個(gè)message的role不能是function。”,說(shuō)明如下。

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

(1)成員

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

(2)成員數(shù)目

例如,示例中messages參數(shù)共有5個(gè)message成員。

image.png

(3)message的role限制

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

image.png
  1. 錯(cuò)誤調(diào)用示例舉例

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

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

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

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

1. 通義千問(wèn):由阿里云開(kāi)發(fā)的通義千問(wèn)大模型,具備強(qiáng)大的語(yǔ)言理解和生成能力,適用于多種應(yīng)用場(chǎng)景。

2. 訊飛星火:科大訊飛推出的訊飛星火大模型,專(zhuān)注于中文語(yǔ)言處理,廣泛應(yīng)用于教育、醫(yī)療等領(lǐng)域。

3. Minimax:Minimax系列模型在自然語(yǔ)言處理方面表現(xiàn)出色,適用于文本生成、智能問(wèn)答等任務(wù)。

4. ChatGPT:由OpenAI開(kāi)發(fā)的ChatGPT模型,支持多語(yǔ)言處理,廣泛應(yīng)用于全球各行業(yè)。

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

在選擇替代品時(shí),建議根據(jù)您的具體需求、應(yīng)用場(chǎng)景以及對(duì)模型性能的要求,綜合考慮上述選項(xiàng)。

總結(jié)

本文詳細(xì)介紹了如何獲取和調(diào)用千帆大模型 API,包括密鑰申請(qǐng)、基礎(chǔ)配置、調(diào)用方法及調(diào)試注意事項(xiàng)。通過(guò)合理配置 prompt、temperature 和 max_tokens 參數(shù),可以靈活調(diào)整輸出效果,最大化千帆大模型的應(yīng)用價(jià)值。

上一篇:

夏季雷暴與飛行安全:湍流預(yù)測(cè)技術(shù)的進(jìn)步與航空公司的應(yīng)對(duì)策略

下一篇:

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

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門(mén)場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)