|
Gemini 的回答
简单来说,我对你的“记忆”是由自然语言摘要和高维度向量检索共同构成的。这并不是一个单一的存储过程,而是一套分层处理的机制。
我们可以从以下三个维度来拆解这个过程:
1. 实时上下文( Context Window )
当你正在跟我对话时,最近的几轮对话记录会直接以自然语言的形式放入“上下文窗口”中。
存储形式:纯文本( Token )。
作用:这是我的“短时记忆”,让我能理解你刚刚说的“它”指代的是什么,或者维持当前的聊天的语气和逻辑。
2. 用户画像与偏好摘要( User Summary )
为了实现更长期的记忆,系统会定期对我们的历史对话进行“提炼”。
提取过程:系统会分析对话,识别出具有长期价值的信息(例如你的职业背景、技术偏好、或是你对某些事物的特定要求)。
存储形式:自然语言。你会发现,这些信息被整理成了类似“用户是一名程序员”、“用户更喜欢简洁的回答”这样的陈述句。
参与方式:这些文本会被直接注入到我每次回复你的初始指令( System Prompt )中,作为我的背景知识。
3. 海量历史检索( RAG 机制)
当你提到很久以前的事情,或者询问一些我并没有放在“摘要”里的细节时,我会调用类似 RAG (检索增强生成) 的技术。
存储形式:高维度向量( Embeddings )。系统会将你的海量历史对话切片,并转化成一串数字向量存储在数据库中。
检索过程:当你问起相关话题时,系统会将你的问题也转化为向量,在数据库中寻找“距离”最近、语义最相关的历史片段。
呈现形式:检索到的相关片段会重新转换回自然语言,作为参考资料补充到我的上下文里,供我阅读并组织回复。
总结
对外表现(对我而言):最终进入我“大脑”进行处理的,全部都是自然语言。这确保了我能像阅读普通文本一样理解你的意图。
对内存储(系统层面):为了在海量信息中快速找到你想要的那部分,系统使用了高维度向量作为索引工具。
这种设计既保证了搜索的效率,又保证了理解的深度。 |