Python如何对接文心一言
作者:bystart 青檬小栈
这篇文章主要为大家介绍了Python如何对接文心一言的操作实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
引言
文心一言是百度研发的Ai机器,能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。
申请Api Key
前往百度智能云
https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application
登录并创建应用,拿到需要的API Key
和Secret Key
:
编辑源代码
修改参数:
api_key
:替换成自己的
secret_key
:替换自己的
redis
的配置是用于保存access_token
,该token通过接口获取默认有效期为30
天。可自行决定是否需要redis的配合。
import requests import json import redis # 文心一言配置 api_key = "你的api_key" secret_key = "你的secret_key" # redis配置 redis_host = "127.0.0.1" redis_port = 6379 redis_db = 0 class ChatBot: def __init__(self, api_key, secret_key): self.api_key = api_key self.secret_key = secret_key self.message_history = [] self.redis_client = redis.Redis(host=redis_host, port=redis_port, db=redis_db) self.chat_url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token={}" def get_token(self): if self.redis_client.exists('access_token'): return self.redis_client.get('access_token').decode() else: get_access_token_url = ("https://aip.baidubce.com/oauth/2.0/token?" "client_id={}" "&client_secret={}" "&grant_type=client_credentials").format( self.api_key, self.secret_key) response = requests.get(get_access_token_url) self.redis_client.setex('access_token', response.json()['expires_in'], response.json()['access_token']) return response.json()['access_token'] def check_tokens(self, total_tokens): if total_tokens > 4800: self.message_history = self.message_history[len(self.message_history) / 2:] def add_chat_history(self, message): self.message_history.append(message) payload = json.dumps({ "messages": self.message_history }) return payload def send_message(self, message): payload = self.add_chat_history({ "role": "user", "content": message }) headers = {'Content-Type': 'application/json'} response = requests.post(self.chat_url.format(self.get_token()), headers=headers, data=payload) self.add_chat_history({ "role": "assistant", "content": response.json()['result'] }) return response.json()['result'] if __name__ == '__main__': chatbot = ChatBot(api_key, secret_key) while True: message = input("you: ") if message.strip() != "": reply = chatbot.send_message(message) print("bot: ", reply)
思维扩展
通过上面的代码逻辑,我们是否可以尝试:通过麦克风获取用户的语音指令转成文字,然后通过文心一言拿到返回的内容再生成语音进行播放。是不是就成了智能语音助手🤔
以上就是Python如何对接文心一言的详细内容,更多关于Python对接文心一言的资料请关注脚本之家其它相关文章!