Bright Data는 검색 엔진(Google, Bing, DuckDuckGo, Yandex)을 지역 타겟팅 및 고급 사용자 정의 옵션과 함께 쿼리할 수 있는 강력한 SERP API를 제공하며, 실시간 웹 정보가 필요한 AI 에이전트에 특히 유용합니다.

Overview

Integration details

ClassPackageSerializableJS supportVersion
BrightDataSERPlangchain-brightdataPyPI - Version

Tool features

Native asyncReturns artifactReturn dataPricing
제목, URL, 스니펫, 위치 및 기타 검색 결과 데이터Bright Data 계정 필요

Setup

이 integration은 langchain-brightdata 패키지에 포함되어 있습니다. pip install langchain-brightdata

Credentials

이 도구를 사용하려면 Bright Data API key가 필요합니다. 환경 변수로 설정할 수 있습니다:
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")

Instantiation

여기서는 BrightDataSERP 도구의 인스턴스를 생성하는 방법을 보여줍니다. 이 도구를 사용하면 Bright Data의 SERP API를 사용하여 지역 타겟팅, 언어 기본 설정, 기기 유형 시뮬레이션 및 특정 검색 유형을 포함한 다양한 사용자 정의 옵션으로 검색 엔진 쿼리를 수행할 수 있습니다. 이 도구는 인스턴스화 시 다양한 매개변수를 허용합니다:
  • bright_data_api_key (필수, str): 인증을 위한 Bright Data API key입니다.
  • 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 응답을 반환합니다.

Invocation

Basic Usage

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)

Advanced Usage with Parameters

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)

Customization Options

BrightDataSERP 도구는 사용자 정의를 위한 여러 매개변수를 허용합니다:
ParameterTypeDescription
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)

Use within an agent

from langchain_brightdata import BrightDataSERP
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain.agents import create_agent


# Initialize the LLM
llm = ChatGoogleGenerativeAI(model="gemini-2.5-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_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 reference


Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I