serper.go 1015 B

12345678910111213141516171819202122232425262728
  1. // Serper 通过 MCP 调用 Serper 搜索的 WebSearchProvider 实现。
  2. // 需配合 Serper MCP 服务端(如 garylab/serper-mcp-server)使用,工具名一般为 google_search,参数为 query。
  3. package mcp
  4. import (
  5. "context"
  6. "github.com/2930134478/AI-CS/backend/infra/search"
  7. )
  8. // SerperWebSearchProvider 通过 MCP 调用 Serper 的 google_search 工具,实现 search.WebSearchProvider。
  9. type SerperWebSearchProvider struct {
  10. client *Client
  11. }
  12. // NewSerperWebSearchProvider 创建基于 MCP 的 Serper 联网搜索提供方。client 需已 Connect。
  13. func NewSerperWebSearchProvider(client *Client) search.WebSearchProvider {
  14. return &SerperWebSearchProvider{client: client}
  15. }
  16. // Search 执行搜索:调用 MCP 工具 google_search,将结果文本返回供 LLM 使用。
  17. func (p *SerperWebSearchProvider) Search(ctx context.Context, query string) (string, error) {
  18. if p.client == nil {
  19. return "", nil
  20. }
  21. return p.client.CallTool(ctx, "google_search", map[string]any{"query": query})
  22. }