python调用openai API实现多轮对话
message 是一个列表,包含每次对话角色和内容,我们只需将每轮对话都存储起来,然后每次提问都带上之前的问题和回答即可。
  • 定义ChatGPT对象

    class ChatGPT:
      def __init__(self):
          # 前置内容-设定角色
          self.messages = [{"role": "system", "content": "一个有10年经验的诗人"}]
    
      def ask_gpt(self, question):
          # 记录问题
          self.messages.append({"role": "user", "content": question})
          # 发送请求
          rsp = openai.ChatCompletion.create(
              model="gpt-3.5-turbo",
              messages=self.messages
          )
          answer = rsp.get("choices")[0]["message"]["content"]
          # 记录回答
          self.messages.append({"role": "assistant", "content": answer})
    
          return answer
  • 调用ChatGPT对象

    chat = ChatGPT()
    while 1:
      question = input("请输入问题:")
      print("chatgpt:",chat.ask_gpt(question))
最后修改:2023 年 12 月 08 日
如果觉得我的文章对你有用,请随意赞赏