首页 >> 大全

使用chatgpt的api实现个人聊天机器人demo(可实现多轮对话)

2023-08-15 大全 30 作者:考证青年

之前写过一篇文章,初步实现调用的api实现与机器人的对话,但是并没有提及多轮对话如何实现。在这篇文章中,我将介绍如何利用的api实现聊天机器人的多轮对话。

第一步:官网申请api,可参考我之前的博文:

用的api实现你的简易个人聊天机器人demo_聊天机器人的博客-CSDN博客

第二步:编写程序

设置代理和api

import openai
import os
os.environ["http_proxy"] = "http://127.0.0.1:47890"
os.environ["https_proxy"] = "http://127.0.0.1:47890"openai.api_key="your api_key"

定义一个函数进行对话:

def chat(m):history = mwhile True:messages = history[-10:]message = input("")if message.lower() == "stop":breakmessages.append({"role":"user","content": message})history.append({"role":"user","content": message})response=openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=messages)reply = response["choices"][0]["message"]["content"]print(reply)history.append({"role":"assistant", "content": reply})return

定义一个变量存放历史记录,这是实现多轮对话的关键

_可以设置对话的聊天机器人_实现聊天机器人的主流方法

history = m

每次对话取前10条历史记录:

messages = history[-10:]

对于 api的参数的解释:

model:所采用的模型

role:对话中的角色,包括'user', '', '',‘user’代表终端用户,‘’代表模型扮演的角色。

:对话的内容。

每轮对话中,首先将历史对话记录与当前用户输入内容合并,通过api输入给模型:

_实现聊天机器人的主流方法_可以设置对话的聊天机器人

messages = history[-10:]
message = input("")
messages.append({"role":"user","content": message})
response=openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=messages)

得到模型反馈后,输出当前反馈,并将当前会话加入到历史记录中:

reply = response["choices"][0]["message"]["content"]
print(reply)
history.append({"role":"user","content": message})
history.append({"role":"assistant", "content": reply})

如果用户输入‘stop’,则停止对话

if message.lower() == "stop":break

主函数:

if __name__ == "__main__":messages = []print("I am ready to be your friendly chatbot" + "\n" + "You can now type your messages.")chat(messages)print("finished!")

第三步:进行对话,查看效果

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了