跳到主要内容
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 安装 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 参考