Tool - Googlesearch
基本介绍
Google 搜索工具是 Eino InvokableTool 接口的一个实现,用于通过 Google Custom Search API 进行网络搜索。该组件实现了 Eino: ToolsNode 使用说明。
使用方式
组件初始化
Google 搜索工具通过 NewGoogleSearchTool
函数进行初始化,主要配置参数如下:
tool, err := NewGoogleSearchTool(ctx, &Config{
APIKey: "your-api-key", // Google API 密钥
SearchEngineID: "your-engine-id", // 搜索引擎 ID
BaseURL: "custom-base-url", // 可选:自定义 API 基础 URL, default: https://customsearch.googleapis.com
Num: 5, // 可选:每页结果数量
Lang: "zh-CN", // 可选:搜索界面语言
ToolName: "google_search", // 可选:工具名称
ToolDesc: "google search tool", // 可选:工具描述
})
搜索参数
搜索请求支持以下参数:
type SearchRequest struct {
Query string `json:"query"` // 搜索关键词
Num int `json:"num"` // 返回结果数量
Offset int `json:"offset"` // 结果起始位置
Lang string `json:"lang"` // 搜索语言
}
完整使用示例
package main
import (
"context"
"github.com/cloudwego/eino-ext/components/tool/googlesearch"
"github.com/cloudwego/eino/components/tool"
)
func main() {
ctx := context.Background()
// 初始化搜索工具
searchTool, err := googlesearch.NewGoogleSearchTool(ctx, &googlesearch.Config{
APIKey: "your-api-key",
SearchEngineID: "your-engine-id",
Lang: "zh-CN",
Num: 5,
})
if err != nil {
panic(err)
}
// 准备搜索请求
request := map[string]any{
"query": "Golang concurrent programming",
"num": 3,
"lang": "en",
}
// 执行搜索
result, err := searchTool.Invoke(ctx, request)
if err != nil {
panic(err)
}
// 处理搜索结果
println(result) // JSON 格式的搜索结果
}
搜索结果示例
{
"query": "Golang concurrent programming",
"items": [
{
"link": "https://example.com/article1",
"title": "Go 并发编程实践",
"snippet": "这是一篇关于 Go 语言并发编程的文章...",
"desc": "详细介绍了 Go 语言中的 goroutine 和 channel..."
},
{
"link": "https://example.com/article2",
"title": "Understanding Concurrency in Go",
"snippet": "A comprehensive guide to concurrent programming...",
"desc": "Learn about Go's concurrency model and best practices..."
}
]
}
相关文档
最后修改
January 9, 2025
: feat: add eino cn docs (#1182) (ad75444)