LongtermChatExternalSources记忆原理揭秘:Embedding向量化与余弦相似度检索的完整拆解

发布时间:2026/10/21 20:23:00

LongtermChatExternalSources记忆原理揭秘:Embedding向量化与余弦相似度检索的完整拆解 LongtermChatExternalSources记忆原理揭秘Embedding向量化与余弦相似度检索的完整拆解【免费下载链接】LongtermChatExternalSourcesGPT-3 chatbot with long-term memory and external sources项目地址: https://gitcode.com/gh_mirrors/lo/LongtermChatExternalSourcesLongtermChatExternalSources 是一个开源的GPT-3 长期记忆聊天机器人核心能力正是 Embedding 向量化与余弦相似度检索。这篇教程带你逐行看懂 chat.py 的记忆实现10 分钟搞懂 AI 聊天机器人记住过去的完整原理。为什么聊天机器人需要长期记忆默认的 GPT-3 API 是无状态的——每次请求都是全新的聊完即忘。这个项目用一套纯文件 向量的方案解决记忆问题架构非常轻量目录角色类比nexus/每条对话的消息 向量情景记忆海马体internal_notes/GPT-3 生成的记忆摘要陈述记忆压缩笔记gpt3_logs/每次调用的提示词与输出调试日志 一句话概括每条消息都变成一个高维向量存盘提问时再靠向量夹角找出最相关的旧记忆。Embedding 向量化把文字变成 1536 维向量记忆的入口在 gpt3_embedding 函数def gpt3_embedding(content, enginetext-embedding-ada-002): content content.encode(encodingASCII,errorsignore).decode() response openai.Embedding.create(inputcontent,engineengine) vector response[data][0][embedding] # this is a normal list return vector关键点调用 OpenAI 的text-embedding-ada-002模型将任意文本编码为1536 维浮点向量发送前先用 ASCII 编码过滤掉非英文字符errorsignore兼容当时 API 的限制向量的魔法在于语义越相近的两段文字向量方向越接近可以直接翻一下真实数据感受 nexus/log_1674383041.28684_USER.json一句good morning raven就对应一个包含 speaker、时间戳、uuid 和上千行向量的 JSON 文件。余弦相似度找出意思相近的记忆拿到查询向量后如何判断哪条旧记忆最相关答案在 similarity 函数def similarity(v1, v2): return np.dot(v1, v2)/(norm(v1)*norm(v2)) # return cosine similarity这就是教科书级的余弦相似度公式cos θ 点积 / (模长 × 模长)。结果范围是 -1 ~ 1越接近 1 表示两条记忆方向越一致越相关只比较方向、忽略长度因此早上好和清晨问候能被判为高相似而不受句子长短影响检索逻辑在 fetch_memories 函数 中遍历nexus/全部历史消息逐条打分、排序跳过与当前消息完全相同的向量最后返回Top 10条最相关记忆。完整检索链路AI 想起过去的 6 个步骤主循环 chat.py 第 141-172 行 把上面的零件串成流水线每一轮对话都执行用户输入 → 向量化gpt3_embedding(a)连同 uuid、时间戳存为nexus/log_时间戳_USER.json载入全部历史load_convo 按时间正序读取nexus/下所有 JSON检索情景记忆fetch_memories(vector, conversation, 10)取余弦相似度最高的 10 条摘要压缩summarize_memories 把 10 条记忆拼成文本块用 prompt_notes.txt 让 GPT-3 写成-开头的笔记列表再为笔记块本身生成向量存入internal_notes/组装提示词prompt_response.txt 中NOTES和CONVERSATION两个占位符分别填入摘要笔记和最近 4 条消息生成并存档回复text-davinci-003输出答案回复同样向量化后存回nexus/完成一轮闭环流程图直观版用户输入 ──▶ Embedding 向量化 ──▶ 余弦相似度检索 Top10 记忆 ▲ │ │ ▼ 回复存档 ◀── GPT-3 生成 ◀── 摘要笔记 最近4条消息用真实数据验证记忆效果打开 internal_notes/notes_1674383045.5926764.json能看到 GPT-3 实际压缩出的记忆笔记User: Asked about difficulty sleepingRaven: Suggested establishing a regular sleep schedule…User: Asked about the singularityRaven: Explained the concept of the singularity…8 条原始对话被浓缩成 8 行要点uuids/times字段保留了可回溯的溯源链。此外dream_sequence.py 是作者预留的梦境模块复用了同一套向量化与相似度能力用于离线提炼用户偏好原则提示词见 prompt_dream_user.txt属于项目规划中的扩展方向。快速上手5 步跑通你的记忆型 GPT-3 聊天机器人按照 README.md 的说明操作克隆仓库git clone https://gitcode.com/gh_mirrors/lo/LongtermChatExternalSources创建虚拟环境python3 -m venv env并激活安装依赖pip install openai numpy将 OpenAI API Key 写入项目根目录的openaiapikey.txt末尾不要换行运行python chat.py即可在命令行与有记忆的 RAVEN 对话常见问题Q1为什么不用向量数据库而是逐文件遍历消息量小时暴力扫描足够且架构零依赖、完全透明代码里的 TODO 注释也表明后续计划引入时间邻近召回等优化见 chat.py 第 58 行。Q2记忆会无限膨胀吗每条消息一个 JSON 文件笔记是增量摘要而非全量重算配合uuid索引便于后续去重与归档。Q3换成中文能用吗当前errorsignore会丢弃非 ASCII 字符直接输入中文会被清空改造该过滤逻辑即可支持这也是动手练习的好切入点。总结LongtermChatExternalSources 用不到 200 行代码演示了 RAG 时代记忆系统的雏形——向量化存记忆、余弦相似度找记忆、大模型压缩记忆。吃透 chat.py 后你就能为任何无状态大模型应用挂上长期记忆。【免费下载链接】LongtermChatExternalSourcesGPT-3 chatbot with long-term memory and external sources项目地址: https://gitcode.com/gh_mirrors/lo/LongtermChatExternalSources创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/21 19:27:06

