## 背景 go-rag 目前的检索能力均基于知识库向量存储(ES8 / Qdrant),Agent 与用户在知识库未覆盖的问题上无法获取实时网络信息。 ## 建议集成的功能 **You.com Search API** - API 地址: `https://ydc-index.io/v1/search` - 认证方式: `X-API-Key`,通过环境变量 `YDC_API_KEY` 配置(也支持配置文件覆盖) - 返回结果包含 `title`、`description`、`snippets`(关键摘录片段),提供网页与新闻双通道结果 - 新账户赠送 $100 免费额度,注册即可获取 API Key ## 实现方案 完全参照项目现有模式,纯增量实现,不改动现有向量检索链路: - `server/core/websearch/youcom.go` — 实现 eino `retriever.Retriever` 接口的联网检索组件,结果映射为 `schema.Document`(ID=url,Content=标题+描述+摘录,MetaData 含 url/title/source) - `server/api/rag/v1/websearch.go` + `internal/controller/rag/rag_v1_websearch.go` — 新增 `POST /v1/websearch` 接口,与现有 `/v1/retriever` 的参数风格一致(question / top_k) - `server/internal/mcp/websearch.go` — 新增 MCP 工具 `web_search`,与现有 `retriever` 工具注册方式一致 - 配置:`config_demo.yaml` 新增 `websearch.youcom` 段(apiKey / count / timeout),apiKey 留空时读取环境变量 `YDC_API_KEY` - 未配置 Key 时返回友好提示,不影响进程启动与其他功能 - 附带完整单元测试(httptest 模拟,离线可运行)与 README 说明 ## 集成收益 - Agent 通过 MCP `web_search` 工具或 `/v1/websearch` 接口即可获取带来源链接的实时网络信息,与知识库检索互补 - 结果附带摘录片段,便于交叉验证信息来源 - 零侵入:现有向量检索链路完全不受影响,默认关闭(未配置 Key 即不可用) 实现已完成并通过全部测试(含真实环境端到端验证),随后提交 PR。期待反馈,欢迎讨论。
Activity