LongtermChatExternalSources路线图前瞻:如何从情景记忆扩展到声明性记忆与外部知识源
【免费下载链接】LongtermChatExternalSourcesGPT-3 chatbot with long-term memory and external sources项目地址: https://gitcode.com/gh_mirrors/lo/LongtermChatExternalSources
LongtermChatExternalSources 是一个具备长期记忆与外部知识源扩展能力的 GPT-3 聊天机器人项目。本文带你前瞻它的演化路线图:从已实现的情景记忆向量检索,到计划中的声明性记忆(事实、Wiki、知识库)与外部知识源接入,看懂这个长期记忆聊天机器人未来如何变得更"记得住、更博学"。
一分钟认识:这个长期记忆聊天机器人能做什么?
和"聊完就忘"的普通聊天机器人不同,LongtermChatExternalSources 会:
- 💾 把每一句对话(用户和机器人 RAVEN)连同时间戳、向量嵌入存入本地日志
- 🔍 用向量相似度检索"过去聊过什么",生成笔记(notes)注入回答
- 📝 用 GPT-3 把相关记忆总结成结构化笔记,作为长期记忆
快速上手(3 步跑起来):
- 克隆仓库:
git clone https://gitcode.com/gh_mirrors/lo/LongtermChatExternalSources - 安装依赖并配置:
pip install openai numpy,把 OpenAI API Key 写入项目根目录的openaiapikey.txt(末尾不要换行) - 运行主程序:
python chat.py,即可在命令行与 RAVEN 对话
详细的环境配置步骤见 README.md 的 Setup 章节。
项目目录结构速览:记忆存在哪里?
| 目录 / 文件 | 作用 |
|---|---|
nexus/ | 情景记忆:每条对话消息一个 JSON 日志,含时间戳、UUID 和向量嵌入 |
internal_notes/ | 长期记忆笔记:GPT-3 对相关记忆块的总结 |
gpt3_logs/ | 每次 GPT-3 调用的原始请求与回复日志 |
chat.py | 主程序,完整的"记忆检索 → 总结 → 回答"循环 |
dream_sequence.py | "做梦"序列脚本,用于从记忆中提炼原则 |
prompt_response.txt、prompt_notes.txt | 回答生成与笔记总结的提示词模板 |
prompt_dream_raven.txt等 | 梦境脚本的提示词(用户画像、RAVEN 画像、隐喻) |
现状解析:情景记忆是如何工作的?
打开chat.py,可以看到一次完整对话的"记忆流水线",非常适合新手学习 RAG(检索增强生成)的雏形:
- 向量化:用户输入被
text-embedding-ada-002转成向量,消息连同向量存入nexus/目录(如log_1673864119.3581932_USER.json) - 向量检索:
fetch_memories函数用余弦相似度从全部历史消息中挑出最相关的 Top 10 条,作为情景记忆("我们曾聊过的具体事") - 记忆总结:
summarize_memories把这 10 条记忆交给 GPT-3 提炼成要点笔记,存进internal_notes/ - 组装上下文:取最近 4 条消息(
get_last_messages)+ 笔记,填充进prompt_response.txt模板 - 生成回答:GPT-3 以 RAVEN 身份作答,回答本身也被向量化并存档,形成闭环
简单说:向量负责"想起过去",笔记负责"浓缩过去",提示词负责"用过去回答现在"。
路线图一:接入声明性记忆——从"记得聊过"到"记得知识"
chat.py主循环中有一行关键注释,直接点明了下一步方向:
# TODO - fetch declarative memories (facts, wikis, KB, company data, internet, etc)
情景记忆(episodic memory)与声明性记忆(declarative memory)的区别:
| 维度 | 情景记忆(已实现) | 声明性记忆(规划中) |
|---|---|---|
| 内容 | 具体的对话片段、事件 | 事实、概念、知识条目 |
| 来源 | nexus/对话日志 | Wiki、知识库(KB)、公司数据、互联网 |
| 回答场景 | "上次我们聊到什么" | "地球有多少颗行星" |
这意味着项目将引入独立的知识索引层:预先向量化外部文档与事实库,在回答时与情景记忆并行检索——这正是"ExternalSources"(外部来源)三个字的含义。
路线图二:连接外部知识源——让聊天机器人接入世界
除了通用事实库,规划中的外部知识源还可能包括:
- 📚 个人/团队知识库文档的向量索引
- 🏢 公司内部数据的受控查询
- 🌐 互联网信息的实时检索与注入
对使用者的价值很直观:聊天机器人将从"只懂你们聊过的天"升级为"既记得你、又懂得多"的助手。
路线图三:三个藏在代码里的优化点
chat.py中的其他 TODO 注释,勾勒出工程侧的优化路线:
- 时间邻近记忆:
pick more memories temporally nearby——检索时不仅看语义相似度,还召回时间上相邻的记忆,保持上下文连贯 - 后台增量总结:
do this in the background over time——笔记总结改为后台增量执行,避免海量记忆下每次对话都等待总结 - 先查已有笔记:
search existing notes first——回答前先检索internal_notes/里的历史笔记,减少重复总结、降低成本
"做梦"机制:长期记忆的另一块拼图
dream_sequence.py配合prompt_dream_raven.txt、prompt_dream_user.txt、prompt_dream_metaphor.txt,实现了类似"睡眠巩固记忆"的机制:从笔记中提炼关于用户和 RAVEN 的原则画像,并生成隐喻来概括记忆主题。这为"声明性记忆"提供了雏形——把零散对话固化为稳定的认知结论。
总结:一张值得收藏的记忆升级路线
LongtermChatExternalSources 的路线图清晰而有层次:
- ✅已实现:对话向量检索(情景记忆)+ 笔记总结 + RAVEN 人格回答
- 🔜下一步:接入声明性记忆(事实、Wiki、知识库、公司数据、互联网)
- 🔜再下一步:外部知识源索引、时间邻近检索、后台总结、梦境固化
对于想学习"给 GPT-3 加长期记忆"的开发者,chat.py不到 200 行主循环就是一个绝佳的最小可运行案例;对于使用者,这个项目展示了一条让 AI 助手真正"记住你、懂世界"的完整路径。
【免费下载链接】LongtermChatExternalSourcesGPT-3 chatbot with long-term memory and external sources项目地址: https://gitcode.com/gh_mirrors/lo/LongtermChatExternalSources
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考