diff --git a/config/litellm_config.yaml b/config/litellm_config.yaml new file mode 100644 index 0000000..42e63cc --- /dev/null +++ b/config/litellm_config.yaml @@ -0,0 +1,43 @@ + +model_list: + - model_name: deepseek-v4-flash + litellm_params: + model: deepseek-ai/DeepSeek-V4-Flash + api_base: https://api.siliconflow.cn/v1 + api_key: os.environ/SILICONFLOW_API_KEY + rpm: 1000 + tpm: 200000 + - model_name: agnes-2.0-flash + litellm_params: + model: openai/agnes-2.0-flash + api_base: https://ai.qihuapi.com/v1 + api_key: os.environ/AGNES_API_KEY + rpm: 500 + - model_name: mimo-v2.5 + litellm_params: + model: openai/mimo-v2.5 + api_base: https://token-plan-cn.xiaomimimo.com/v1 + api_key: os.environ/MIMO_API_KEY + rpm: 500 + - model_name: qwen3-vl-32b + litellm_params: + model: openai/Qwen3-VL-32B-Instruct + api_base: https://api.siliconflow.cn/v1 + api_key: os.environ/SILICONFLOW_API_KEY + rpm: 300 + +litellm_settings: + drop_params: true + request_timeout: 120 + +general_settings: + master_key: os.environ/LITELLM_MASTER_KEY + +router_settings: + routing_strategy: "usage-based-routing-v2" + allowed_fails: 2 + num_retries: 2 + fallbacks: + - deepseek-v4-flash: ["agnes-2.0-flash"] + - agnes-2.0-flash: ["deepseek-v4-flash"] + - mimo-v2.5: ["deepseek-v4-flash"] diff --git a/docker-compose.yml b/docker-compose.yml index efddc76..d2338fc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -80,8 +80,43 @@ services: max-size: "20m" max-file: "5" + # Phase 0B: LiteLLM Proxy - Unified AI Gateway + litellm: + image: ghcr.io/berriai/litellm:main-stable + container_name: qihu-aiflow-litellm + ports: + - "14000:4000" + volumes: + - ./config/litellm_config.yaml:/app/config.yaml + environment: + - LITELLM_MASTER_KEY=sk-litellm-master-key-aiflow-2026 + - SILICONFLOW_API_KEY=os.environ/SILICONFLOW_API_KEY + - AGNES_API_KEY=os.environ/AGNES_API_KEY + - MIMO_API_KEY=os.environ/MIMO_API_KEY + - DATABASE_URL=postgresql://aiflow:pwd2026@qihu-aiflow-pg18:5432/aiflow + restart: unless-stopped + networks: + - aiflow-network + + # Phase 0C: Meilisearch - Full-text search engine + meilisearch: + image: getmeili/meilisearch:v1.11 + container_name: qihu-aiflow-meilisearch + ports: + - "17700:7700" + volumes: + - meilisearch_data:/meili_data + environment: + - MEILI_MASTER_KEY=meili-master-key-aiflow-2026 + - MEILI_ENV=production + - MEILI_NO_ANALYTICS=true + restart: unless-stopped + networks: + - aiflow-network + volumes: redis_data: + meilisearch_data: networks: aiflow-network: