/search 개요

/search 개요 (Overview)

웹 검색 API 엔드포인트에 대한 개요 문서예요. LiteLLM은 검색 API에 대해 Perplexity API 요청/응답 형식을 따르며, perplexity, tavily, exa_ai, brave 등 다양한 검색 제공자를 지원해요.

출처: 문서

본문

기능 지원
지원 제공자 perplexity, tavily, parallel_ai, exa_ai, brave, google_pse, dataforseo, firecrawl, searxng, linkup, duckduckgo, searchapi, serper, you_com, apiserpent, agentcore, nimble, bing_grounding
비용 추적
로깅
로드밸런싱

tip

LiteLLM은 검색 API에 대해 Perplexity API 요청/응답을 따르는 것을 참고하세요.

info

LiteLLM v1.78.7+부터 지원돼요.

LiteLLM Python SDK 사용법

Quick Start

Basic Search

from litellm import search
import os

os.environ["PERPLEXITYAI_API_KEY"] = "pplx-..."

response = search(
    query="latest AI developments in 2024",
    search_provider="perplexity",
    max_results=5
)

# Access search results
for result in response.results:
    print(f"{result.title}: {result.url}")
    print(f"Snippet: {result.snippet}\n")

Parallel AI 검색을 사용하려면 PARALLEL_API_KEY를 설정하고 search_provider="parallel_ai"를 전달하세요.

비동기 사용법

Async Search

from litellm import asearch
import os, asyncio

os.environ["PERPLEXITYAI_API_KEY"] = "pplx-..."

async def search_async(): 
    response = await asearch(
        query="machine learning research papers",
        search_provider="perplexity",
        max_results=10,
        search_domain_filter=["arxiv.org", "nature.com"]
    )
    
    # Access search results
    for result in response.results:
        print(f"{result.title}: {result.url}")
        print(f"Snippet: {result.snippet}")

asyncio.run(search_async())

선택 파라미터

Search with Options

response = search(
    query="AI developments",
    search_provider="perplexity",
    # Unified parameters (work across all providers)
    max_results=10,                         # Maximum number of results (1-20)
    search_domain_filter=["arxiv.org"],     # Filter to specific domains
    country="US",                           # Country code filter
    max_tokens_per_page=1024                # Max tokens per page
)

LiteLLM AI Gateway 사용법

LiteLLM은 검색 호출을 위한 Perplexity API 호환 /search 엔드포인트를 제공해요.

설정 이것을 litellm 프록시 config.yaml에 추가해요. config.yaml

model_list:
  - model_name: gpt-5.6-terra
    litellm_params:
      model: gpt-5.6-terra
      api_key: os.environ/OPENAI_API_KEY

search_tools:
  - search_tool_name: perplexity-search
    litellm_params:
      search_provider: perplexity
      api_key: os.environ/PERPLEXITYAI_API_KEY
  
  - search_tool_name: tavily-search
    litellm_params:
      search_provider: tavily
      api_key: os.environ/TAVILY_API_KEY

  - search_tool_name: parallel-search
    litellm_params:
      search_provider: parallel_ai
      api_key: os.environ/PARALLEL_API_KEY

litellm 시작:

litellm --config /path/to/config.yaml

# RUNNING on http://0.0.0.0:4000

테스트 요청

옵션 1: URL에 검색 도구 이름 (권장 - 본문을 Perplexity 호환으로 유지) cURL Request

curl http://0.0.0.0:4000/v1/search/perplexity-search \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "latest AI developments 2024",
    "max_results": 5,
    "search_domain_filter": ["arxiv.org", "nature.com"],
    "country": "US"
  }'

옵션 2: 본문에 검색 도구 이름 cURL Request with search_tool_name in body

curl http://0.0.0.0:4000/v1/search \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{
    "search_tool_name": "perplexity-search",
    "query": "latest AI developments 2024",
    "max_results": 5
  }'

로드밸런싱

여러 검색 제공자를 구성해 자동 로드밸런싱과 폴백을 활성화해요: config.yaml with load balancing

search_tools:
  - search_tool_name: my-search
    litellm_params:
      search_provider: perplexity
      api_key: os.environ/PERPLEXITYAI_API_KEY
  
  - search_tool_name: my-search
    litellm_params:
      search_provider: tavily
      api_key: os.environ/TAVILY_API_KEY
  
  - search_tool_name: my-search
    litellm_params:
      search_provider: exa_ai
      api_key: os.environ/EXA_API_KEY

  - search_tool_name: my-search
    litellm_params:
      search_provider: brave
      api_key: os.environ/BRAVE_API_KEY

router_settings:
  routing_strategy: simple-shuffle  # or 'least-busy', 'latency-based-routing'

로드밸런싱으로 테스트:

curl http://0.0.0.0:4000/v1/search/my-search \
  -H "Authorization: Bearer ***" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "AI developments",
    "max_results": 10
  }'

요청/응답 형식

info

LiteLLM은 Perplexity Search API 사양을 따르는 것을 참고하세요.

완전한 세부 사항은 공식 Perplexity Search 문서를 참고하세요.

예시 요청

Search Request

{
  "query": "latest AI developments 2024",
  "max_results": 10,
  "search_domain_filter": ["arxiv.org", "nature.com"],
  "country": "US",
  "max_tokens_per_page": 1024
}

요청 파라미터

파라미터 타입 필수 설명
query string 또는 array 검색 쿼리. 단일 문자열 또는 문자열 배열 가능
search_provider string 예 (SDK) 사용할 검색 제공자: "perplexity", "tavily", "parallel_ai", "exa_ai", "brave", "google_pse", "dataforseo", "firecrawl", "searxng", "linkup", "duckduckgo", "searchapi", "serper", 또는 "you_com" 또는 "apiserpent" 또는 "agentcore" 또는 "bing_grounding"
search_tool_name string 예 (Proxy) config.yaml에 구성된 검색 도구 이름
max_results integer 아니요 반환할 최대 결과 수 (1-20). 기본값: 10
search_domain_filter array 아니요 결과를 필터링할 도메인 목록 (최대 20 도메인)
max_tokens_per_page integer 아니요 페이지당 처리할 최대 토큰 수. 기본값: 1024
country string 아니요 국가 코드 필터 (예: "US", "GB", "DE")

쿼리 형식 예시:

# Single query
query = "AI developments"

# Multiple queries
query = ["AI developments", "machine learning trends"]

응답 형식

응답은 다음 구조의 Perplexity 검색 형식을 따르는 것을 참고하세요: Search Response

{
  "object": "search",
  "results": [
    {
      "title": "Latest Advances in Artificial Intelligence",
      "url": "https://arxiv.org/paper/example",
      "snippet": "This paper discusses recent developments in AI...",
      "date": "2024-01-15"
    },
    {
      "title": "Machine Learning Breakthroughs",
      "url": "https://nature.com/articles/ml-breakthrough",
      "snippet": "Researchers have achieved new milestones...",
      "date": "2024-01-10"
    }
  ]
}

응답 필드

필드 타입 설명
object string 검색 응답에서 항상 "search"
results array 검색 결과 목록
results[].title string 검색 결과 제목
results[].url string 검색 결과 URL
results[].snippet string 결과에서 가져온 텍스트 스니펫
results[].date string 선택적 게시 또는 최종 업데이트 날짜

지원 제공자

제공자 환경 변수 search_provider
Perplexity AI PERPLEXITYAI_API_KEY perplexity
Tavily TAVILY_API_KEY tavily
Exa AI EXA_API_KEY exa_ai
Brave Search BRAVE_API_KEY brave
Parallel AI PARALLEL_AI_API_KEY parallel_ai
Google PSE GOOGLE_PSE_API_KEY, GOOGLE_PSE_ENGINE_ID google_pse
DataForSEO DATAFORSEO_LOGIN, DATAFORSEO_PASSWORD dataforseo
Firecrawl FIRECRAWL_API_KEY firecrawl
SearXNG SEARXNG_API_BASE (필수) searxng
Linkup LINKUP_API_KEY linkup
Serper SERPER_API_KEY serper
DuckDuckGo DUCKDUCKGO_API_BASE duckduckgo
SearchAPI.io SEARCHAPI_API_KEY searchapi
You.com YOUCOM_API_KEY (선택 — 키 없는 무료 티어는 생략) you_com
APISerpent APISERPENT_API_KEY apiserpent
Bedrock AgentCore AGENTCORE_GATEWAY_URL (필수), AWS 자격 증명 또는 AGENTCORE_GATEWAY_TOKEN agentcore
Nimble NIMBLE_API_KEY nimble
Grounding with Bing (Microsoft Foundry) BING_GROUNDING_PROJECT_ENDPOINT, BING_GROUNDING_MODEL (필수), api_key 또는 BING_GROUNDING_TOKEN 또는 azure-identity bing_grounding

개별 제공자 문서에서 자세한 설정 방법과 제공자별 파라미터를 확인하세요.

더 알아보기 (Learn more)