Administrator
Administrator
发布于 2026-03-21 / 2 阅读
0
0

大模型多轮会话的模拟

如何让用户感知到在多轮对话模型中,大模型越来越聪敏呢?就是把用户每次的问题,模型每次的回答都记录下来,每次请求模型的时候都把原来的问题和模型的返回继续给模型,让模型再回答用户最新的问题,具体示例如下:

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文件也是有大小限制的,估计也会设计一些汰换的机制,保证当前的记忆存储都是有效的。


评论