用途
Wetrace 是一款微信聊天记录分析助手,用于查询、分析和导出本地微信数据库中的聊天数据。它适用于以下场景:查看与特定联系人或群组的聊天消息;通过关键词搜索跨会话消息;分析聊天模式、活跃度趋势或关系动态;导出多种格式的聊天记录(HTML/PDF/DOCX/CSV/XLSX);以及生成 AI 驱动的智能洞察和可视化页面。
主要能力
- 查询:查看消息、会话、联系人、群聊。
- 搜索:通过关键词查找消息。
- 分析:分析聊天模式、生成统计数据(如按小时、按天、按类型)。
- 导出:导出多种格式的数据(HTML/PDF/DOCX/CSV/XLSX)。
- 洞察:综合分析并提供建议。
- 可视化:生成精美的 HTML 页面。
Wetrace 提供 8 个核心可视化功能,每个功能都会调用 API 获取数据、使用 AI 分析生成总结,并生成统一设计系统的 HTML 页面:
- 智能摘要生成(触发词:总结聊天记录、生成摘要、智能总结)
- 待办事项提取(触发词:提取待办、找出任务、待办事项)
- 聊天活跃度热力图(触发词:活跃度热力图、聊天时间分布)
- 互动趋势分析(触发词:趋势分析、互动趋势)
- 智能周报月报(触发词:生成周报、生成月报)
- 数据仪表板(触发词:生成仪表板、数据总览)
- 智能对话摘要(触发词:对话摘要、智能总结、分类摘要)
- 客户关系健康度(触发词:客户健康度、CRM 仪表板)
生成的 HTML 页面特点:独立运行(无需服务器,双击即可在浏览器打开)、响应式设计、使用 Tailwind CSS 现代化样式、使用 Chart.js 交互式图表、清晰层次、易于分享。
使用方式
前置条件
- 必须先安装并运行 Wetrace 服务。
- 服务地址:http://127.0.0.1:5200
- 微信数据库:已解密并加载。
- 操作系统:Windows 10/11。
如果服务未运行,需先启动 Wetrace 服务。
核心工作流程
- 理解用户意图:将请求分类为查询、搜索、分析、导出、洞察或可视化。
- 提取参数:识别联系人名称、时间范围、关键词、格式等。
- 调用 API:
- 方式一(推荐):使用 Python 脚本
scripts/wetrace_api.py。 - 方式二:直接调用 API,基础 URL 为 http://127.0.0.1:5200/api/v1。
- 方式一(推荐):使用 Python 脚本
- 处理和呈现数据:简单查询/搜索以结构化格式呈现;分析任务获取原始数据后使用模板生成 AI 总结;导出任务调用导出 API 并告知下载信息;洞察任务从多个 API 收集数据并综合生成建议。
- 错误处理:404 表示数据库可能未加载或联系人/会话不存在;500 表示服务器错误;无数据返回需验证时间范围和联系人名称;服务器无响应需提示启动 Wetrace 服务。
Python 脚本工具
脚本位置:scripts/wetrace_api.py
安装依赖:
cd scripts
pip install -r requirements.txt
常用命令:
# 查看帮助
python wetrace_api.py --help
# 查询会话
python wetrace_api.py sessions --keyword "张三" --limit 20
# 获取消息(需要会话ID)
python wetrace_api.py messages --talker wxid_abc123 --limit 50
# 按时间范围查询
python wetrace_api.py messages --talker wxid_abc123 --time-range "2024-01-01~2024-01-31"
# 全文搜索
python wetrace_api.py search --keyword "项目" --limit 30
# 数据分析
python wetrace_api.py analysis hourly wxid_abc123
python wetrace_api.py analysis daily wxid_abc123
python wetrace_api.py analysis type wxid_abc123
# 获取总览
python wetrace_api.py dashboard
# 导出聊天记录
python wetrace_api.py export chat --talker wxid_abc123 --format html
在代码中使用:
from scripts.wetrace_api import WetraceAPI
# 创建API客户端
api = WetraceAPI()
# 查询会话
sessions = api.get_sessions(keyword="张三", limit=10)
for session in sessions:
print(f"{session['NickName']}: {session['MessageCount']} 条消息")
# 获取消息
messages = api.get_messages(talker_id="wxid_abc123", limit=50)
for msg in messages:
print(f"[{msg['CreateTime']}] {msg['Content']}")
# 搜索
result = api.search(keyword="项目", limit=20)
print(f"找到 {result['Total']} 条相关消息")
常用 API 模式
GET /sessions?keyword={名称}&limit=50
GET /messages?talker_id={id}&time_range={范围}&limit=100
GET /search?keyword={关键词}&time_range={范围}&limit=50
GET /analysis/hourly/{session_id}
GET /analysis/daily/{session_id}
GET /export/chat?talker={id}&format={格式}&time_range={范围}
时间范围解析
支持多种格式:中文(最近一周、上个月、今年)、英文(last week、last month、this year)、绝对时间(2024-01-01~2024-01-31)、相对天数(last 7 days、last 30 days)。转换为 API 格式:YYYY-MM-DD~YYYY-MM-DD。
联系人名称匹配
首先在会话中尝试精确匹配;如未找到,在联系人中搜索;如有多个匹配,请用户明确。同时支持昵称(NickName)和备注(Remark)字段。
分页策略
对于大数据集:从 limit=50 开始;如用户需要更多,增加 limit 或使用 offset;告知用户总数;如数据集非常大,建议导出。
生成 HTML 页面的使用流程
- 识别功能:根据触发关键词匹配对应的功能。
- 读取详细文档:从 references 目录读取对应的 .md 文件。
- 收集参数:询问用户必要的参数(会话 ID、时间范围等)。
- 调用 API:获取所需数据。
- AI 分析:使用 analysis-prompts.md 中的模板生成总结。
- 生成 HTML:使用 design-system.md 风格生成精美页面。
- 保存文件:保存到 ~/wetrace-exports/ 目录。
- 提供链接:返回文件路径和访问链接(file:// 协议)。
适用场景
- 个人回顾与特定联系人或群组的聊天记录。
- 通过关键词跨会话检索历史消息。
- 分析聊天活跃度、互动趋势或关系动态。
- 导出聊天记录用于存档或分享。
- 生成智能摘要、待办事项、周报月报、数据仪表板等可视化页面。
- 客户关系健康度分析(CRM 仪表板)。
限制
- 依赖 Wetrace 服务,需先安装并运行。
- 仅支持 Windows 平台(微信数据库位于 Windows 系统)。
- 微信数据库需已解密并加载。
- 服务地址固定为 http://127.0.0.1:5200。
- 操作系统要求 Windows 10/11。
- 其他平台、收费、价格等信息暂未提供。