跳转到正文

导出聊天记录 ​

本页介绍所有内置导入插件对应的文件准备方法。导出工具的界面可能随版本变化,安装和账号访问方式请以所链接的上游文档为准,导出时选择下表所列格式。

导出前准备 ​

确认你有权处理这段对话,先阅读负责任使用与数据隐私。选择与目标人物的一段会话,保留未经修改的本地备份、原始时间和账号标识,不要将导出文件或登录凭据发到 Issue。Afterglow 导入文件不需要平台登录 Cookie 或 token。

来源应选择的输出导入哪个文件
QQChatExporterJSON 或 chunked JSONL聊天 .json,或全部 chunks/*.jsonl
WeFlow / 微信原始 arkme-json 或 ChatLab JSONL导出的 .json / .jsonl
Douyin Chat ExportChatLab JSON / JSONL导出的 .json / .jsonl
WhatsApp Web(桌面浏览器)兼容的 TXT 或 Markdown导出的 chat.txt 或 chat.md
Telegram Desktop人类可读 HTMLmessages.html 及所有编号续页
DiscordChatExporterJSON频道导出的 .json
其他来源转换为 Afterglow Chat v1.json / .jsonl

其他工具导出的 HTML、Excel 或 CSV 不能因为后缀相同就当作 Telegram HTML 导入。插件要求对应的数据结构。

QQ:QQChatExporter ​

上游:项目与安装说明 · 下载版本 · 使用文档。

  1. 安装适合系统的发布版本,启动工具并按其说明登录。当前桌面版文档使用本地地址 http://localhost:40653/qce;如果版本不同,以启动控制台打印的地址与 token 为准。
  2. 选择好友会话和日期范围。单文件选择 JSON;大型记录在工具支持时选择 chunked JSONL,保留身份和消息元数据。
  3. 只导入文本时,媒体只导出元信息即可;需要历史图片检索时,另外保留本地媒体与资源目录。
  4. 在 Afterglow 上传聊天 JSON,或 chunks/ 下的全部 JSONL。不要选只有索引的 manifest.json。分块导出可能缺少当前账号身份,需在向导中核对双方 UID。

不要为此插件选择 QQChatExporter 的 HTML、TXT 或 Excel 输出。

微信:WeFlow ​

上游:WeFlow · 下载版本。

  1. 按对应版本说明打开本地微信数据,先完成工具自身的数据访问配置。
  2. 选择目标私聊和日期范围,导出为原始 JSON / arkme-json 或 ChatLab JSONL;菜单名称可能因版本不同而变化。
  3. 保留完整文件,不要删除成员与元数据。arkme-json 应含 session、senders、messages;ChatLab 导出应标明生成器 weflow、平台 wechat。
  4. 将 JSON/JSONL 上传到 Afterglow,核对“自己”和“朋友”。后续需要 import-images 时,保留与导出配套的本地图片。

WeFlow 还支持 HTML、表格、纯文本和数据库导出,这些不是此插件支持的输入。上游目前推荐继任产品 Alpha;未核对数据结构前,不应假定 Alpha 导出与现有插件兼容。

抖音:Douyin Chat Export ​

上游:Douyin Chat Export · 下载版本。

  1. 按上游 Docker 或源码说明启动工具。默认端口 8000 与 Afterglow 相同,可停止其中一个服务,或将导出器映射到其他本地端口,例如 Docker Compose 使用 127.0.0.1:8001:8000。
  2. 打开其 /panel 控制面板,按上游支持的方法登录并采集目标网页版私信会话。
  3. 选择该私聊,导出 ChatLab JSON 或 JSONL,保留元数据与成员信息。Afterglow 当前仅支持抖音私聊。
  4. 将文件上传到 Afterglow。插件根据 meta.ownerId 建议自己的账号,并建议最活跃的其他成员为朋友;请核对两者。

文本、链接和引用会保留,媒体变成占位符。import-images 不会下载抖音导出中的临时 CDN 地址或 data URL。

WhatsApp:桌面浏览器 ​

在电脑上使用 WhatsApp Web。本教程只介绍桌面浏览器流程;原生桌面客户端没有手机端同样的“导出聊天记录”菜单。

  1. 登录 WhatsApp Web,打开目标私聊,等待历史同步,并加载需要的时间范围。浏览器中可能只有部分记录,导出后检查第一条和最后一条消息。
  2. 使用能够生成兼容 TXT 或 Markdown 的桌面浏览器导出工具,按该工具的说明安装和导出。WhatsApp Web 本身没有通用导出按钮,不同扩展的输出格式也不相同。
  3. 保留姓名、日期和消息边界。TXT 可使用 [10/13/26, 16:25:24] Friend: hello 这样的时间消息行。兼容 Markdown 需要 # WhatsApp 标题、## 2026年10月13日 这样的日期标题,以及 [16:25] **Friend:** hello 这样的消息行。任意 Markdown 或 JSON 导出需要先转换格式。
  4. 上传 chat.txt 或兼容的 chat.md。同一段聊天同时有两种文件时只导入一份;发送者 UID 从显示名派生,请在向导核对双方身份。

Markdown 时间只有分钟精度。日期顺序与 APP_TIMEZONE 见导入说明。WhatsApp 附件不会自动作为历史图片导入。不要把压缩包、HTML 页面或扩展专用 JSON 当作 TXT/Markdown 聊天文件上传。

Telegram:Telegram Desktop ​

上游:官方导出介绍 · Telegram Desktop 下载。

  1. 在 Telegram Desktop 打开目标会话,使用会话菜单中的 Export chat history / 导出聊天记录。全账号导出入口为 Settings → Advanced → Export Telegram data。
  2. 选择 Human-readable HTML / 人类可读 HTML,设置需要的日期范围。如需历史图片检索,勾选照片导出。
  3. 完成导出并保留完整目录。较大的会话可能包含 messages.html、messages2.html、messages3.html 等分页。
  4. 在 Afterglow 的同一次任务中上传该会话的全部聊天页。照片及支持的静态贴纸保留原相对路径,供后续图片导入使用。

插件读取 HTML 结构和时间属性,不依赖显示语言。手机端和网页端不提供这一 Desktop 导出流程。全账号导出包含多个会话时,只选目标人物对应的文件;向导根据显示名生成身份标识,请核对双方身份。

Discord:DiscordChatExporter ​

上游:DiscordChatExporter · 下载版本 · 使用与凭据说明。

  1. 下载对应系统的 GUI 或 CLI 版本,按其文档配置凭据和访问权限。在频道权限允许时优先使用经授权的 bot,并阅读上游关于 Discord 账号自动化规则的说明。
  2. 选择私信或你有权导出的频道,输出格式选 JSON。只构建某个人的 persona 时,双人私聊比多人频道更容易核对身份。
  3. 导出需要的日期范围。如需历史图片,启用工具的媒体下载选项,将资源与 JSON 按引用路径一起保存。
  4. 上传 .json 到 Afterglow,指定自己和朋友的账号 ID。远程 CDN 图片只保留占位符;import-images 只读取导出目录内部的相对路径图片。

Discord 官方个人数据包与本插件格式不同,而且不包含对方回复。DiscordChatExporter 的 HTML、TXT 和 CSV 输出也不适用于本插件。不要把导出器登录 token 放进上传给 Afterglow 的文件。

其他来源:Afterglow Chat v1 ​

Afterglow Chat v1 是中间数据格式,不是平台登录或导出工具。

  1. 用适合原平台的工具导出消息,保留原始备份。
  2. 按格式规范转换:保留稳定消息 ID、发送者 ID、毫秒时间戳与引用关系,按所选 JSON/JSONL 形式填写格式元数据。
  3. 让双方账号可以明确分配为自己和朋友;需要历史图片时,保留安全相对路径下的本地媒体。
  4. 先用少量脱敏样例确认,再导入完整会话。要长期公开支持某个平台,建议编写专门的导入插件。

核对后导入 ​

检查双方消息、日期范围和原始 ID 是否齐全。使用后端配置 UI 与初始化向导填写模型服务与身份信息,再按导入聊天记录操作。

bash
cd backend
uv run xuwen import /path/to/chat.json --language zh-CN
uv run xuwen import /path/to/chunks/*.jsonl --language zh-CN
uv run xuwen import /path/to/TelegramExport/messages*.html --language zh-CN
# 可选:需要本地图片及已配置的视觉模型
uv run xuwen import-images /path/to/export-directory --language zh-CN

一个导入任务必须对应同一个目标人物,不要把账号级导出中的全部会话混成同一个 persona。需要图片检索时,保留原媒体目录;向导上传文本文件不等于上传完整媒体文件夹。

AGPL-3.0-or-later