Skip to content

allen7u/wechat-history-dashboard

Repository files navigation

聊天记录分析工具

一个纯前端的聊天记录分析单页应用,用于导入微信聊天记录导出的 Excel 文件或单人 TXT 日志,并按时间尺度查看消息统计、关键词分布、正文内容和 AI 总结。

功能特性

  • 支持导入多个 .xlsx.xls.txt 文件。
  • 按年、月、周、日、时、分统计消息数量。
  • 以热力图形式查看不同时间段的消息活跃度。
  • 提取关键词并按出现频率展示。
  • 在正文内容中高亮关键词,支持调整高亮数量和颜色衰减。
  • 正文内容支持懒加载、复制、滚轮切换时间段和调整字号。
  • 支持 AI 总结全文或选中文本,接口兼容 OpenAI Chat Completions 格式。
  • 内置浅色、深色、Catppuccin、Rosé Pine、Nord、Gruvbox、Monokai、Dracula 等主题。

快速开始

本项目不需要打包构建,使用静态服务器打开即可。

python -m http.server 8000

然后在浏览器访问:

http://localhost:8000

也可以直接打开 index.html,但部分浏览器可能会限制本地文件下的 Web Worker,导致 Excel 解析回退或失败。推荐使用本地静态服务器。

使用方式

  1. 打开页面后,将聊天记录文件拖入左侧导入区,或点击“选择文件”。
  2. 在顶部选择时间尺度:年、月、周、日、时、分。
  3. 在“消息统计”页查看热力图,点击时间单元可跳转到对应关键词统计。
  4. 在“关键词统计”页点击某个时间段卡片,可进入对应正文内容。
  5. 在“正文内容”页查看消息列表、复制内容,或点击“总结全文”“总结选中”进入 AI 总结。
  6. 如需 AI 总结,先在“AI总结”页点击“设置”,填写 Base URL、API Key、模型、温度、提示词等配置。

支持的数据格式

Excel 聊天记录

Excel 文件默认读取第一个工作表。当前解析逻辑基于微信聊天记录导出格式:

  • 第 2 行:会话元信息。
    • 第 2 列:wxid
    • 第 4 列:昵称
    • 第 6 列:备注
  • 第 5 行起:聊天消息。
    • 第 1 列:序号
    • 第 2 列:时间
    • 第 3 列:发送者昵称
    • 第 4 列:发送者 wxid
    • 第 5 列:发送者备注
    • 第 6 列:发送者角色
    • 第 7 列:消息类型
    • 第 8 列:消息内容

时间列支持 Excel 日期、YYYY-MM-DD HH:mm:ssYYYY/MM/DD HH:mm:ss 等可被浏览器解析的格式。

TXT 单人聊天记录

TXT 文件适合导入单人日志。文件名去掉扩展名后会作为用户名。

每一行格式为:

消息内容<TAB 或两个以上空格>YYYY-MM-DD HH:MM:SS

示例:

今天整理了一下聊天记录    2026-04-24 10:15:30
这条消息会被识别为同一个人的发言    2026-04-24 10:16:02

AI 总结配置

AI 总结通过浏览器直接请求:

{Base URL}/v1/chat/completions

默认 Base URL 为:

https://api.openclawcn.net

你可以在设置中修改:

  • Base URL
  • API Key
  • 可用模型列表
  • 温度
  • 自定义提示词
  • 最大输出长度 max_tokens
  • 请求超时时间

自定义提示词支持 {{content}} 占位符,运行时会替换为当前需要总结的聊天内容。

隐私说明

  • 文件解析、消息统计、关键词提取、正文浏览都在浏览器本地完成。
  • 主题、AI 设置和 AI 总结缓存保存在浏览器 localStorage 中。
  • 只有在点击 AI 总结相关按钮时,所选聊天内容才会被发送到你配置的 AI API 服务。
  • 请不要在不可信的 API 服务中提交敏感聊天内容。

项目结构

.
├── index.html          # 页面结构和入口
├── app.js              # 主应用逻辑
├── excel-worker.js     # Excel 解析 Web Worker
├── xlsx.full.min.js    # SheetJS Excel 解析库
├── styles.css          # 基础样式
├── themes.css          # 多主题样式
├── CHANGELOG.md        # 变更记录
├── WHEEL_FONT_MEMO.md  # 滚轮和字号交互备忘
└── CLAUDE.md           # 项目开发说明

技术实现

  • 纯 HTML、CSS、JavaScript 实现,无前端构建链。
  • 使用 SheetJS 解析 Excel 文件。
  • Excel 解析优先放在 Web Worker 中执行,避免阻塞主线程。
  • 中文关键词提取优先使用 Intl.Segmenter,不支持时回退到 CJK bigram 提取。
  • 消息统计、关键词结果、字符数和排序结果使用会话级缓存。
  • 关键词卡片和正文消息采用分批渲染,提升大文件浏览性能。

浏览器兼容性

推荐使用最新版 Chrome、Edge、Firefox 或 Safari。

如果浏览器不支持 Intl.Segmenter,关键词提取仍可运行,但中文分词质量会有所下降。

开发说明

由于项目是静态页面,常规开发只需修改对应文件并刷新浏览器。

启动本地服务:

python -m http.server 8000

查看 Git 状态:

git status --short

目前项目没有配置自动化测试或格式化脚本。

About

Analyze WeChat chat exports with timelines, keyword insights, content browsing, and AI summaries.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors