Google Programmable Search Engine
Google Programmable Search Engine (PSE)
Google PSE(커스텀 검색 엔진)를 LiteLLM /search 엔드포인트에서 사용하는 방법을 안내할게요. 검색 엔진을 만들고 API 키를 받아 설정해야 해요.
출처: 문서
본문
API 키 받기: Google Cloud Console 검색 엔진 만들기: Programmable Search Engine
설정
- Google Developers Programmable Search Engine에 가서 로그인하거나 계정을 만들어요.
- 제어판에서 Add 버튼을 클릭해요.
- 검색 엔진 이름을 입력하고 속성을 구성해요:
- 검색할 사이트를 선택해요 (전체 웹 또는 특정 사이트).
- 언어와 기타 환경설정을 설정해요.
- 로봇이 아님을 확인해요.
- Create 버튼을 클릭해요.
- 생성되면 다음을 볼 수 있어요:
- 검색 엔진 ID (cx) - 이것을
GOOGLE_PSE_ENGINE_ID에 복사해요. - API 키를 얻는 방법.
- 검색 엔진 ID (cx) - 이것을
- API 키 생성:
- Google Cloud Console - Credentials로 이동해요.
- 새 API 키를 만들거나 기존 것을 사용해요.
- 프로젝트에 Custom Search API를 활성화해요.
- API 키를
GOOGLE_PSE_API_KEY에 복사해요.
LiteLLM Python SDK
Google PSE Search
import os
from litellm import search
os.environ["GOOGLE_PSE_API_KEY"] = "AIza..."
os.environ["GOOGLE_PSE_ENGINE_ID"] = "your-search-engine-id"
response = search(
query="latest AI developments",
search_provider="google_pse",
max_results=10
)
LiteLLM AI Gateway
1. 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: google-search
litellm_params:
search_provider: google_pse
api_key: os.environ/GOOGLE_PSE_API_KEY
search_engine_id: os.environ/GOOGLE_PSE_ENGINE_ID
2. 프록시 시작
litellm --config /path/to/config.yaml
# RUNNING on http://0.0.0.0:4000
3. 검색 엔드포인트 테스트
Test Request
curl http://0.0.0.0:4000/v1/search/google-search \
-H "Authorization: Bearer ***" \
-H "Content-Type: application/json" \
-d '{
"query": "latest AI developments",
"max_results": 10
}'
제공자별 파라미터
Google PSE Search with Provider-specific Parameters
import os
from litellm import search
os.environ["GOOGLE_PSE_API_KEY"] = "AIza..."
os.environ["GOOGLE_PSE_ENGINE_ID"] = "your-search-engine-id"
response = search(
query="latest AI research papers",
search_provider="google_pse",
max_results=10,
search_domain_filter=["arxiv.org"],
# Google PSE-specific parameters (use actual Google PSE API parameter names)
dateRestrict="m6", # 'm6' = last 6 months, 'd7' = last 7 days
lr="lang_en", # Language restriction (e.g., 'lang_en', 'lang_es')
safe="active", # Search safety level ('active' or 'off')
exactTerms="machine learning", # Phrase that all documents must contain
fileType="pdf" # File type to restrict results to
)