Back to Blog

Conversation Import: Bring Your Memory From Anywhere

neuromem team

你和 ChatGPT 聊了一年,积累了数百条对话。里面包含你的工作偏好、技术决策、生活习惯。然后你换到了 Claude,或者开始用一个新的 AI Agent——这些记忆就全部丢失了。

neuromem 的对话导入功能解决的就是这个问题:把你在其他平台积累的对话历史变成结构化的记忆。

对话导入全流程

① 上传对话文件

支持 ChatGPT、Claude、微信、Markdown、通用 JSON

② 自动检测格式

智能解析,无需手动指定

③ 后台异步处理

逐条提取,可随时查看进度

④ SHA-256 去重

自动跳过已导入的重复对话

⑤ 结构化记忆入库

事实 + 事件 + 知识图谱三元组

支持的平台

neuromem 目前支持以下平台的对话导入:

  • ChatGPT:直接上传 conversations.json 导出文件。解析器能处理 ChatGPT 特有的 mapping 树结构,按时间排序提取消息。
  • Claude:支持包含 chat_messages 的 JSON 导出格式,自动识别 human/assistant 角色映射。
  • 微信:支持常见的微信聊天记录导出格式,包括 "日期时间 + 昵称 + 内容" 和 "昵称 + 日期时间 + 内容" 两种模式。
  • Markdown:支持多种 Markdown 对话格式(浏览器扩展导出),自动识别 ## User / ## Assistant 标题格式、**角色名:** 粗体格式等。
  • 通用 JSON:标准的 conversations + messages 结构。

系统会自动检测上传文件的格式,无需手动指定。

异步处理流程

导入大量对话可能涉及数百甚至数千条消息,因此整个流程是异步执行的:

  1. 上传与解析:用户上传文件,系统自动检测格式并解析为标准对话结构
  2. 任务创建:创建后台导入任务,立即返回任务 ID
  3. 逐条提取:后台逐条处理 user 消息,每条消息独立触发记忆提取
  4. 状态跟踪:用户可以随时查询导入进度——已导入数量、已完成提取数量、跳过和失败数量

导入过程中,每条 user 消息会调用 nm.ingest 并开启 auto_extract,自动提取事实、事件和知识图谱三元组。assistant 消息也会被存储,但不触发提取。

去重机制

重复导入是一个常见问题——用户可能不确定之前是否已经导入过某个文件。neuromem 通过内容哈希(SHA-256)实现去重:

def compute_conversation_hash(conv):
    content = "|".join(f"{m.role}:{m.content}" for m in conv.messages)
    return hashlib.sha256(content.encode()).hexdigest()

每条对话的所有消息内容会被拼接后计算哈希值。如果一条对话的哈希值已经出现过,系统会自动跳过它,避免重复导入。

智能文本解析

除了标准格式的文件上传,neuromem 还支持粘贴文本的智能解析。系统会按优先级依次尝试:

  1. 规则解析:尝试 Markdown 对话格式、微信格式、Role: content 格式
  2. LLM 兜底:如果规则无法识别,使用 LLM 分析文本结构,提取对话

即使是非标准格式的对话记录,也能被正确解析。

导入后的效果

导入完成后,对话中的内容会被自动提取为三种类型的记忆:

  • 事实(Fact):离散的、可验证的信息,如 "用户在 Google 工作"、"用户喜欢用 pnpm"
  • 事件(Episode):绑定时间的一次性事件,如 "2024 年 2 月参加了 Python meetup"
  • 知识图谱三元组(Triple):实体间的关系,如 "用户 -> 使用 -> TypeScript"

导入 200 条 ChatGPT 对话后的记忆分布

真实用户导入数据的典型分布

这些记忆会进入 neuromem 的记忆系统,可以被 recall 语义搜索到,也可以在后续的 digest 中被用来发现行为模式。

取消导入

如果导入了错误的文件,或者想要中止一个耗时较长的导入任务,可以随时取消。取消操作会停止后续对话的处理,并尝试取消正在进行的提取任务。

实际应用

对话导入最典型的使用场景是"冷启动":当用户第一次开始使用 neuromem 时,导入历史对话可以让系统快速建立对用户的理解,而不需要从零开始积累。

一个有趣的用法是导入微信群聊记录——让 AI 理解你和朋友们的互动模式、共同话题和沟通风格。这些在传统 AI 记忆系统中是完全无法获取的信息。