by runzhliu
🔍微信聊天数据分析的本地化AI-agent(Docker/Windows/MacOS) · AI分身 / 大模型分析 / 好友排行 / 词云 / 情感趋势 / 群聊画像
# Add to your Claude Code skills
git clone https://github.com/runzhliu/welink你的微信聊天记录里,藏着你和每个人关系最真实的样子。WeLink 把这些数据交给 AI 来读——不只是统计图表,而是能让你直接提问、得到洞察:
「我和 XXX 的关系在哪个阶段最好?后来发生了什么?」
「这个群里真正活跃的人是谁?他们通常聊什么?」
「我今年和哪些朋友聊得越来越少了?」
所有数据留在本地,不上传任何服务器。
点击可放大查看
| AI 分身 | AI 分析 |
|:---:|:---:|
|
|
|
| AI 群聊 | AI 首页 |
|
|
|
| 快速入门引导 | 好友总览 |
|
|
|
| 好友深度画像 | 群聊画像 |
|
|
|
| 全局搜索 | 时间线 |
|
|
|
| 时光机 | |
| | |
No comments yet. Be the first to share your thoughts!
让 AI 学习任何联系人的聊天风格,模拟和 TA 对话——像真的在和 TA 聊天一样。
聊天记录是一个人最真实的语言印记。AI 分身从中学习 TA 的用词习惯、语气特征和表达方式,让你可以:
和已经失去联系的老友再聊一次——哪怕只是 AI 模拟的,也能找回当年的感觉
让远在天堂的亲人以 TA 熟悉的方式"回复"你——不是冰冷的机器,而是带着 TA 说话习惯的温暖文字
在做重要决定前,和最信任的人的 AI 分身聊聊——TA 会用 TA 的方式给你回应
或者纯粹好奇——你最好的朋友如果看到你发的这句话,会怎么回?
[!NOTE] AI 分身旨在帮助用户回忆珍贵的人际关系。模拟结果由 AI 生成,不代表真人的真实想法。请善意使用,不要用于冒充他人身份或误导第三方。使用本功能即表示用户同意自行承担使用后果,项目作者不对因使用 AI 分身产生的任何直接或间接影响负责。
详细实现见 ai-clone.md。
让 AI 模拟群友继续聊天——按每个成员的发言比例和说话风格生成对话,你也可以随时加入。
详细说明见 ai-group-sim.md。
不再局限于单个联系人——直接问关于所有聊天记录的问题,AI 自动搜索并汇总回答。
「谁跟我聊过旅行?」→ AI 搜索全部联系人,找到 3 人提到过旅行,汇总每人聊了什么
「去年国庆我都跟谁聊天了?」→ AI 查询 10/1-10/7 的日历数据,列出每天的聊天对象
「哪些朋友经常提到加班?」→ AI 搜索关键词,按匹配频次排列
技术原理:LLM Agent 模式——第一步 LLM 解析问题意图(提取关键词/时间范围),第二步自动调用搜索/日历 API 收集数据,第三步 LLM 基于真实数据生成回答。每次提问仅消耗 ~4000 token。
AI 首页的联系人分析和跨联系人问答的对话自动保存到本地数据库,支持:
对任意联系人生成三种深度分析(基于统计摘要 + 采样消息,低 token 消耗):
所有 AI 功能的系统提示词(System Prompt)完全透明、可自定义:
{{name}}(联系人名)、{{today}}(日期)、{{rounds}}(轮数)等WeLink 内置完整的 AI 分析引擎,可对任意联系人、群聊或某一天的聊天记录发起对话式分析。
| 模式 | 工作方式 | 适合场景 | |------|---------|---------| | 全量分析 | 将选定时间范围内的全部消息送入 LLM 上下文 | 深度关系分析、长期趋势总结 | | 混合检索(RAG) | FTS5 全文检索 + 语义向量检索,精准召回相关片段 | 查找特定事件、关键词检索 | | 时光机 AI | 跨所有对话的单日聚合分析 | 「某天发生了什么」式的日记回顾 |
LLM 批量阅读聊天记录,自动提炼关键事实(人名、事件、情感节点)并持久化存储。后续对话中,AI 可以调用这些「长期记忆」,而不依赖每次重新加载全量消息。
| 提供商 | 说明 | |--------|------| | DeepSeek | DeepSeek-Chat,国产高性价比 | | Kimi | Moonshot(月之暗面),支持超长上下文 | | OpenAI | GPT-4o 等,标准 API | | Claude | Anthropic Claude,通过原生 API 接入 | | Gemini | Google Gemini,支持 OAuth 2.0 认证 | | Vertex AI | Google Cloud Vertex AI,原生支持。认证方式:Service Account JSON → JWT → OAuth2 token(自动缓存刷新)。走 Vertex AI 的 OpenAI 兼容端点,支持所有 Gemini 模型 | | AWS Bedrock | 原生支持。认证方式:AWS SigV4 签名(手写实现,无 AWS SDK 依赖)。使用 Converse API(跨模型家族统一 API),支持 Claude / Llama / Mistral / Titan / Cohere 等所有 Bedrock 模型 | | MiniMax | 国内版 + 国际版,支持 MiniMax-Text-01 等 | | GLM | 智谱 AI,GLM-4 系列 | | Grok | xAI Grok | | Ollama | 本地部署,完全离线,数据不出本机 | | 自定义 | 任意兼容 OpenAI 接口的模型服务 |
在设置页面填写提供商、Base URL、API Key 和模型名称即可。支持为 AI 对话和记忆提炼分别指定不同的模型。
Vertex AI 配置:选择
Google Vertex AIprovider → 粘贴完整的 Service Account JSON → 填写 GCP Project ID 和 Region → 选择模型(默认google/gemini-2.0-flash-001)Bedrock 配置:选择
AWS Bedrockprovider → 填写 AWS Access Key ID 和 Secret Access Key → 填写 Region → 填写 Model ID(如anthropic.claude-3-5-sonnet-20241022-v2:0)
本地 Ollama 配置参考 ollama-setup.md,完整 AI 功能说明见 ai-analysis.md。
WeLink 内置 MCP(Model Context Protocol) 服务器,让你在 Claude Code(CLI) 里用自然语言查询微信数据,无需打开浏览器。
完整配置见 mcp-server/README.md。
把聊天记录里的人际关系,直接炼化成 Claude Code / Codex / Cursor 等 AI 编程工具的 Skill 文件包。 一次炼化,多处使用。
| 类型 | 输入 | 用途 | |------|------|------| | contact 联系人分身 | 和某联系人的全部聊天 | 让 AI 用 TA 的语气帮你写邮件、起草回复、预演对话 | | self 我的写作风格 | 我发出去的所有消息 | 让 AI 用你自己的口吻写公众号、朋友圈、邮件,避免 AI 腔 | | group 群聊智囊 | 某个群的集体聊天 | 回答「这个群会怎么说」,把群的集体知识/术语/氛围封装起来 |
| 格式 | 目标工具 | 产物路径 |
|------|---------|---------|
| claude-skill | Claude Code Skills(目录式) | ~/.claude/skills/<name>/SKILL.md + 附件 |
| claude-agent | Claude Code Subagent(单文件) | ~/.claude/agents/<name>.md(带 frontmatter) |
| codex | OpenAI Codex CLI | 项目根 AGENTS.md |
| opencode | OpenCode Agent | .opencode/agent/<name>.md |
| cursor | Cursor Rules | .cursor/rules/<name>.mdc(支持 glob) |
| generic | 通用 Markdown | 工具无关,可粘贴到任何 AI 对话 |
侧边栏新增「Skills」页面,集中管理所有已炼化的 Skill 包:
ai_analysis.db 的 skills 表),文件保存到 ~/.welink/skills/<id>/<filename>.zip~/Downloads/ 的完整路径,可一键复制WeLink 不止告诉你"现在关系多热",而是前瞻性地判断每段关系的走向,并给出具体行动建议。
扫描每个联系人最近 6 个月的消息节奏,对比最近 3 月 vs 前 3 月自动打档:
| 状态 | 判定条件 | 典型场景 | |---|---|---| | 🔥 升温 | 最近 3 月消息增加 ≥50% | 新认识的人 / 深化中的关系 | | ✅ 稳定 | 波动 ±30% 内 | 日常长期好友 | | ❄️ 降温 | 最近 3 月消息量不到前期一半 | 开始疏远的信号 | | 🚨 濒危 | 前期 ≥10 条但 60 天没说过话 | 长期联系人快失联 |
简单的「消息减少了」可能是双方都忙,结合多维信号才能识别到底是谁在疏远谁:
reason 文案示例:
最近 3 个月消息减少 65%(120 → 42);原本你更主动(72%),现在对方说得更多(58%);TA 回复从 12 分钟变成 8 小时
对 cooling / endangered 联系人,点「写开场白」→ 取最近 40 条消息 + 相识年数 + 沉默天数 → LLM 写 4 条不同调性(关心 / 回忆 / 调侃 / 约见)的破冰草稿,一键复制粘到微信。
AI 首页顶部的小 banner,对比上次快照(≥5 天前):「近 7 天变化:3 位关系降温 · 1 位回暖」。按 ISO 周关闭。
设置页加「关系预测 · 忽略名单」,首页点「不再推荐此人」后可在这里撤销。
把年度回顾、对话归档、AI 对话历史、记忆图谱四类内容,统一打包导出到 8 种目标:
笔记 / 文档平台
| 目标 | 实现方式 | 输出 |
|---|---|---|
| Markdown | 本地打包 | 单文件直下 / 多文件自动 .zip |
| Notion | POST /v1/pages + 自实现 Markdown→Blocks(标题/列表/引用/代码/表格) | 指定 Parent Page 下建新页 |
| 飞书文档 | upload_all → import_tasks 异步轮询 | 获得 docx URL |
云盘 / 对象存储
| 目标 | 协议 / 认证 | 覆盖服务 |
|---|---|---|
| WebDAV | HTTP PUT + Basic Auth + 递归 MKCOL | 坚果云 / Nextcloud / ownCloud / 群晖等 |
| S3 兼容 | minio-go v7,支持 path-style / virtual-host 切换 | AWS S3 / Cloudflare R2 / 阿里云 OSS / 腾讯 COS / 七牛 / MinIO / Backblaze B2 |
| Dropbox | files/upload API + App Console 长期 Access Token(PAT 模式免 OAuth 回调) | Dropbox |
| Google Drive | 完整 OAuth 2.0 + multipart upload,refresh token 自动刷新 | Google Drive |
| OneDrive | Microsoft Identity Platform v2 OAuth + Graph API PUT | OneDrive(个人 / 工作账号) |
Token 配置与既有 LLM 配置一样支持