修复网页对话并接入 SearXNG 搜索
This commit is contained in:
@@ -28,7 +28,9 @@ app/ 助手本体(部署到服务器)
|
||||
│ ├── stt.py sherpa-onnx 流式 Zipformer(CPU)
|
||||
│ ├── tts.py 本地 vits-zh-ll(sherpa-onnx)
|
||||
│ └── remote_tts.py Qwen3-TTS 远端服务适配(当前主用)
|
||||
└── tests/ 5 个测试脚本,全部无需硬件
|
||||
└── tests/ 回归与真实服务验收脚本
|
||||
|
||||
deploy/searxng/ 私有联网搜索服务(仅监听服务器回环地址)
|
||||
|
||||
services/
|
||||
├── tts_server.py Qwen3-TTS 服务(跑在 ~/tts-qwen,独立 venv)
|
||||
@@ -52,13 +54,27 @@ cd ~/ai-companion
|
||||
.venv/bin/python app/tests/test_memory.py # 28 项
|
||||
.venv/bin/python app/tests/test_identity.py # 17 项
|
||||
.venv/bin/python app/tests/test_engine_e2e.py # 16 项,端到端
|
||||
.venv/bin/python app/tests/test_transport.py # 3 项,媒体时钟/VAD/静音判定
|
||||
.venv/bin/python app/tests/test_transport.py # 4 项,媒体时钟/VAD/静音/RTVI文本
|
||||
.venv/bin/python app/tests/test_search.py # 12 项,搜索 API/工具回灌/TTS 链路过滤
|
||||
```
|
||||
|
||||
端到端测试**不需要麦克风、音箱、摄像头、ESP32**——
|
||||
这是"服务器即助手"架构的直接好处:链路可以在任何有 CPU 的地方验证,
|
||||
硬件到货后再接最后一段。跑完会把合成音频写到 `out/`,可以人工试听。
|
||||
|
||||
## 联网搜索
|
||||
|
||||
DeepSeek 负责判断何时需要实时资料,`app/search.py` 提供 `web_search` 工具并调用
|
||||
服务器本机的 SearXNG。工具结果回灌模型后再生成最终回答;网页保留来源 URL,TTS
|
||||
只朗读正文。SearXNG 仅绑定 `127.0.0.1:18080`,配置见 `deploy/searxng/`。
|
||||
|
||||
服务器实测 DuckDuckGo、Brave、Wikipedia 超时,当前启用 360 搜索和搜狗;Bing
|
||||
保留但暂时返回空结果。真实服务验收:
|
||||
|
||||
```bash
|
||||
.venv/bin/python app/tests/test_search_live.py
|
||||
```
|
||||
|
||||
## 设计上几个刻意的选择
|
||||
|
||||
**接口按最坏情况设计。** `MemoryStore` 全是 async、可超时、可失败,
|
||||
|
||||
Reference in New Issue
Block a user