文章主题:

666AI工具大全,助力做AI时代先行者!

其他信息->【智子纪元-AIGC】技术交流群

目前百度的文心一言,可以算是国内做的比较好的中文大模型产品,博主现在也已经拿到了文心一言的API,写一个API的申请和使用教程,供大家参考。未申请到API的同学,前往官网申请,或添加小助手寻求帮助。

文心一言的优势:

文心一言是百度开发的国内大型语言模型,相较于ChatGPT,在信息的出境传输方面具有以下优势:

数据隐私:由于文心一言是国内开发的模型,它的运行和数据存储主要在国内,这意味着用户的数据在传输过程中不需要跨境传输,减少了一定的信息流出风险。对于一些对数据隐私保护较为敏感的用户或组织,这是一个优势。

法律合规性:文心一言在开发过程中遵守国内相关法律法规,符合国内的法律合规要求。这使得文心一言在国内使用更符合当地的法律和政策要求,避免了信息传输可能涉及的跨境数据合规性问题。

加速传输速度:由于数据不需要经过国际网络传输,文心一言的响应速度可能会更快,特别是对于国内用户。较低的网络延迟和更高的带宽可提供更快的交互和响应时间,增加用户体验的顺畅性。

值得注意的是,每个模型都有其特定的优势和适用场景。

申请注册教程:

首先注册百度账户,成为开发者,在下面的链接申请文心大模型:https://cloud.baidu.com/survey_summit/wenxinworkshop.html

申请以后,进入文心千帆大模型操作台:https://ai.baidu.com/wenxinworkshop/app/overview

申请到文心大模型后,我们可以看到百度文心一言提供的产品和对应的价格:

选择上述API,选择全部开通

开通以后就可以使用这些API了,可以在千帆大模型控制台,管理API。千帆大模型控制台链接,https://console.bce.baidu.com/ai/#/ai/wenxinworkshop/overview/index。

控制台的页面如下所示:

选择创建应用:

🎉恭喜您的应用程序已成功创建!🚀接下来,我们的专业平台将为您提供一套独特的身份认证资料——分别为🌟AppID、🔥API Key和🔑Secret Key。这些关键信息是您项目开发中的宝贵资产,确保每个应用的独一无二性。请务必小心保存,就像守护您的宝藏一样。🛡️记得定期更新,以保持最佳功能体验哦!💪

其他参考链接:

AppID:35297004

API Key:RgAq3HxxxxxxxxxoLy

Sceret Key:zWSdXWx4BN8WEIxxxxxxxxRj

文心千帆产品文档:https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html

API信息:

文心千帆API调用指南:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/flfmc9do2

模型调试平台,在这个平台我们可以调试不同的模型和示例代码:文心千帆大模型平台

代码调用API:

创建了应用,有了api后,我们便可以使用代码调用api,来进行下游应用的开发。

创建Access Token:

创建Access Token,根据创建应用所分配到的AppID、API Key及Secret Key,进行Access Token(用户身份验证和授权的凭证)的生成。生成方式的参考链接:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu

通过python代码的形式获取:

import

requests

import

json

def main(): # client id = App Key, client_secret = Secret Key client_id = RgAq3HxxxxxxxxxoLy client_secret = zWSdXWx4BN8WEIxxxxxxxxRj url = f”https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={client_id}&client_secret={client_secret} payload = “” headers = { Content-Type: application/json, Accept: application/json } response = requests.request(“POST”, url, headers=headers, data=payload) print(response.text)if __name__ == __main__: main()

代码实现调用,下面给出python调用ErnieBot和ErnieBot-turbo的示例代码:

Python调用文心一言模型:

百度用于聊天的总共提供了两个模型,ErnieBot和ErnieBot-turbo。下面分别是调用两个模型的代码。

python调用ErnieBot接口:

import

requests

import

json

API_KEY = “RgAq3HxxxxxxxxxoLy”SECRET_KEY = “zWSdXWx4BN8WEIxxxxxxxxRj”def main(): url = “https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=” + get_access_token() payload = json.dumps({ “messages”: [ { “role”: “user”, “content”: “你好” }, { “role”: “assistant”, “content”: “你好!我是一名人工智能语言模型,可以回答各种问题。请问有什么我可以帮助你的吗?” }, { “role”: “user”, “content”: “我是小红” }, { “role”: “assistant”, “content”: “很高兴认识你,小红。请问有什么我可以帮助你的吗?” }, { “role”: “user”, “content”: “我是谁” }, { “role”: “assistant”, “content”: “你是小红。请问有什么我可以帮助你的吗?” } ] }) headers = { Content-Type: application/json } response = requests.request(“POST”, url, headers=headers, data=payload) print(response.text)def get_access_token():

