BrightDataSERP
Bright Data 提供强大的 SERP API,允许您查询搜索引擎(Google、Bing、DuckDuckGo、Yandex),并支持地理定位和高级自定义选项,这对于需要实时网络信息的 AI 智能体特别有用。
概述
集成详情
类别 | 包 | 可序列化 | JS 支持 | 最新包版本 |
---|---|---|---|---|
BrightDataSERP | langchain-brightdata | ✅ | ❌ |
工具功能
原生异步 | 返回工件 | 返回数据 | 定价 |
---|---|---|---|
❌ | ❌ | 标题、URL、摘要、排名及其他搜索结果数据 | 需要 Bright Data 账户 |
设置
此集成位于 langchain-brightdata
包中。通过 pip 安装 langchain-brightdata
凭证
您需要一个 Bright Data API 密钥才能使用此工具。您可以将其设置为环境变量
import os
os.environ["BRIGHT_DATA_API_KEY"] = "your-api-key"
或在初始化工具时直接传入
from langchain_brightdata import BrightDataSERP
serp_tool = BrightDataSERP(bright_data_api_key="your-api-key")
实例化
这里展示了如何实例化 BrightDataSERP 工具。此工具允许您使用 Bright Data 的 SERP API 执行搜索引擎查询,并提供多种自定义选项,包括地理定位、语言偏好、设备类型模拟和特定搜索类型。
该工具在实例化时接受各种参数
bright_data_api_key
(必填,str):您的 Bright Data API 密钥,用于身份验证。search_engine
(可选, 字符串): 用于查询的搜索引擎。默认为 "google"。其他选项包括 "bing", "yahoo", "yandex", "DuckDuckGo" 等。country
(可选, 字符串): 用于本地化搜索结果的两字母国家代码 (例如:"us", "gb", "de", "jp")。默认为 "us"。language
(可选, 字符串): 用于搜索结果的两字母语言代码 (例如:"en", "es", "fr", "de")。默认为 "en"。results_count
(可选, 整数): 要返回的搜索结果数量。默认为 10。最大值通常为 100。search_type
(可选, 字符串): 要执行的搜索类型。选项包括- None (默认): 常规网页搜索
- "isch": 图片搜索
- "shop": 购物搜索
- "nws": 新闻搜索
- "jobs": 职位搜索
device_type
(可选, 字符串): 用于搜索模拟的设备类型。选项包括- None (默认): 桌面设备
- "mobile": 普通移动设备
- "ios": iOS 设备 (iPhone)
- "android": Android 设备
parse_results
(可选, 布尔值): 是否返回解析后的 JSON 结果。默认为 False,此时返回原始 HTML 响应。
调用
基本用法
from langchain_brightdata import BrightDataSERP
# Initialize the tool
serp_tool = BrightDataSERP(
bright_data_api_key="your-api-key" # Optional if set in environment variables
)
# Run a basic search
results = serp_tool.invoke("latest AI research papers")
print(results)
高级用法与参数
from langchain_brightdata import BrightDataSERP
# Initialize with default parameters
serp_tool = BrightDataSERP(
bright_data_api_key="your-api-key",
search_engine="google", # Default
country="us", # Default
language="en", # Default
results_count=10, # Default
parse_results=True, # Get structured JSON results
)
# Use with specific parameters for this search
results = serp_tool.invoke(
{
"query": "best electric vehicles",
"country": "de", # Get results as if searching from Germany
"language": "de", # Get results in German
"search_type": "shop", # Get shopping results
"device_type": "mobile", # Simulate a mobile device
"results_count": 15,
}
)
print(results)
自定义选项
BrightDataSERP 工具接受多个自定义参数
参数 | 类型 | 描述 |
---|---|---|
query | 字符串 | 要执行的搜索查询 |
search_engine | 字符串 | 要使用的搜索引擎(默认:"google") |
country | 字符串 | 用于本地化结果的两字母国家代码(默认:"us") |
language | 字符串 | 两字母语言代码(默认:"en") |
results_count | 整数 | 要返回的结果数量(默认:10) |
search_type | 字符串 | 搜索类型:None (网页), "isch" (图片), "shop" (购物), "nws" (新闻), "jobs" (职位) |
device_type | 字符串 | 设备类型:None (桌面), "mobile" (移动), "ios" (iOS), "android" (安卓) |
parse_results | 布尔值 | 是否返回结构化 JSON(默认:False) |
在代理中使用
from langchain_brightdata import BrightDataSERP
from langchain_google_genai import ChatGoogleGenerativeAI
from langgraph.prebuilt import create_react_agent
# Initialize the LLM
llm = ChatGoogleGenerativeAI(model="gemini-2.0-flash", google_api_key="your-api-key")
# Initialize the Bright Data SERP tool
serp_tool = BrightDataSERP(
bright_data_api_key="your-api-key",
search_engine="google",
country="us",
language="en",
results_count=10,
parse_results=True,
)
# Create the agent
agent = create_react_agent(llm, [serp_tool])
# Provide a user query
user_input = "Search for 'best electric vehicles' shopping results in Germany in German using mobile."
# Stream the agent's output step-by-step
for step in agent.stream(
{"messages": user_input},
stream_mode="values",
):
step["messages"][-1].pretty_print()
API 参考:ChatGoogleGenerativeAI | create_react_agent