“百度智能云千帆大模型”是百度智能云平臺(tái)上提供的一個(gè)大模型服務(wù)體系,它集成了多種先進(jìn)的預(yù)訓(xùn)練語(yǔ)言模型和AI技術(shù),旨在為企業(yè)和個(gè)人開發(fā)者提供強(qiáng)大的人工智能解決方案。這些模型包括但不限于基于Llama2架構(gòu)的中文增強(qiáng)版本、ERNIE系列的旗艦級(jí)模型以及其他由百度自研或基于開源框架優(yōu)化的高性能模型。千帆平臺(tái)上的大模型不僅支持中英雙語(yǔ),覆蓋廣泛的應(yīng)用場(chǎng)景如對(duì)話問(wèn)答、創(chuàng)作生成、代碼生成等,而且部分模型針對(duì)特定需求進(jìn)行了優(yōu)化,如壓縮加速、指令微調(diào)等,以適應(yīng)不同資源條件下的部署和使用需求。用戶可以通過(guò)千帆大模型平臺(tái)進(jìn)行模型的選擇、訓(xùn)練調(diào)優(yōu)及部署調(diào)用,以實(shí)現(xiàn)對(duì)復(fù)雜任務(wù)的支持和高效處理。

什么是API

API是一個(gè)軟件解決方案,作為中介,使兩個(gè)應(yīng)用程序能夠相互交互。以下一些特征讓API變得更加有用和有價(jià)值:

一、核心功能介紹

1.模型相關(guān)

對(duì)話Chat:支持創(chuàng)建chat,用于發(fā)起一次對(duì)話。

續(xù)寫Completions:支持創(chuàng)建completion,用于發(fā)起一次續(xù)寫請(qǐng)求,不支持多輪會(huì)話等。

自定義模型:平臺(tái)支持HuggingFace Transformer架構(gòu)的自定義大模型導(dǎo)入,將自定義模型發(fā)布為服務(wù),并支持通過(guò)相關(guān)API調(diào)用該服務(wù)。

圖像Images:提供圖像相關(guān)API能力。

Token計(jì)算,根據(jù)輸入計(jì)算token數(shù)。

2.模型服務(wù):提供創(chuàng)建服務(wù)、獲取服務(wù)詳情等API能力。

3.模型管理:提供獲取模型、模型版本詳情,獲取用戶/預(yù)置模型及將訓(xùn)練任務(wù)發(fā)布為模型等API能力。

4.模型調(diào)優(yōu):提供創(chuàng)建訓(xùn)練任務(wù)、任務(wù)運(yùn)行、停止任務(wù)運(yùn)行及獲取任務(wù)運(yùn)行詳情等API能力。

5.數(shù)據(jù)管理:提供創(chuàng)建數(shù)據(jù)集等數(shù)據(jù)集管理、導(dǎo)入導(dǎo)出數(shù)據(jù)集任務(wù)、數(shù)據(jù)清洗任務(wù)管理等API能力。

6.Prompt工程:提供模板管理、Prompt優(yōu)化任務(wù)、評(píng)估等API能力。

7.插件應(yīng)用:提供知識(shí)庫(kù)、智慧圖問(wèn)、天氣等API能力。

二、如何申請(qǐng)千帆大模型API Key和Secret Key

進(jìn)入百度智能云 千帆大模型平臺(tái)。

點(diǎn)擊應(yīng)用接入,進(jìn)入應(yīng)用列表

點(diǎn)擊創(chuàng)建應(yīng)用

先記錄下這個(gè)秘鑰后面調(diào)用需要用到

 三、Python調(diào)用千帆大模型接口的主要步驟如下

接口文檔 地址:<https://cloud.baidu.com/doc/WENXINWORKSHOP/s/klqx7b1xf>

基本信息

請(qǐng)求地址: https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie_speed

請(qǐng)求方式: POST

根據(jù)不同鑒權(quán)方式,查看對(duì)應(yīng) Header 參數(shù)。

名稱類型必填描述
Content-Typestring固定值 application/json
名稱類型必填描述
Content-Typestring固定值 application/json
x-bce-datestring當(dāng)前時(shí)間,遵循 ISO8601 規(guī)范,格式如 2016-04-06T08:23:49Z
Authorizationstring用于驗(yàn)證請(qǐng)求合法性的認(rèn)證信息。更多內(nèi)容請(qǐng)參考簡(jiǎn)介 – 相關(guān)參考Reference | 百度智能云文檔,簽名工具可參考IAM簽名工具

