Added litellm
This commit is contained in:
1
public/svgs/litellm.svg
Normal file
1
public/svgs/litellm.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#939598" d="M0 34h36v2H0z"/><path fill="#D1D3D4" d="M3 35h33V6H21c-4 0-5 2-5 2l-4 6S0 19 0 24c0 4 6 6 6 6z"/><path fill="#231F20" d="m14 35 2-3h20v3z"/><path fill="#3B88C3" d="M0 23.999c0 4 6 6 6 6V17.125C3 19 0 21.499 0 23.999M6 30v-.001z"/><path fill="#269" d="m6 30-3 5h33v-5z"/><path fill="#3B88C3" d="m20 30 4-6h12v6z"/><path fill="#55ACEE" d="M26 8H16l-4 6h-.001 10.843c.477 0 1.108-.448 1.412-1l2.197-4c.303-.552.102-1-.451-1"/><path fill="#3B88C3" d="m25.902 10 .549-1c.303-.552.102-1-.451-1H16l-1.333 2z"/></svg>
|
After Width: | Height: | Size: 593 B |
177
templates/compose/litellm.yaml
Normal file
177
templates/compose/litellm.yaml
Normal file
@@ -0,0 +1,177 @@
|
||||
# documentation: https://docs.litellm.ai
|
||||
# slogan: Call all LLM APIs using the OpenAI format. Use Bedrock, Azure, OpenAI, Cohere, Anthropic, Ollama, Sagemaker, HuggingFace, Replicate, Groq (100+ LLMs)
|
||||
# tags: ai, qdrant, weaviate, langchain, openai, gpt, llm, lmops, anthropic, cohere, ollama, sagemaker, huggingface, replicate, groq
|
||||
# logo: svgs/litellm.svg
|
||||
# port: 4000
|
||||
|
||||
volumes:
|
||||
pg-data: null
|
||||
redis-data: null
|
||||
|
||||
services:
|
||||
litellm:
|
||||
image: "ghcr.io/berriai/litellm-database:main-latest"
|
||||
restart: always
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- LITELLM_LOG=ERROR
|
||||
- LITELLM_MODE=PRODUCTION
|
||||
- "LITELLM_MASTER_KEY=${SERVICE_PASSWORD_32_LITELLM_MASTER_KEY}"
|
||||
- "UI_USERNAME=${SERVICE_USER_UI}"
|
||||
- "UI_PASSWORD=${SERVICE_PASSWORD_UI}"
|
||||
- "DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-litellm}"
|
||||
- REDIS_HOST=redis
|
||||
- REDIS_PORT=6379
|
||||
- "POSTGRES_USER=${SERVICE_USER_POSTGRES}"
|
||||
- "POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}"
|
||||
- "POSTGRES_DB=${POSTGRES_DB:-litellm}"
|
||||
- "OPENAI_API_KEY=${OPENAI_API_KEY}"
|
||||
- "OPENAI_API_BASE=${OPENAI_API_BASE}"
|
||||
- "ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}"
|
||||
- "ANTHROPIC_API_BASE=${ANTHROPIC_API_BASE}"
|
||||
- "VOYAGE_API_KEY=${VOYAGE_API_KEY}"
|
||||
- "VOYAGE_API_BASE=${VOYAGE_API_BASE}"
|
||||
volumes:
|
||||
- "./litellm-config.yaml:/app/config.yaml"
|
||||
- type: bind
|
||||
source: ./docker/app/config.yaml
|
||||
target: /app/config.yaml
|
||||
content: |
|
||||
general_settings:
|
||||
proxy_batch_write_at: 60
|
||||
|
||||
router_settings:
|
||||
routing_strategy: usage-based-routing-v2
|
||||
redis_host: os.environ/REDIS_HOST
|
||||
redis_port: os.environ/REDIS_PORT
|
||||
redis_password: os.environ/REDIS_PASSWORD
|
||||
enable_pre_call_check: true
|
||||
|
||||
litellm_settings:
|
||||
set_verbose: false
|
||||
json_logs: true
|
||||
log_raw_request_response: true
|
||||
# turn_off_message_logging: false
|
||||
# redact_user_api_key_info: false
|
||||
drop_params: true
|
||||
# max_budget: 100
|
||||
# budget_duration: 30d
|
||||
num_retries: 3
|
||||
request_timeout: 600
|
||||
telemetry: false
|
||||
cache: true
|
||||
cache_params:
|
||||
type: redis
|
||||
host: os.environ/REDIS_HOST
|
||||
port: os.environ/REDIS_PORT
|
||||
password: os.environ/REDIS_PASSWORD
|
||||
namespace: "litellm_cache"
|
||||
ttl: 600
|
||||
# success_callback:
|
||||
# - "langfuse"
|
||||
# - "prometheus"
|
||||
# failure_callback:
|
||||
# - "langfuse"
|
||||
# - "prometheus"
|
||||
model_list:
|
||||
# OpenAI
|
||||
- model_name: gpt-3.5-turbo
|
||||
litellm_params:
|
||||
model: openai/gpt-3.5-turbo
|
||||
api_key: os.environ/OPENAI_API_KEY
|
||||
api_base: os.environ/OPENAI_API_BASE
|
||||
- model_name: gpt-4
|
||||
litellm_params:
|
||||
model: openai/gpt-4
|
||||
api_key: os.environ/OPENAI_API_KEY
|
||||
api_base: os.environ/OPENAI_API_BASE
|
||||
- model_name: gpt-4o
|
||||
litellm_params:
|
||||
model: openai/gpt-4o
|
||||
api_key: os.environ/OPENAI_API_KEY
|
||||
api_base: os.environ/OPENAI_API_BASE
|
||||
- model_name: gpt-4o-mini
|
||||
litellm_params:
|
||||
model: openai/gpt-4o-mini
|
||||
api_key: os.environ/OPENAI_API_KEY
|
||||
api_base: os.environ/OPENAI_API_BASE
|
||||
# Anthropic
|
||||
- model_name: claude-3-haiku
|
||||
litellm_params:
|
||||
model: claude-3-haiku-20240307
|
||||
api_key: "os.environ/ANTHROPIC_API_KEY"
|
||||
api_base: "os.environ/ANTHROPIC_API_BASE"
|
||||
- model_name: claude-3.5-sonnet
|
||||
litellm_params:
|
||||
model: claude-3-5-sonnet-20240620
|
||||
api_key: "os.environ/ANTHROPIC_API_KEY"
|
||||
api_base: "os.environ/ANTHROPIC_API_BASE"
|
||||
# VoyageAI
|
||||
- model_name: voyage-law-2
|
||||
model_info:
|
||||
output_vector_size: 1024
|
||||
litellm_params:
|
||||
model: voyage/voyage-law-2
|
||||
api_key: "os.environ/VOYAGE_API_KEY"
|
||||
api_base: "os.environ/VOYAGE_API_BASE"
|
||||
rpm: 300
|
||||
tpm: 1000000
|
||||
- model_name: voyage-multilingual-2
|
||||
model_info:
|
||||
mode: embedding
|
||||
max_tokens: 32000
|
||||
max_input_tokens: 32000
|
||||
output_vector_size: 1024
|
||||
litellm_params:
|
||||
model: voyage/voyage-multilingual-2
|
||||
api_key: "os.environ/VOYAGE_API_KEY"
|
||||
api_base: "os.environ/VOYAGE_API_BASE"
|
||||
input_cost_per_token: 0.00000012
|
||||
output_cost_per_token: 0
|
||||
rpm: 300
|
||||
tpm: 1000000
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- python
|
||||
- "-c"
|
||||
- "import requests as r;r.get('http://127.0.0.1:4000/health/liveliness').raise_for_status()"
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
command:
|
||||
- "--config"
|
||||
- /app/config.yaml
|
||||
- "--port"
|
||||
- "4000"
|
||||
- "--num_workers"
|
||||
- "8"
|
||||
postgres:
|
||||
image: "postgres:16-alpine"
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DB:-litellm}
|
||||
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
||||
- POSTGRES_USER=$SERVICE_USER_POSTGRES
|
||||
volumes:
|
||||
- "pg-data:/var/lib/postgresql/data"
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- "pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
command: redis-server --appendonly yes
|
||||
volumes:
|
||||
- redis-data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 3
|
Reference in New Issue
Block a user