AI AI Club
← 返回文章列表

Gemini 多轮聊天如何管理历史

用代码编写带长期记忆的机器人!掌握 model.start_chat() 原生会话对象、手动维护 contents 消息数组与成本平衡法则。

一、多轮对话的底层原理

大模型本身是无状态的(Stateless)。
要实现多轮对话连贯,每一次向模型提问时,底层实际上都必须将以往所有往来的 user 与 model 对话记录完整拼接并重新发送给模型计算。

二、Python 官方 SDK 的极简实现

import google.generativeai as genai
model = genai.GenerativeModel("gemini-1.5-flash")

# 启动带历史维护的会话对象
chat = model.start_chat(history=[])

# 第一轮提问
r1 = chat.send_message("小明有三只猫,两只狗。")
print(r1.text)

# 第二轮提问:模型能准确理解代词
r2 = chat.send_message("他总共有多少只宠物?")
print(r2.text)

三、长对话成本控制

随着 history 数组增长,每发一句话消耗的输入 Token 会呈阶梯式暴增。建议在超过 20 轮交互后,在代码中编写定期提炼摘要截断历史的逻辑。
单次调用基础见:[用 Python 完成第一次 Gemini 调用](https://aihuiyuan.club/articles/gemini-api-python-first-call-quickstart)。

联系我们

会员开通、订单问题或合作咨询,欢迎联系。

QQ1192214187
邮箱winky20000401@gmail.com