微信机器人进阶:结合AI实现上下文多轮对话
·
1. 引言
多轮对话不是把最近十条原文无脑塞进模型。进阶要解决:谁的上下文、何时清空、转人工后还能不能继续、群里一堆人说话会不会串戏。上下文错了,看起来像模型变傻,其实是键错了。
2. 上下文的主键
按「设备 + 对方」分桶,不要按昵称。群里若允许对话,要再加群 ID,并且默认未点名不写入。自身消息不进历史。
from collections import deque
class ChatSession:
def __init__(self, max_history=10):
self.sessions = {}
self.max_history = max_history
def _bucket(self, device, peer):
key = f"{device}:{peer}"
if key not in self.sessions:
self.sessions[key] = deque(maxlen=self.max_history)
return self.sessions[key]
def history(self, device, peer):
return list(self._bucket(device, peer))
def add(self, device, peer, role, content):
self._bucket(device, peer).append({"role": role, "content": content})
3. 和词表、人工态的关系
词表命中可以不进多轮,避免营业时间被模型改写。转人工后停止追加用户/助手轮次,坐席输入丢弃。过期或心跳续期,永不过期会像功能坏了。
模型调用放队列。入口超时重推时,去重键要挡住第二轮生成,否则同一句会有两段「多轮」回复。
4. 进阶开关
群默认关多轮。私聊可开。温度低、超时短。超已审范围转人工,不要靠多轮磨出折扣。
5. 验收
A 的上下文不出现在 B;转人工后无自动句;同一回调重放仍一条;关闭模型后词表仍可用。
6. 总结
微信机器人进阶的多轮,是隔离的短记忆,加上可停嘴。AI 没有自己的会话,会话键在你的表里。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)