当前位置:   article > 正文

使用chatgpt的api实现个人聊天机器人demo(可实现多轮对话)_使用chatgpt的api,实现多轮问答模式

使用chatgpt的api,实现多轮问答模式

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

第一步:官网申请api,可参考我之前的博文:
用chatgpt的api实现你的简易个人聊天机器人demo_聊天机器人api_qq_38100666的博客-CSDN博客

第二步:编写程序

设置代理和api

  1. import openai
  2. import os
  3. os.environ["http_proxy"] = "http://127.0.0.1:47890"
  4. os.environ["https_proxy"] = "http://127.0.0.1:47890"
  5. openai.api_key="your api_key"

定义一个函数进行对话:

  1. def chat(m):
  2. history = m
  3. while True:
  4. messages = history[-10:]
  5. message = input("")
  6. if message.lower() == "stop":
  7. break
  8. messages.append({"role":"user","content": message})
  9. history.append({"role":"user","content": message})
  10. response=openai.ChatCompletion.create(
  11. model="gpt-3.5-turbo",
  12. messages=messages
  13. )
  14. reply = response["choices"][0]["message"]["content"]
  15. print(reply)
  16. history.append({"role":"assistant", "content": reply})
  17. return

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

history = m

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

messages = history[-10:]

对于openai api的参数的解释:

        model:所采用的模型

        messages:

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

                content:对话的内容。

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

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

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

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

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

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

主函数:

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/592605
推荐阅读
相关标签
  

闽ICP备14008679号