Files
litellm-tools-logger/config.yaml
CM Consultor 476f4f954d feat: tool router para LiteLLM (callback + guardrail)
- 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
2026-08-06 22:03:29 +00:00

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