/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 |
개별 제공자 문서에서 자세한 설정 방법과 제공자별 파라미터를 확인하세요.