使用技巧
WeLink 除了核心分析能力,还内置了一批提升日常使用效率的特性。下面按常用程度从高到低列出。
命令面板(Cmd+K)
任意页面按 ⌘K(Windows 为 Ctrl+K)打开命令面板,输入即可搜索:
- 联系人 / 群聊:原名 / 全拼 / 首字母三路匹配 — 输入
zw能搜到「张伟」,输入zhangw也行 - AI 对话历史:跨所有联系人 / 时光机 / AI 首页的对话全局子串搜索,命中会显示前后 ~40 字的上下文片段
- Tab 跳转:输入"统计"、"时光机"等关键词即可跳转
- 常用动作:运行诊断、备份 AI 数据、刷新索引、切换深色模式、反馈问题等
空查询下展示最近打开的 6 个联系人 / 群聊(localStorage 记忆)。
| 快捷键 | 动作 |
|---|---|
⌘K / Ctrl+K | 打开 / 关闭面板 |
↑ ↓ | 移动选择 |
Enter | 打开选中项 |
Esc | 关闭面板 |
Tab 数字键快捷切换
⌘1 到 ⌘9(Windows Ctrl+1..9)对应前 9 个 Tab:
| 键位 | 页面 |
|---|---|
⌘1 | AI 首页 |
⌘2 | 统计 |
⌘3 | 联系人 |
⌘4 | 群聊 |
⌘5 | 全局搜索 |
⌘6 | 时间线 |
⌘7 | 聊天日历 |
⌘8 | Skills |
⌘9 | 设置 |
在输入框里按下不会拦截,专心打字时不用担心误触。
🔒 锁屏保护
离开电脑不想让路过的人直接看见聊天记录?设置一个 PIN 就够。
启用方式
设置 → 锁屏 PIN:
- 首次点「启用」会让你设 PIN(4-32 位,字母 / 数字 / 符号都行),后端 bcrypt 哈希存到
preferences.json,不落明文 - 自动锁屏闲置时间:从不 / 30 分钟 / 1 小时 / 2 小时
- 「App 重开时默认锁定」勾上 → 每次启动都要 PIN
触发方式
| 方式 | 说明 |
|---|---|
⌘L / Ctrl+L | 快捷键立刻锁屏(任意页面都行) |
⌘K 搜「锁」 | 命令面板里触发 |
| 闲置超时 | 鼠标 / 键盘 / 触屏 / 滚轮都没动作满 N 分钟自动锁 |
| 启动即锁 | 开关开启时每次进入 App 先锁 |
解锁方式
- 输入 PIN 按 Enter
- 连错会提示「PIN 错误」
- 忘记 PIN:不知道就重装,PIN 本地后端验证不走任何远端
UI 行为
- 全屏
z-index: 9999毛玻璃遮罩,底下内容看不见 - 绿色圆形 🔒 图标 + 「WeLink 已锁定」+ PIN 输入框 + 解锁按钮
- 锁屏状态只存
sessionStorage,浏览器关了再开默认不锁(除非勾了「启动即锁」)
锁屏 ≠ 数据加密
锁屏是「视觉屏蔽」,相当于微信电脑版的锁定功能。别人物理拿到你电脑 / 直接访问 preferences.json + decrypted/ 还是能读数据。真要防物理入侵请用全盘加密(FileVault / BitLocker)。
诊断面板
设置页 → 诊断 → 「运行诊断」,一键检查:
- 数据目录:结构完整性(
contact/contact.db+message/*.db)、写权限(只读盘会显著拖慢索引) - 索引:是否就绪 / 正在索引 / 上次失败原因
- LLM profiles:对每个 OpenAI 兼容 provider 发一次
GET /models探活,返回延迟 - 磁盘:AI 分析库大小、头像缓存大小
诊断结果右上角有「复制为 Markdown」按钮,一键生成可直接粘贴到 GitHub issue / Slack 的结构化报告,排查问题省去一项项抄数据。
AI 数据备份与恢复
聊天历史、AI 对话、Skills、记忆都存在 ~/.welink/ai_analysis.db 里。建议定期备份。
- App 模式:设置 → AI 数据备份 → 「导出备份到下载目录」。生成的快照用 SQLite
VACUUM INTO写入,自洽无损。完成后点「在 Finder 中显示」。 - Docker / 浏览器模式:点「下载备份」触发浏览器文件下载。
- 恢复:点「从备份恢复」选择
.db文件。后端会做文件类型校验,覆盖前会把当前文件 rename 为<name>.<时间戳>.bak,失败也能回滚。
多账号 / 数据目录切换
有多个微信账号或多份备份时,可以在设置页添加多个数据目录:
- 设置 → 数据目录 · 多账号切换 → 「+ 添加目录」
- 输入名字(如「主号」、「老婆账号」)和 decrypted/ 绝对路径
- 点「切换到」即可热替换,不重启进程
Docker 用户
Docker 模式下需要在 docker-compose.yml 里同时挂载多个数据目录(例如 /data/decrypted-a + /data/decrypted-b),然后在设置里把两个路径都添加为 profile。只挂一个再切到另一个会被预检拦下来。
索引进度 + 取消
首次索引或切换时间范围时,初始化屏幕会显示真实进度:
正在建立索引(全部数据)... 73%
287 / 392 个联系人 已用 1 分 24 秒
当前:wxid_xxx 预计剩余 31 秒如果卡住或反悔,底部有「取消索引」按钮,点了会打断后端 performAnalysis goroutine 并回到 WelcomePage。
导出图片 / 文件目录可配置
所有保存为图片的操作(AI 分享卡、年度回顾、Skill 导出)默认写到 ~/Downloads,可以在设置 → 应用配置 → 「导出图片保存位置」改成任意 Home 下的目录。
保存成功后的 toast / 提示里会带「在 Finder 中显示」(Windows 是资源管理器),点一下直接跳到文件。
AI 对话全局搜索
所有 AI 对话(联系人分析、跨联系人问答、时光机分析)的历史都存在本地。想回忆「之前和 AI 聊过哪个话题」:
- 方法一:命令面板
⌘K输入关键词,AI 对话段会直接出现在结果里 - 方法二(调试用):
GET /api/ai/conversations/search?q=关键词
搜索命中会显示前后 ~40 字的上下文,点击直接打开对应联系人弹窗。
启动时自动探测与引导
WeLink 启动会自动探测几个候选数据目录(当前配置、WELINK_DATA_DIR 环境变量、/data/decrypted、工作目录 ./decrypted、.app/.exe 同级)。都找不到时:
- 桌面 App:弹 Setup 页让你选目录或用 Demo 数据
- Docker / 本地开发:前端展示一个持续轮询的引导页,附带可复制的
docker-compose.yml挂载片段
配置时会做一次预检查:目录结构不对立刻报错;文件可读但不可写会给出黄色警告(只读盘会让索引慢 10 倍以上)。
一键反馈问题
设置 → 诊断 → 右上角「反馈问题 →」,或 ⌘K 输入「反馈」。
打开后的 Modal 会让你填问题标题和描述,并可选携带:
- 环境信息:版本、运行模式、平台、时区(不含任何聊天内容)
- 诊断报告:数据目录 / 索引 / LLM 配置 / 磁盘占用的结构化摘要
三条出口,按用户拥有的账号 / 场景选:
| 按钮 | 适用场景 |
|---|---|
| 在 GitHub 创建 issue | 有 GitHub 账号,推荐;走专用 diagnostic_report.md 模板,title + body 会自动填入,带 from-app label 便于维护者筛选;URL 超长时自动把 body 复制到剪贴板让你粘贴 |
| 复制为 Markdown | 没 GitHub 账号,想贴到邮件、微信、钉钉、任何 IM |
| 下载 .md 文件 | 当前设备不方便直接打开浏览器 / 需要作为附件发送 |
无论走哪条路,环境信息都不包含聊天正文、API Key、头像 URL 等敏感数据,可以放心分享。
有趣发现
统计页底部的趣味卡片合集(合并自早期独立「有趣」Tab)。数据来自已有统计,绝大多数不调 LLM:
轻量派生(纯前端)
- 字数换算 — 累计发送字数 + 换算成"≈ 几本书"
- 最话痨的一天 — 单日消息数 Top 10(来自日历热力图)
- 互动档位 — 按日均消息数分"秒回 / 高频 / 日常 / 佛系 / 随缘"五档
- 微信 MBTI — 主动率 / 深夜比 / 消息长度 / 表情密度四轴拼 4 字标签
- 首次相遇时间胶囊 — 按最早消息时间排序的前 10 位联系人 + 第一句话
- 沉默最久 Top 10 — 曾有 20+ 条聊天但现在最久没联系的人
- 表情包浓度 — 图片 + 表情占比 Top 5 / Bottom 3
- 独白指数 — 我发 / 对方发 ≥70% 的两个方向各 Top 3
- 我的人设 — 规则派生 3 个标签(专情 / 社交达人 / 字多党 / 深夜战士 / 倾听者 / 表情派)
重统计(后端 /api/fun/* 端点)
- 陪伴时长(
/api/fun/companion-time) — 按 session 切片累加的总小时数 + 联系人排行,缓存 10 分钟 - Ghost 月(
/api/fun/ghost-months) — 单月消息骤降 ≥80% 的"失联月" - 最像我的朋友(
/api/fun/like-me) — 18 维特征向量距我加权基线最近 Top 5 - 词语年鉴(
/api/fun/word-almanac) — Top 30 活跃联系人里我发的文本按年分桶分词,每年取 #1 代表词 + 亚军 3 个,缓存 2h - 失眠陪聊榜(
/api/fun/insomnia-top) — 凌晨 2-4 点我发消息后,对方 30 分钟内回应率 + 中位响应时延 Top 5,缓存 30min
重洞察(挂在联系人详情 / 统计页不同位置)
- 关系温度计 — 每个联系人 5 档热度标签(热络/温和/平稳/渐淡/冷却)+ 升降箭头
- 秘语雷达(
/api/contacts/secret-words) — TF-IDF 专属词云 - 关系剧本(洞察页 story tab) — AI 把一段关系提炼成 3-5 个章节式剧情节点
LLM 用量统计
设置 → LLM 用量。累计所有 AI 对话的 assistant 消息字符数和估算 token,按 provider/model 分组。Token 估算 = 吐字速率 × 生成耗时,仅作近似值参考。
自动检查新版本
启动 5 秒后后台访问 GitHub Releases API,发现新版本会弹一个 Release Notes Modal 展示 changelog。点「我先用着」会记住当前版本,下次启动不再提示同一个版本,直到又有更新。
设置页内搜索
设置页顶部的搜索框支持按关键词过滤 section — 输入"下载"只显示下载目录相关的几块,输入"LLM"只显示 LLM 配置。支持中英文关键词。
界面崩溃的自救
如果某个页面因为 bug 白屏,ErrorBoundary 会接住并显示一个简短的错误摘要 + 堆栈,提供两个按钮:
- 反馈此问题:直接打开反馈 Modal,标题和堆栈已经预填好
- 刷新页面:丢失的只是当前这一次渲染,数据都在本地
日志打包(App 模式)
设置 → 应用日志 → 「一键打包日志」会把 welink.log + frontend.log 打成 ZIP,API Key 等敏感字段自动替换为 [REDACTED],可以放心发给开发者排查问题。
群聊四件套 · 这个群的指纹
群聊详情页「群聊画像」tab 顶部新加一张「这个群的指纹」卡片,一次呈现四种维度:
群号称(群的 MBTI) —— 基于 hourly_dist / weekly_dist / type_dist / member_rank 规则派生 2-4 条标签,零 LLM。命中条件举例:
- 凌晨 0-3 点消息占比 >15% →
🌙 深夜话唠 - 工作日白天 ≥55% →
🏢 工作日正午群 - 表情包占比 >12% →
😂 表情包战场 - 红包+转账占比 >3% →
🧧 红包雨 - 链接分享占比 >8% →
🔗 链接集散地 - 日均消息 ≥200 →
🌊 消息洪流 - 60% 以上成员从未发言 →
🤿 潜水员联盟
时钟指纹 —— 7 行(星期日→星期六)× 24 列(0h→23h)的热图徽章。log 压缩着色(绿色阶),一眼分辨"工作群"vs"深夜酒局群"vs"周末亲友群"。
我的影响力指数 —— 我发言后 30 分钟内有异发言者回应的比例(myRate)除以群整体基线(baseRate),映射到 0-100 分(1× = 50 分,2× = 100 分)。样本要求我发言 ≥5 条,群整体 ≥20 条。
AI 群年报 —— 右上角橙红渐变按钮。选一个年份(默认当前年),后端扫该年所有消息,分页展示:
- 年度概览:总消息 / 活跃人数 / 最忙一天 / 年度热词 Top 3
- 年度话痨榜:Top 3 成员 + 占比条
- AI 精选金句:LLM 从 80 条均匀采样里挑 3 条最能体现群氛围的原话
- 月度消息趋势:12 根柱子 + 峰值标注
- AI 年度叙事:60-100 字 Wrapped 风格总结
首次生成含 LLM 调用,大群需要 10-30 秒。
关系动态预测
AI 首页「建议主动联系」 卡片每次开首页自动刷新。点卡片直接打开联系人详情,点「🪄 写开场白」弹 modal 让 LLM 起草 4 条不同调性破冰开场白(关心 / 回忆 / 调侃 / 约见),每条一键复制。
卡片右侧的 👁 按钮是「不再推荐此人」—— 保存后该联系人不再出现在这个卡片里。要撤销去设置 → 关系预测 · 忽略名单。
统计页底部「关系动态预测」 section 4 tab(濒危 / 降温 / 稳定 / 升温)完整列表。点每条右侧的小折线弹大图 modal:12 月柱状图 + 峰值标注 + 主动占比双进度条 + TA/我 的响应时延对比(变慢 >1.5× 红 / 变快 >1.5× 绿)。
连续冷却徽章 🕐 — 客户端滚动 6 周快照,连续 ≥2 周处于 cooling/endangered 的联系人会显示「连续 N 周」红色徽章,比单周更硬。
导出中心
侧边栏「导出」页勾选内容 + 目标,共 8 种目标 可选,复用同一份 Markdown 产出,区别在"去哪里落地"。
笔记 / 文档平台
- Markdown:单文件直下 / 多文件自动打 .zip
- Notion:填 Integration Token + Parent Page ID,走
POST /v1/pages+ 自实现 Markdown→Blocks - 飞书文档:填 App ID / App Secret + folder_token,走
upload_all→import_tasks异步轮询
云盘 / 对象存储
- WebDAV:填服务器 URL + 用户名 + 应用密码(坚果云 / Nextcloud 建议生成专用应用密码)+ 上传前缀。首次会递归 MKCOL 创建前缀目录。兼容坚果云 / Nextcloud / ownCloud / 群晖等
- S3 兼容:填 Endpoint(留空=AWS 官方)/ Region / Bucket / AccessKey / SecretKey / 路径前缀。MinIO / R2 / 七牛建议勾「Path-style URL」。覆盖 AWS S3 / Cloudflare R2 / 阿里云 OSS / 腾讯云 COS / 七牛 / Backblaze B2
- Dropbox:App Console → Create app → 生成 "Generated access token"(长期)直接粘进来。无需 OAuth 回调流程
- Google Drive:在 Google Cloud Console 创建 OAuth 2.0 Client,Authorized redirect URI 填
http://127.0.0.1:<PORT>/api/export/oauth/gdrive/callback(本地运行)或https://<你的域名>/api/export/oauth/gdrive/callback(反代)。Client ID / Secret 粘进配置卡 → 保存 → 点「授权」→ 浏览器完成授权即可。refresh token 自动刷新,过期不用管 - OneDrive:Azure Portal → App registrations → 新建应用,Redirect URI 同上规则填
/api/export/oauth/onedrive/callback,API 权限勾Microsoft Graph → Files.ReadWrite(delegated)。Tenant 一般填common。个人 / 工作账号都支持
反代场景需要显式配环境变量
WeLink 不再读取 X-Forwarded-Host / X-Forwarded-Proto 请求头(防止 CSRF 劫持 OAuth 回调地址)。
- 本地直跑 → 默认
http://127.0.0.1:<PORT>自动工作 - 反代到公网 / 局域网域名 → 必须设环境变量
WELINK_PUBLIC_URL=https://your.domain,否则授权按钮打开的链接里redirect_uri会是 127.0.0.1,Google / Microsoft 会拒绝
Token / Secret 配置和 LLM 配置一样支持脱敏占位符 __HAS_KEY__,保存后不会泄露明文。
数据库 · 自然语言查询
侧边栏「数据库」页顶部的 NL 查询面板,用中文问问题:
- 「我和老婆的第一条消息是什么时候」
- 「今年跟我妈聊了多少条消息」
- 「哪些群聊半年没发言了」
LLM 读取 WCDB schema 摘要 → 输出 {db, sql, explain} JSON → 后端执行 SELECT/PRAGMA(严格限制,LIMIT 50)→ 返回结果表(≥2 列时可一键切图表)+ AI 解释。
跨库联系人消息:问「我和 XX 的」这种跨库问题,LLM 返回 mode=contact_messages,后端自动完成"contact.db 模糊查 username → md5 算 Chat_xxx 表名 → 遍历 message_N.db 找到对应 DB 执行"三步跳转。
下方的 SQL 编辑器收起在「高级」链接下,默认不打扰;展开后有 10 个预置模板 + 结果一键画图 + 磁盘占用环形饼图 + 执行历史 / 收藏。
当前已知的键盘导航
| 场景 | 快捷键 |
|---|---|
| 全局命令面板 | ⌘K / Ctrl+K |
| Tab 快速跳转 | ⌘1 .. ⌘9 / Ctrl+1..9 |
| 命令面板内导航 | ↑ ↓ Enter Esc |
| Modal 关闭 | 大多数 Modal 支持 Esc / 点外部关闭 |
有更多希望添加的快捷键或体验优化?欢迎到 GitHub Issues 提建议。