Query 參數(shù)

只有訪問(wèn)憑證 access\_token 鑒權(quán)方式,需使用 Query 參數(shù)。

名稱類型必填描述
access_tokenstring通過(guò) API Key 和 Secret Key 獲取的 access_token,參考 獲取access_token – 千帆大模型平臺(tái) | 百度智能云文檔

Body 參數(shù)

名稱類型必填描述
messagesList(message)聊天上下文信息。 &bull; messages 成員不能為空,1 個(gè)成員表示單輪對(duì)話,多個(gè)成員表示多輪對(duì)話 &bull; 最后一個(gè) message 為當(dāng)前請(qǐng)求的信息,前面的 message 為歷史對(duì)話信息 &bull; 必須為奇數(shù)個(gè)成員,成員中 message 的 role 必須依次為 user、assistant &bull; message 中的 content 總長(zhǎng)度和 system 字段總內(nèi)容不能超過(guò) 24000 個(gè)字符,且不能超過(guò) 6144 tokens
streambool是否以流式接口的形式返回?cái)?shù)據(jù),默認(rèn) false
temperaturefloat較高的數(shù)值會(huì)使輸出更加隨機(jī),而較低的數(shù)值會(huì)使其更加集中和確定。默認(rèn) 0.95,范圍 (0, 1.0],不能為 0
top_pfloat影響輸出文本的多樣性,取值越大,生成文本的多樣性越強(qiáng)。默認(rèn) 0.7,取值范圍 [0, 1.0]
penalty_scorefloat通過(guò)對(duì)已生成的 token 增加懲罰,減少重復(fù)生成的現(xiàn)象。值越大表示懲罰越大。默認(rèn) 1.0,取值范圍:[1.0, 2.0]
systemstring模型人設(shè),主要用于人設(shè)設(shè)定。長(zhǎng)度限制:message 中的 content 總長(zhǎng)度和 system 字段總內(nèi)容不能超過(guò) 24000 個(gè)字符,且不能超過(guò) 6144 tokens
stopList(string)生成停止標(biāo)識(shí),當(dāng)模型生成結(jié)果以 stop 中某個(gè)元素結(jié)尾時(shí),停止文本生成。每個(gè)元素長(zhǎng)度不超過(guò) 20 字符,最多 4 個(gè)元素
max_output_tokensint指定模型最大輸出 token 數(shù)。如果設(shè)置此參數(shù),范圍 [2, 2048]。如果不設(shè)置此參數(shù),最大輸出 token 數(shù)為 1024
frequency_penaltyfloat正值根據(jù)迄今為止文本中的現(xiàn)有頻率對(duì)新 token 進(jìn)行懲罰,從而降低模型逐字重復(fù)同一行的可能性;默認(rèn) 0.1,取值范圍 [-2.0, 2.0]
presence_penaltyfloat正值根據(jù) token 記目前是否出現(xiàn)在文本中來(lái)對(duì)其進(jìn)行懲罰,從而增加模型談?wù)撔轮黝}的可能性;默認(rèn) 0.0,取值范圍 [-2.0, 2.0]
user_idstring表示最終用戶的唯一標(biāo)識(shí)符

message 說(shuō)明

名稱類型描述
rolestring當(dāng)前支持以下:&bull; user: 表示用戶&bull; assistant: 表示對(duì)話助手
contentstring對(duì)話內(nèi)容,不能為空

響應(yīng)說(shuō)明

部分參數(shù)如下。

名稱描述
X-Ratelimit-Limit-Requests一分鐘內(nèi)允許的最大請(qǐng)求次數(shù)
X-Ratelimit-Limit-Tokens一分鐘內(nèi)允許的最大 tokens 消耗,包含輸入 tokens 和輸出 tokens
X-Ratelimit-Remaining-Requests達(dá)到 RPM 速率限制前,剩余可發(fā)送的請(qǐng)求數(shù)配額,如果配額用完,將會(huì)在 0-60s 后刷新
X-Ratelimit-Remaining-Tokens達(dá)到 TPM 速率限制前,剩余可消耗的 tokens 數(shù)配額,如果配額用完,將會(huì)在 0-60s 后刷新

響應(yīng)體參數(shù)

