跨平台运行策略、Mac 实机结果及未覆盖项目见 macOS AI 兼容性与验收。
- 打开「设置 → AI 服务」,选择服务商并填写地址和密钥,离开输入框后自动从上游获取模型,也可点击「从上游获取」刷新。通过搜索和下拉框选择模型后保存,无需先填写模型名称。服务商仅预填地址和协议,不内置模型名单。
- 打开已有配置会自动刷新模型列表并保留已选模型;模型不在列表中会提示重新选择。新配置优先选择上游明确声明图片能力的模型,否则选择上游返回的第一个模型。上游未提供能力信息时,需要手动确认图片能力并测试连接。指定默认文本模型及默认视觉模型。连接测试会产生推理调用,获取列表不会。
- 进入群聊或好友会话,点击右上角 AI。选择一个或多个会话,以及最近条数、过去小时数或起止时间,开始总结。
- 在「自动任务」中建立间隔、每日定时或新增消息条数规则;在「关注提醒」中填写自然语言关注条件并选择检测频率。勾选启用后才开始后台执行。
- 在「历史记录」中查看结果和命中理由,点击来源可定位原消息。规则和任务均保存在本机,切换页面及最小化到托盘不影响执行。
云端服务会收到选定的消息和参与分析的媒体内容。也可以使用本机兼容服务。密钥仅由后端管理,不回传浏览器,不进入模型工作流检查点;默认不启用外部 LangSmith 追踪。
上游不支持模型列表或暂时连接失败时,提供重试和「手动输入(备用)」。修改服务地址或协议后,需要重新输入密钥才能获取模型,已保存密钥不会自动发送到新地址。
「新增服务」提供 14 项预设:DeepSeek、Claude、Kimi、OpenAI、Google Gemini、通义千问(阿里云百炼)、智谱 GLM、豆包(火山方舟)、硅基流动、OpenRouter、Groq、Ollama、LM Studio 和自定义。可以按名称或别名搜索,例如「谷歌」「千问」「GLM」「火山」;自定义入口排在列表末尾。
预设会填写配置名称、API 地址和协议,地址仍可修改。国内平台默认使用国内通用 API 地址,不是 Coding Plan 专用入口。Gemini 使用 /v1beta/openai 兼容接口。切换预设会清空密钥、模型选择和图片能力,需要重新确认;不会复用原服务的密钥。
选择 Ollama 或 LM Studio 前,请先启动其本地服务并准备好模型。默认地址分别为 http://127.0.0.1:11434/v1 和 http://127.0.0.1:1234/v1,未启用鉴权时密钥可留空;选择后会自动获取模型。启用鉴权时需填写密钥,端口不同则修改地址。连接失败时检查服务、地址、端口和鉴权设置,再点击「从上游获取」。也可勾选「手动输入(备用)」填写真实模型名称后保存;保存配置不代表连接已验证。
服务运行在局域网内的另一台机器上时,把地址改为 http://<局域网 IP>:端口/v1。明文 HTTP 仅支持本机(localhost、127.0.0.1、[::1])和局域网 IP(10.x、172.16-31.x、192.168.x、IPv6 fc/fd 开头),nas.local 这类主机名及其他地址必须使用 HTTPS。明文 HTTP 不加密也不校验对方身份,同一网络上的其他设备可能看到聊天内容和密钥,或冒充该服务返回内容;保存后自动任务和关注提醒也会持续向该地址发送内容,请仅在可信的局域网中使用。
- 支持文本、引用、卡片标题、已有语音转写、JPEG/PNG/WebP/GIF(首帧)、PDF(含扫描页)、DOCX、XLSX、PPTX、TXT、MD、CSV。
- 自动转写新语音、视频理解、旧版 Office 文件及压缩包不在本版范围。
- 附件须在本机可读取;缺失、损坏、加密及超限都会显示处理状态。单附件默认 20 MB,可调整至 200 MB;Office 解压总量限制为 512 MB。
- 长资料分段处理,不静默截断。图片缩放至最长边 1600 像素后送入视觉模型。
- 导入快照可以总结已有消息;实时关注需要可用的实时数据源。
- 检测默认每分钟一次,可选 10 秒、5 分钟和自定义间隔。无新增消息不调用模型;新增条数阈值按规则中所有会话合计计算。
- 新规则从启用时建立监控基线。完全退出应用后停止;重新启动恢复检查点,错过的定时执行合并为一次。
- 自动任务失败退避重试,连续失败 3 次暂停对应规则。鉴权错误直接暂停。失败会话不推进成功检查点。
- 手动重试保留原消息时间范围,重新解析当前模型配置并记录版本;配置变化时清除旧模型分段结果,附件补齐后也会重新分析发生变化的内容。
- 桌面通知默认展示会话名和提醒理由,可关闭或隐藏内容。操作系统禁用通知时,应用内仍保存结果。
后端公共能力位于 src/wechat_decrypt_tool/ai/,接口位于 routers/ai.py。LangChain 适配模型;LangGraph 编排任务,SQLite 保存业务记录与检查点。新功能应通过公共模型服务引用全局配置。
模型发现参考 Codex++ 的模型目录获取逻辑:统一接口地址,兼容数组和 data/models/items 包装、id/model/name 标识并去重。本项目另外处理 Claude 的分页及图片能力元数据,不根据模型名字猜测能力。切换凭据时清空旧列表,并忽略迟到响应。
运行依赖通过 uv sync --extra build --extra voice-transcription 安装。前端需使用符合当前 Nuxt/Vite 要求的 Node 版本;Node 18 无法构建当前依赖。
Windows 源码启动使用 desktop/resources/native-core-source-windows.json 固定的 2.4.0 官方安装包:首次下载并校验整个安装包,只提取三个只读原生组件,不执行安装程序。组件再次校验摘要、有效期、只读能力和源码运行身份后缓存复用。这样避免旧的独立源码运行时缺少只读声明导致启动失败。先在 desktop 安装 npm 依赖,再以 Node 22.12 以上运行 node scripts/dev.cjs;Nuxt 子进程复用同一个 Node。
模型测试均可使用模拟服务,不需要真实密钥:
python -m pytest tests/test_ai_services.py tests/test_ai_api.py
npx vitest run tests/ai-panel.test.js
node --test desktop/tests/ai-notifications.test.cjs
desktop/scripts/smoke-ai-notifications.cjs 由 Electron 执行,用合成消息验证原生通知,结果写入 logs/ai-notification-smoke.json。不读取微信数据或调用模型。
设置 → AI 服务可查看逐次调用记录,包含调用时间、模型与配置版本、账号、任务 ID、重试次数、图片数量、输入和输出 token、状态,并可导出已加载记录为 JSON。每次重试独立计数,结果格式校验失败仍记录供应商已返回的用量。鉴权失败、超时或取消未返回用量时显示“未知”,不能视为免费;强制退出时未结束的记录显示“执行中 / 中断后未完成”。账单金额以服务商为准。
审计不保存密钥、提示词、聊天正文或原始供应商异常。旧记录不具备的字段显示为未知。元数据接口(如获取模型列表)不计入模型推理调用数。