提问—多个 AI 同时回答—自动提炼共识、揭示矛盾、聚合最优答案 — 使用网页模型完全免费,无需 API Key。
License: Apache License 2.0
版本:v1.7.1 | 创建:2026-03-27 | 最近更新:2026-08-19
MirrorTruth 通过浏览器自动化调用网页版 AI(Kimi、DeepSeek、豆包、智谱清言、腾讯混元等),并行向多个模型提问,自动提炼共识、揭示矛盾、聚合最优答案。所有模型使用网页版免费额度,无需任何 API Key。
✅ 以下 6 项核心功能均已实现并验证可用(v1.6.0):
- [已实现] 并行调用:同时向多个网页版/本地/API 模型提问(已验证 5 个网页模型)
- [已实现] 五维聚合:聚合模型(LLM 驱动)分析各模型答案,输出结构化分析报告
- [已实现] 模型管理:内置 5 个网页模型 + 可自定义添加,登录状态持久化
- [已实现] 答案复制:针对每个网页模型定制 copy 按钮点击策略,完整抓取答案
- [已实现] 设置中心:国内外 20 个提供商预设,API 模型配置,本地模型检测
- [已实现] 浏览器持久化:模型页面长期存活,保留对话记忆
⏸️ 以下早期规划功能暂不实现(已从代码移除或留作预留):用户评分系统、ME.md 管理、桌面应用启动器、CLI 聚合入口、独立模型发现、数据库业务落库。详见文末「功能实现状态」。
cd MirrorTruth
python3 -m pip install -r requirements.txt
python3 -m playwright install chromiumpython3 start_server.py
# 或直接启动
python3 -m uvicorn web.app:app --host 127.0.0.1 --port 9500
# 端口占用删除
lsof -ti :9500 | xargs kill -9- macOS / Linux,Python 3.9+(已测 3.14)
- 16GB+ RAM 推荐
cd MirrorTruth
pip install -r requirements.txt
playwright install chromium验证:
python3 -c "import fastapi, playwright; print('OK')"- 设置 → 添加网页版模型(选提供商 → 自动填 URL)或添加自定义模型
- 模型管理 → 检测登录 → 启用模型 → 选择聚合模型 → 保存
- 提问 → 输入问题 → 开始提问 → 等待聚合结果
# 启动服务
python3 start_server.py
# 或
python3 -m uvicorn web.app:app --host 127.0.0.1 --port 9500
# 释放端口
lsof -ti :9500 | xargs kill -9
# 重新安装 Playwright 浏览器
playwright install chromium端口被占用:lsof -i :9500 → kill -9 <PID>
依赖导入失败:pip install --force-reinstall -r requirements.txt
Playwright 浏览器问题:playwright uninstall chromium && playwright install chromium
- Playwright sync API 不是线程安全的,每个后台任务独立创建实例
- 浏览器持久化:首次提问打开浏览器,后续复用页面(保留模型对话记忆)
- 登录检测:纯手动确认,不自动发送测试消息
- 答案提取:按模型定制
EXTRA_COPY_JS,点击 copy 按钮后读取剪贴板,避免 body.innerText 截取不全 - 等待完成:内容增长检测 + 连续稳定 6 秒判定回答结束
- 多模型并行提问与答案复制(Kimi / DeepSeek / 豆包 / 智谱 / 混元 + 自定义网页模型)
- 五维聚合分析(共识 / 矛盾 / 覆盖盲区 / 独特洞察 / 盲点)
- 模型管理:登录检测、启用、聚合模型选择
- 设置中心:20 个提供商预设、API 配置、本地模型检测、自定义网页模型
- 浏览器持久化(页面长期存活,保留对话记忆)
- 用户评分系统(多维度评分 + 落库)
- ME.md 管理与记忆同步
- 桌面应用调用
- 独立模型发现(统一并入设置中心本地检测)
- 数据库业务落库(当前聚合结果直返前端,数据库仅初始化建表)
| 日期 | 更新内容 | 版本 |
|---|---|---|
| 2026-08-19 | v1.7.1 bugfix + 增强:① 聚合答案截断 bug——综合答案仅剩"综合答案"4 字(解析标题被误切),改为与五维字段同源提取;裁判与兜底聚合取消 3000 字截断,完整保留各模型回答。② 停止信号防抖——长回答阶段切换/重渲染导致信号短暂消失被误判为完成(如 Kimi 长回答只抓到第一句),新增连续 2 轮确认 + 信号恢复撤销机制,判定完成后额外 2 秒复核。③ 回答完成检测重构——内置各网页模型"按钮变身型"停止信号表,支持 CSS 选择器与 JS 信号两种来源(配置可覆盖),无信号时回退内容稳定判定。④ 千问网页模型接入——补全专属复制与停止信号逻辑,端到端验证通过。⑤ 历史记录持久化——问答结果写入数据库,前端新增历史侧边栏(查看/折叠/编辑标题/连续追问上下文),含表结构增量迁移。⑥ 通用网页模型测试工具——支持停止信号检测完成、专属复制抓取,并可交互式探测候选按钮生成模型配置 | v1.7.1 |
| 2026-07-14 | v1.7.0 发布准备:web/app.py 的 print() 调试输出全部替换为结构化 logging;Jinja2 auto_reload 与 Uvicorn reload 改由 settings.DEBUG 控制(生产环境关闭);run.sh 改为脚本目录动态推导路径,增强可移植性;本地回归测试脚本 test_copy_active_models.py 加入 .gitignore,不纳入开源仓库 |
v1.7.0 |
| 2026-07-09 | v1.6.1 bugfix:修复龙猫(longcat)自定义模型复制失败。根因①输入框为 div.ProseMirror(contenteditable),默认 textarea 选择器超时→提交失败;②复制按钮为 div.operate-copy(非 button),通用 CLICK_COPY_BTN_JS 点不到→剪贴板空。修复:新增 _resolve_input_selector() 兜底探测(custom_models.json 龙猫补 input_selector="div.ProseMirror");EXTRA_COPY_JS 新增 web-custom-1783564684308 点击最后一条回答 .operate-copy。新增 test_copy_active_models.py 回归测试,实测 5 激活模型(DeepSeek/腾讯/龙猫/Kimi/智谱)复制全部命中。注:v1.6.0 精简与复制无关 | v1.6.1 |
| 2026-07-09 | v1.6.0 精简:删除未启用模块(evaluator/model_discovery/desktop_launcher/workflow_manager/run_aggregator/空 me_manager);核心功能标注「已实现」,其余功能标注「暂不实现」;修正 test_main.py 断言 | v1.6.0 |
| 2026-03-27 | 项目框架初始化 | v0.1.0 |
| 2026-07-09 | 设置页新增自定义网页模型添加:下拉支持自定义分支,可填模型名称与URL,并提供高级选项(输入框选择器、提交按钮选择器);register_model 扩展 input_selector/submit_selector 参数,两处注册路径透传选择器。自定义模型答案复制回退通用 CLICK_COPY_BTN_JS,特殊结构需补 EXTRA_COPY_JS | v1.5.1 |
| 2026-07-05 | v1.5.0 里程碑:5 个网页模型(Kimi/DeepSeek/豆包/智谱/混元)答案复制全通;修复剪贴板残留;按模型定制 EXTRA_COPY_JS;内容稳定 6 秒触发抓取 | v1.5.0 |
| 2026-06-23 | 五维聚合引擎、三Tab界面、模型持久化、浏览器长期存活、body.innerText增量提取 | v0.2.0 |
注意:本项目遵循单一README原则,所有后续修改记录都添加在上表。