写在前面
心血来潮,复试完结束很摆,研究点东西玩玩,之前之知道nonebot搭建qq机器人的方法和步骤,这次记录下自己使用openai,gpt3.5的api的代码,参考自openai的官网。
环境
要求 python
版本 >=3.8 && <4
安装openai的库
pip install openai
注意记得设置代理,可以使用api即可,通常来说,api比登录chatgpt的审核要求更加严格。
编写脚本
以下提供了两个版本,一个是没有上下文情境的版本,一个是加入情境的版本,一般来说,加入上下文情境会消耗更多的tokens
,因为把历史对话导入了prompt
中。
版本
helper.py
# 导入openai库
import openai
# 设置api-key
openai.api_key = "sk-xxx"# 将openai chat封装成函数
def chat(prompt):# 核心的请求语句,prompt为问题内容# model可选{'gpt-3.5-turbo', 'gpt-3.5-turbo-0301', 'text-davinci-003', 'text-davinci-002', 'code-davinci-002'},model特色参考官方文档# role可选{'system', 'assistance', 'user'}completion = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role": "assistant", "content": prompt}])str = completion.choices[0].message.contentprint("@bot:" + str)# 主函数,使用读入控制台输入的方式对话
if __name__=="__main__":print('使用"CTRL + C"退出')print('=========开始聊天=========')while True: print('@您:', end = '')chat(input())
效果预览
helper_plus.py
import os
import openaiopenai.api_key = "sk-xxx"messages = []
print('使用"CTRL + C"退出')
print('=========开始聊天=========')
while True:content = input("@您: ")messages.append({"role": "user", "content": content})completion = openai.ChatCompletion.create(model="gpt-3.5-turbo-0301",messages=messages)chat_response = completionanswer = chat_response.choices[0].message.contentprint(f'@bot: {answer}')messages.append({"role": "assistant", "content": answer})
这部分就不写注释了,具体是操作方法是,把新的问题append
到上次对话的结尾以带入情境。
后续会补写搭建nonebot
机器人的文章,但不涉及开发,等我学习完再进行记录(#`O’)