文心一言API利用教程(python版)
注:在做项目的时候需要调用文心一言,发现网上的版本很乱,根本都止步在官方文档的代码上,所以写了一篇博客来记录自己的尝试实现了对文心一言的循环调用和自界说扣问,本篇文章不需要有任何对api的底子知识,代码全部成功运行,并引用官方文档,祝大家成功实现自己的调用预置准备部分
[*] 注册百度千帆平台账户,并注册api
[*]文心一言的利用需要注册一个百度账户,可以利用百度网盘的账户进行登录百度智能云-登录 (baidu.com)")
[*]申请以后,进入文心千帆大模子操作百度智能云控制台 (baidu.com)")https://i-blog.csdnimg.cn/blog_migrate/c194991ef5ae6f517455df1e100fa671.png
[*]选择右侧边栏的应用接入,再点击创建应用就可以申请一个api了https://i-blog.csdnimg.cn/blog_migrate/6db2a364fce6d2b1e64799a70101655e.png
[*]创建过程中只需要填写当前api的名称以及形貌,默认所有服务都是勾选的(对api的利用没有任何影响)https://i-blog.csdnimg.cn/blog_migrate/1897fecc7352112e210bfe798f7941bf.png
[*]创建成功后会返回到应用接入的界面,记录下此时AppID、API Key、Secret Keyhttps://i-blog.csdnimg.cn/blog_migrate/aca5b8909be26db7cf1b4c7b82ca617e.png
[*] 配置api,开通服务接口
1.点击控制台右上角的计费管理开通服务
https://i-blog.csdnimg.cn/blog_migrate/c8456c54cb0bde8b26a815a10307f95e.png
注意文心一言的api的调用是需要付费的,并且提供多个大模子可以根据自己的选择进行开通,博主只开通了 ERNIE-Bot-turbo大模子公有云在线调用服务和ERNIE-Bot大模子公有云在线调用服务,差异服务的差异可以参考API列表API列表 - 千帆大模子平台 | 百度智能云文档 (baidu.com)")
https://i-blog.csdnimg.cn/blog_migrate/43b4edbae4eb7c433841e557525eb730.png
[*] python装配库
[*]下载requsets库
[*]下载json库
程序编写部分
[*] 获取Acees Token:
[*]需要通过Acess Token来访问文心一言,注意:access_token默认有用期30天,生产情况注意实时革新。可参考官方文档获取access_token - 千帆大模子平台 | 百度智能云文档 (baidu.com)")
import requests
import json
def main():
# client id = API Key, client_secret = Secret Key 修改成自己的API Key 和Sercet Key
client_id="4YqbzGV59w6BU3Hh1GlBsaA1"
client_secret="3mM6ys4yAG5j******v"
url = "https://aip.baidubce.com/oauth/2.0/token?grant_type= client_credentials
& client_id= 4Y****saA1 & client_secret = 3mM6ys4yAG5j*****PnH0yDHlv "
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()
#会再终端打印一行文本即acess token
[*]根据终端打印的Acess Token获取数据,记录其中的refresh_tolen(不用抄下来这一步是为了让大家更好的明白接下来的get_acess_token()函数)https://i-blog.csdnimg.cn/blog_migrate/4fa5c78f38a24d7a5bc7c84dec3dc716.png
[*] 实现根本调用
[*]将refresh_token作为参数传入到调用程序中,如今就完成了最根本的利用,此时是默认的题目“你好”,message中的数据必须是奇数条,负责会报错
import requests
import json
#修改成自己的api key和secret key
API_KEY = "Kc8pXsRQ***TbbF"
SECRET_KEY = "bgS856cVXiw5gj****IekgH4b2n"
def main():
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()
#注意message必须是奇数条
payload = json.dumps({
"messages": [
{
"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()
[*]
程序升级部分
此部分需要一定的python底子,如json,requset等相关知识,可以自己在CSDN,博客园,菜鸟驿站和B站找相关教程,固然可以直接看末了的代码就是最终制品
[*]
[*] 题目:不能自界说题目的:
- 设定一个输入字符串来解决
- 将message中的"content“ : ”你好“ 换成 s
[*]题目:打印输出的内容存在不需要的部分:
{"id":"as-nuhbvmdj8h",
"object":"chat.completion",
"created":1697125231,
"result":"长沙有很多好玩的地方,以下是一些值得推荐的项目:\n\n* 橘子洲:位于长沙市区对面的湘江中,是长沙必游的景点之一。这里有一片人工沙滩可以戏水游玩,还有毛泽东青年雕像、历史浮雕等可以参观。\n* 岳麓山:位于长沙市区的岳麓山风景区是国家5A级旅游景区。这里有悠久的历史文化,拥有碑刻、古建筑、古植物、山水风光等各种景观,是长沙的一大标志性景点。\n* 长沙IFS:这里以商场和写字楼为主,地下一楼有美食城,有丰富的长沙本地小吃。\n* 湖南省博物馆:是湖南省最大的综合性历史博物馆,馆内珍藏着许多珍贵文物,记录了湖南的历史和文化。\n* 天心阁:是长沙市区的标志性建筑之一,有着悠久的历史和文化背景。\n\n此外,长沙还有一些其他值得一游的地方,如黄兴广场、太平街、湖南省植物园等。这些地方都有各自独特的景观和特色,值得一探究竟。\n\n以上信息仅供参考,如有需要,建议您查阅官方资讯。"
,"is_truncated":false,
"need_clear_history":false,
"usage":{"prompt_tokens":8,"completion_tokens":323,"total_tokens":331}}
- 第一步:返回的response是一个response类型数据,我们可以用.json()将其转换成一个json类型
- 第二步:观察到json的response是一个字典类型我们可以用['result']来访问元素
- ```
import requests
import json
#修改成自己的api key和secret key
API_KEY = "4YqbzGV59w******lBsaA1"
SECRET_KEY = "3mM6ys******xDPnH0yDHlv"
def main():
url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()
s=input()
#注意message必须是奇数条
payload = json.dumps({
"messages": [
{
"role": "user",
"content": s
}
]
})
headers = {
'Content-Type': 'application/json'
}
res = requests.request("POST", url, headers=headers, data=payload).json()
print(res['result'])
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"))
自我先容一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到如今。
深知大多数Python工程师,想要提拔技能,往往是自己探索发展或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学结果低效又漫长,而且极易遇到天花板技术故步自封!
因此网络整理了一份《2024年Python开发全套学习资料》,初志也很简朴,就是盼望能够帮助到想自学提拔又不知道该从何学起的朋侪,同时减轻大家的负担。
https://i-blog.csdnimg.cn/blog_migrate/26ef0c8c5db578c09b1cf5f50eeb7aa4.png
https://i-blog.csdnimg.cn/blog_migrate/9d399efed2affe5f961af305dbf14011.png
https://i-blog.csdnimg.cn/blog_migrate/ad7909a4730b780656545eb9552a5320.png
https://i-blog.csdnimg.cn/blog_migrate/16e27ee7dfd6e25a4f43c8cc6ef06aa7.png
https://i-blog.csdnimg.cn/blog_migrate/3443f3d934f11d6666b3767ac0897763.png
https://i-blog.csdnimg.cn/blog_migrate/0426b4c2e3d69852ceb846faa8ff365f.png
既有得当小白学习的零底子资料,也有得当3年以上履历的小同伴深入学习提拔的进阶课程,根本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比力大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习条记、源码讲义、实战项目、讲解视频,并且后续会持续更新
假如你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
566129f47b8a67243c1008edf79.png)
既有得当小白学习的零底子资料,也有得当3年以上履历的小同伴深入学习提拔的进阶课程,根本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比力大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习条记、源码讲义、实战项目、讲解视频,并且后续会持续更新
假如你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
https://i-blog.csdnimg.cn/blog_migrate/23b12c2a4263c32dd26c2ce6d1a71b24.jpeg
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]