跳至主要內容

總覽

功能支援
支援的提供者perplexity, tavily, parallel_ai, exa_ai, brave, google_pse, dataforseo, firecrawl, searxng, linkup, duckduckgo, searchapi, serper, you_com, apiserpent
成本追蹤
記錄
負載平衡
資訊

自 LiteLLM v1.78.7+ 起支援

LiteLLM Python SDK 用法

快速開始

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")

非同步用法

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 proxy config.yaml

config.yaml
model_list:
- model_name: gpt-4
litellm_params:
model: gpt-4
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

啟動 litellm

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

# RUNNING on http://0.0.0.0:4000

測試請求

選項 1:URL 中的搜尋工具名稱(建議 - 保持 body 與 Perplexity 相容)

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

選項 2:body 中的搜尋工具名稱

cURL Request with search_tool_name in body
curl http://0.0.0.0:4000/v1/search \
-H "Authorization: Bearer sk-1234" \
-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 sk-1234" \
-H "Content-Type: application/json" \
-d '{
"query": "AI developments",
"max_results": 10
}'

請求/回應格式

資訊

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
}

請求參數

參數類型必填說明
querystring 或 array搜尋查詢。可以是單一字串或字串陣列
search_providerstring是(SDK)要使用的搜尋提供者:"perplexity""tavily""parallel_ai""exa_ai""brave""google_pse""dataforseo""firecrawl""searxng""linkup""duckduckgo""searchapi""serper",或 "you_com""apiserpent"
search_tool_namestring是(Proxy)config.yaml 中設定的搜尋工具名稱
max_resultsinteger要回傳的最大結果數量(1-20)。預設:10
search_domain_filterarray用於篩選結果的網域清單(最多 20 個網域)
max_tokens_per_pageinteger每頁要處理的最大 token 數量。預設:1024
countrystring國家/地區代碼篩選器(例如:"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"
}
]
}

回應欄位

欄位類型說明
objectstring搜尋回應一律為 "search"
resultsarray搜尋結果清單
results[].titlestring搜尋結果標題
results[].urlstring搜尋結果 URL
results[].snippetstring結果中的文字片段
results[].datestring選用的發佈或最後更新日期

支援的提供者

提供者環境變數search_provider
Perplexity AIPERPLEXITYAI_API_KEYperplexity
TavilyTAVILY_API_KEYtavily
Exa AIEXA_API_KEYexa_ai
Brave SearchBRAVE_API_KEYbrave
Parallel AIPARALLEL_AI_API_KEYparallel_ai
Google PSEGOOGLE_PSE_API_KEY, GOOGLE_PSE_ENGINE_IDgoogle_pse
DataForSEODATAFORSEO_LOGIN, DATAFORSEO_PASSWORDdataforseo
FirecrawlFIRECRAWL_API_KEYfirecrawl
SearXNGSEARXNG_API_BASE(必填)searxng
LinkupLINKUP_API_KEYlinkup
SerperSERPER_API_KEYserper
DuckDuckGoDUCKDUCKGO_API_BASEduckduckgo
SearchAPI.ioSEARCHAPI_API_KEYsearchapi
You.comYOUCOM_API_KEY (選用 — 無金鑰免費方案可省略)you_com
APISerpentAPISERPENT_API_KEYapiserpent

請參閱各個提供者的文件,以取得詳細的設定說明與提供者專屬參數。