Skip to content

建议: 集成 You.com Search API — 新增联网检索 retriever(endpoint + MCP 工具) #43

Description

@Emos21

背景

go-rag 目前的检索能力均基于知识库向量存储(ES8 / Qdrant),Agent 与用户在知识库未覆盖的问题上无法获取实时网络信息。

建议集成的功能

You.com Search API

  • API 地址: https://ydc-index.io/v1/search
  • 认证方式: X-API-Key,通过环境变量 YDC_API_KEY 配置(也支持配置文件覆盖)
  • 返回结果包含 titledescriptionsnippets(关键摘录片段),提供网页与新闻双通道结果
  • 新账户赠送 $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。期待反馈,欢迎讨论。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions