# ============================================================================ # 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