Skip to main content
Open In ColabOpen on GitHub

BrightDataSERP

Bright Data 提供了一个强大的 SERP API,允许您使用地理定位和高级自定义选项查询搜索引擎(Google、Bing、DuckDuckGo、Yandex),这对于需要实时网络信息的 AI 代理特别有用。

概览

集成详情

可序列化JS 支持包最新版本
BrightDataSERPlangchain-brightdataPyPI - Version

工具特性

原生异步返回工件返回数据定价
标题、URL、摘要、位置和其他搜索结果数据需要 Bright Data 账户

设置

该集成位于 langchain-brightdata 包中。 pip install 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 (可选, str): 用于查询的搜索引擎。默认为 "google"。其他选项包括 "bing", "yahoo", "yandex", "DuckDuckGo" 等。
  • country (可选, str): 用于本地化搜索结果的两位字母国家代码(例如 "us", "gb", "de", "jp")。默认为 "us"。
  • language (可选, str): 用于搜索结果的两位字母语言代码(例如 "en", "es", "fr", "de")。默认为 "en"。
  • results_count (可选, int): 要返回的搜索结果数量。默认为 10。最大值通常为 100。
  • search_type (可选, str): 要执行的搜索类型。选项包括:
    • None (默认): 常规网页搜索
    • "isch": 图片搜索
    • "shop": 购物搜索
    • "nws": 新闻搜索
    • "jobs": 工作搜索
  • device_type (可选, str): 要模拟用于搜索的设备类型。选项包括:
    • None (默认): 桌面设备
    • "mobile": 通用移动设备
    • "ios": iOS 设备 (iPhone)
    • "android": Android 设备
  • parse_results (可选, bool): 是否返回解析后的 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 工具接受几个参数进行自定义:

参数类型描述
querystr要执行的搜索查询
search_enginestr要使用的搜索引擎(默认值:“google”)
countrystr用于本地化结果的两位国家代码(默认值:“us”)
languagestr两位语言代码(默认值:“en”)
results_countint要返回的结果数(默认值:10)
search_typestr搜索类型:None(网页)、"isch"(图片)、"shop"(商店)、"nws"(新闻)、"jobs"(职位)
device_typestr设备类型:None(桌面)、"mobile"(移动设备)、"ios"、"android"
parse_resultsbool是否返回结构化 JSON(默认值:False)

在代理中使用

This section explains how to integrate **

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 参考