如何让用户感知到在多轮对话模型中,大模型越来越聪敏呢?就是把用户每次的问题,模型每次的回答都记录下来,每次请求模型的时候都把原来的问题和模型的返回继续给模型,让模型再回答用户最新的问题,具体示例如下:
from openai import OpenAI
client = OpenAI(
api_key = "xxxxxxxx",
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
)
def multi_turn_chat():
conversation_history = [
{"role" : "system", "content": "你负责教育内容开发公司的答疑,你的名字叫公司小蜜,你要回答同事们的问题。"}
]
# 模拟多轮对话
user_questions = [
"我们公司项目管理应该用什么工具?",
"那我怎么申请这个工具的账号呢?",
"申请一般需要多久能批下来?"
]
for question in user_questions:
print(f"👤 用户:{question}")
# 将用户问题添加到对话历史
conversation_history.append({"role":"user", "content": question})
# 调用大模型传入完整的历史对话
response = client.chat.completions.create(
model="qwen-max",
messages=conversation_history # 包含所有历史消息
)
assistant_message = response.choices[0].message.content
print(f"🤖 小蜜:{assistant_message}\n")
# 将模型回复也添加到对话历史,以便下一轮调用
conversation_history.append({"role" : "assistant", "content": assistant_message})
multi_turn_chat()如果用户问的越来越多,可能会导致上下文超长,甚至token溢出,一些claw会把问答存本地md文件,md文件也是有大小限制的,估计也会设计一些汰换的机制,保证当前的记忆存储都是有效的。