名稱類型描述
idstring本輪對(duì)話的 id
objectstring回包類型&bull; chat.completion:多輪對(duì)話返回
createdint時(shí)間戳
sentence_idint表示當(dāng)前子句的序號(hào)。只有在流式接口模式下會(huì)返回該字段
is_endbool表示當(dāng)前子句是否是最后一句。只有在流式接口模式下會(huì)返回該字段
is_truncatedbool當(dāng)前生成的結(jié)果是否被截?cái)?/td>
resultstring對(duì)話返回結(jié)果
need_clear_historybool表示用戶輸入是否存在安全風(fēng)險(xiǎn),是否關(guān)閉當(dāng)前會(huì)話,清理歷史會(huì)話信息。&bull; true:是,表示用戶輸入存在安全風(fēng)險(xiǎn),建議關(guān)閉當(dāng)前會(huì)話,清理歷史會(huì)話信息。&bull; false:否,表示用戶輸入無(wú)安全風(fēng)險(xiǎn)
ban_roundint當(dāng) need_clear_history 為 true 時(shí),此字段會(huì)告知第幾輪對(duì)話有敏感信息,如果是當(dāng)前問(wèn)題,ban_round=-1
usageusagetoken 統(tǒng)計(jì)信息

usage 說(shuō)明

名稱類型描述
prompt_tokensint問(wèn)題 tokens 數(shù)
completion_tokensint回答 tokens 數(shù)
total_tokensinttokens 總數(shù)

注意 :同步模式和流式模式,響應(yīng)參數(shù)返回不同,詳細(xì)內(nèi)容參考示例描述。

代碼如下:

1 import requests
2 import json
3 import datetime
4
5 class QIANFAN:
6
7 _api_url = "https://aip.baidubce.com"
8
9 def __init__(self, api_key, secret_key):
10 self.API_KEY = api_key
11 self.SECRET_KEY = secret_key
12
13 url = self._api_url + "/oauth/2.0/token"
14 params = {"grant_type": "client_credentials", "client_id": self.API_KEY, "client_secret": self.SECRET_KEY}
15 result = self.http_request_v2(url, method="POST", params=params)
16 if 'access_token' in result:
17 self.access_token = result["access_token"]
18 else:
19 print(result)
20 exit()
21
22
23 def chat(self, model="ernie-lite-8k", message=None, **kwargs):
24 url = f"{self._api_url}/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/{model}?access_token={self.access_token}"
25
26 payload = json.dumps({
27 "messages": [{"role": "user", "content": message}],
28 "temperature": 0.95,
29 "penalty_score": 1
30 })
31
32 for key, value in kwargs.items():
33 payload[key] = value
34
35 print(payload)
36 response = self.http_request_v2(url, method="POST", params=payload)
37 return response
38
39 # 生成headers頭
40 def headers(self, params=None):
41 headers = {}
42 headers['Content-Type'] = 'application/json'
43 return headers
44
45 def http_request_v2(self, url, method="GET", headers={}, params=None):
46 headers['User-Agent'] = 'Mozilla/5.0 \(Windows NT 6.1; WOW64\) AppleWebKit/537.36 \(KHTML, like Gecko\) Chrome/39.0.2171.71 Safari/537.36'
47 if method == "GET":
48 response = requests.get(url)
49 elif method == "POST":
50 # data = bytes(json.dumps(params), 'utf-8')
51 response = requests.post(url, data= params)
52 elif method == "DELETE":
53 response = requests.delete(url, data= data)
54
55 result = response.json()
56 return result

調(diào)用方法如下:

示例
API_KEY = "PfHVN4v3GjjE3vV24FzZdGhB"
SECRET_KEY = "***chat_client = QIANFAN(API_KEY, SECRET_KEY)
print(vars(chat_client))

result = chat_client.chat(model='ernie_speed', message="1加1為什么等于2?")
print(result["result"])

以上就是使用Python語(yǔ)言調(diào)用千帆大模型的全部過(guò)程和代碼示例。

上一篇:

利用JAVA語(yǔ)言調(diào)用豆包大模型接口實(shí)戰(zhàn)指南

下一篇:

MiniMax語(yǔ)音大模型接口實(shí)戰(zhàn)應(yīng)用
#你可能也喜歡這些API文章!

我們有何不同?

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

多API并行試用

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

查看全部API→
??

熱門場(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)