AI工程师面试核心考点与实战解析

1. AI工程师面试全景解析最近两年AI工程师岗位的竞争激烈程度远超想象,去年某大厂校招岗位报录比达到惊人的300:1。作为面试过上百名候选人的技术面试官,我整理了这份覆盖算法、工程、业务三大维度的题库,并附上评分标准和避坑指南。AI面试与…

2026/10/21 19:03:52

ESP-IDF安装避坑指南:系统兼容、Python隔离与离线部署

1. 为什么ESP-IDF安装成了多数人卡住的第一道墙? 我带过二十多个嵌入式新人项目,几乎每个人在“点亮LED”之前,都先被ESP-IDF安装绊倒过。不是代码写错了,而是环境根本没跑起来——终端报错 command not found: idf.py 、VS Co…

2026/10/21 20:20:13

Mootdx 实战:3 行代码把通达信本地行情读成 Pandas DataFrame

Mootdx 实战:3 行代码把通达信本地行情读成 Pandas DataFrame 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx Mootdx 是通达信数据读取的简便使用封装:离线文件走 Reader&a…

2026/10/21 20:20:13

原神自动化助手:5 分钟跑通每日任务自动化的完整指南

原神自动化助手:5 分钟跑通每日任务自动化的完整指南 【免费下载链接】genshin_impact_assistant 原神小助手 Genshin Assistant (CN/EN) | 自动战斗,秘境,领日常,半自动委托 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin_impact_assistant 每…

2026/10/21 20:20:13

原神小助手自动化辅助指南:OCR、图像识别与自动战斗怎么玩

原神小助手自动化辅助指南:OCR、图像识别与自动战斗怎么玩 【免费下载链接】genshin_impact_assistant 原神小助手 Genshin Assistant (CN/EN) | 自动战斗,秘境,领日常,半自动委托 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin_impact_assistant …

2026/10/21 20:15:12

44:第n小的质数

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/21 0:00:35

交通流仿真实战:IDM跟驰与MOBIL换道模型参数调优与避坑指南

简介:这份资源是面向交通工程学习者与Python开发者的微观交通流仿真项目,核心实现智能驾驶模型(IDM)下的车辆跟驰与换道行为,可用于理解速度、密度与流量之间的动态关系,适合具备Python基础、希望深入交通模…

2026/10/21 0:00:35

揭穿智能体表面顺从:用追踪代码重建任务执行确定性

1. 表面顺从不是智能体的“礼貌”,而是任务执行链路上的隐性断点最近在调试一个跨平台长周期任务调度系统时,我反复遇到一种令人困惑的现象:智能体在用户指令发出后,几乎秒级响应“已收到”“正在处理”“请稍候”,UI上…

2026/10/21 0:00:35

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