- CustomToolRouter como callback (roda em todas as chamadas) - ToolRouterGuardrail para ativação por request - Modos: jaccard (offline) e embedding (API) - Dockerfile + docker-compose prontos - README com docs completas - Teste offline validando ~74% redução de tokens
76 lines
2.7 KiB
YAML
76 lines
2.7 KiB
YAML
# ============================================================================
|
|
# config.yaml - LiteLLM Proxy com Tool Router + Valkey Semantic Cache
|
|
# ============================================================================
|
|
# Para rodar:
|
|
# litellm --config config.yaml --detailed_debug
|
|
# ============================================================================
|
|
|
|
model_list:
|
|
- model_name: gpt-4o-mini
|
|
litellm_params:
|
|
model: openai/gpt-4o-mini
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
# Temperatura baixa para ferramentas
|
|
temperature: 0.1
|
|
- model_name: gpt-4o
|
|
litellm_params:
|
|
model: openai/gpt-4o
|
|
api_key: os.environ/OPENAI_API_KEY
|
|
|
|
litellm_settings:
|
|
# Cache semântico com Valkey (reduz tokens em resposta)
|
|
cache: true
|
|
cache_params:
|
|
type: valkey-semantic
|
|
host: os.environ/VALKEY_HOST
|
|
port: os.environ/VALKEY_PORT
|
|
valkey_semantic_cache_embedding_model: "text-embedding-3-small"
|
|
similarity_threshold: 0.92 # só retorna cache se >= 92% similar
|
|
ttl: 3600 # 1 hora
|
|
|
|
# ── Tool Router (roda em TODAS as chamadas) ────────────────────────────────
|
|
# Formato válido no LiteLLM 1.95+: `callbacks` aponta para uma INSTÂNCIA
|
|
# de CustomLogger (`tool_router_instance` é criada no import do módulo).
|
|
# Parâmetros configuráveis via env vars: TOOL_ROUTER_* (ver tool_router_logger.py).
|
|
callbacks:
|
|
- tool_router_logger.tool_router_instance
|
|
|
|
# ── Opção GUARDRAIL (ativa por request: `guardrails: ["tool_router"]`) ─────
|
|
# Descomente se preferir controlar por request em vez de global.
|
|
# guardrails:
|
|
# - guardrail_name: tool_router
|
|
# litellm_params:
|
|
# guardrail: tool_router_logger.ToolRouterGuardrail
|
|
# mode: pre_call
|
|
# default_on: false # true = roda em todas as chamadas
|
|
# top_k: 3
|
|
# min_similarity: 0.15
|
|
# similarity_mode: jaccard # ou "embedding" (exige API de embedding)
|
|
|
|
# Callbacks para monitoramento
|
|
success_callback: ["langfuse"] # opcional: rastreamento
|
|
|
|
# Desliga cache de requisições (deixa só o semântico) se quiser
|
|
# request_model_request_count: false
|
|
|
|
general_settings:
|
|
master_key: os.environ/LITELLM_MASTER_KEY
|
|
# database_url: os.environ/DATABASE_URL # se quiser persitir usage
|
|
|
|
# Proxy custom headers
|
|
proxy_batch_write_at: 1 # escreve logs em batch
|
|
|
|
# Segurança
|
|
allowed_routes:
|
|
- chat/completions
|
|
- models
|
|
|
|
# Rate limiting (opcional)
|
|
# alerting: ["slack"]
|
|
# alerting_threshold: 300 # 5 minutos sem resposta
|
|
|
|
# Desabilitar rotas indesejadas
|
|
# disable_end_user_cost_tracking: true
|
|
|
|
# Para ambientes com muitos tools, configurar:
|
|
max_request_size_mb: 15 |