“””

使用 AK,SK 生成鉴权签名(Access Token)

:return: access_token,或是None(如果错误)

“””
url = “https://aip.baidubce.com/oauth/2.0/token” params = {“grant_type”: “client_credentials”, “client_id”: API_KEY, “client_secret”: SECRET_KEY} return str(requests.post(url, params=params).json().get(“access_token”))if __name__ == __main__: main()

message必须是奇数条。一个用户输入”user”,一个返回“assistant”构成一对。可以支持多轮对话。

python调用ErnieBot-turbo接口:

import

requests

import

json

API_KEY = “RgAq3HxxxxxxxxxoLy”SECRET_KEY = “zWSdXWx4BN8WEIxxxxxxxxRj”def main(): url = “https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=” + get_access_token() payload = json.dumps({ “messages”: [ { “role”: “user”, “content”: “你好” }, { “role”: “assistant”, “content”: “你好!有什么我可以帮助你的吗?” }, { “role”: “user”, “content”: “你是谁” }, { “role”: “assistant”, “content”: “您好,我是文心一言,英文名是ERNIE Bot。我能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。” } ] }) headers = { Content-Type: application/json } response = requests.request(“POST”, url, headers=headers, data=payload) print(response.text)def get_access_token():

“””

使用 AK,SK 生成鉴权签名(Access Token)

:return: access_token,或是None(如果错误)

“””
url = “https://aip.baidubce.com/oauth/2.0/token” params = {“grant_type”: “client_credentials”, “client_id”: API_KEY, “client_secret”: SECRET_KEY} return str(requests.post(url, params=params).json().get(“access_token”))if __name__ == __main__: main()

go调用文心一言模型:

调用ErnieBot接口:

package

main

import ( “encoding/json” “fmt” “io/ioutil” “net/http” “strings”)const API_KEY = “RgAq3HxxxxxxxxxoLy”const SECRET_KEY = “zWSdXWx4BN8WEIxxxxxxxxRj”func main() { url := “https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=” + GetAccessToken() payload := strings.NewReader() client := &http.Client {} req, err := http.NewRequest(“POST”, url, payload) if err != nil { fmt.Println(err) return } req.Header.Add(“Content-Type”, “application/json”) res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body))}

/**

* 使用 AK,SK 生成鉴权签名(Access Token)

* @return string 鉴权签名信息(Access Token)

*/
func GetAccessToken() string { url := “https://aip.baidubce.com/oauth/2.0/token” postData := fmt.Sprintf(“grant_type=client_credentials&client_id=%s&client_secret=%s”, API_KEY, SECRET_KEY) resp, err := http.Post(url, “application/x-www-form-urlencoded”, strings.NewReader(postData)) if err != nil { fmt.Println(err) return “” } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err) return “” } accessTokenObj := map[string]string{} json.Unmarshal([]byte(body), &accessTokenObj) return accessTokenObj[“access_token”]}

调用ErnieBot-turbo接口:

package

main

import ( “encoding/json” “fmt” “io/ioutil” “net/http” “strings”)const API_KEY = “RgAq3HxxxxxxxxxoLy”const SECRET_KEY = “zWSdXWx4BN8WEIxxxxxxxxRj”func main() { url := “https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=” + GetAccessToken() payload := strings.NewReader() client := &http.Client {} req, err := http.NewRequest(“POST”, url, payload) if err != nil { fmt.Println(err) return } req.Header.Add(“Content-Type”, “application/json”) res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body))}

/**

* 使用 AK,SK 生成鉴权签名(Access Token)

* @return string 鉴权签名信息(Access Token)

*/
func GetAccessToken() string { url := “https://aip.baidubce.com/oauth/2.0/token” postData := fmt.Sprintf(“grant_type=client_credentials&client_id=%s&client_secret=%s”, API_KEY, SECRET_KEY) resp, err := http.Post(url, “application/x-www-form-urlencoded”, strings.NewReader(postData)) if err != nil { fmt.Println(err) return “” } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err) return “” } accessTokenObj := map[string]string{} json.Unmarshal([]byte(body), &accessTokenObj) return accessTokenObj[“access_token”]}

?加入社群?

为了更好地了解和满足大家的需求,我们建立了「AIGC和大模型交流社群」

加入 AIGC交流和大模型社群,你可以和众多志同道合的朋友一起交流AIGC的最新进展,了解商业动态,获取教程资源,跟上大模型时代的这股浪潮。

扫描下方小助手的微信,开启你的AIGC之旅。请备注“昵称-地域-工作岗位”

     THE   END     

AI时代,拥有个人微信机器人AI助手!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注