feat: 配置OpenRouter和RapidAPI密钥管理
- 统一密钥管理:创建 .env 文件集中管理所有API密钥 - 添加 OpenRouter 支持:配置 GPT-4o-mini 和 Claude 3.5 Sonnet 模型 - 添加 RapidAPI 支持:配置数据接入服务的 RapidAPI Key - 修复 LiteLLM Prisma 兼容性:降级到 Prisma 5.8.0 - 修复模型 ID:更正 Claude 模型 ID 为 claude-3.5-sonnet - 优化配置:调整 max_tokens 参数避免超限 - 文档更新:添加环境变量配置说明文档 测试状态: - Claude 3.5 Sonnet: ✅ 正常 - GPT-4o-mini: ✅ 正常 - Data Ingestion: ✅ 正常
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
# taiji-AI-PAD 环境变量配置模板
|
||||||
|
# 复制此文件为 .env 并填写实际的密钥值
|
||||||
|
# cp .env.example .env
|
||||||
|
|
||||||
|
# ========== 数据库配置 ==========
|
||||||
|
POSTGRES_DB=taiji_db
|
||||||
|
POSTGRES_USER=taiji_user
|
||||||
|
POSTGRES_PASSWORD=taiji_pass
|
||||||
|
|
||||||
|
# ========== LiteLLM 网关配置 ==========
|
||||||
|
LITELLM_MASTER_KEY=sk-taiji-master-key
|
||||||
|
|
||||||
|
# ========== OpenRouter 配置 ==========
|
||||||
|
OPENROUTER_API_KEY=your-openrouter-api-key-here
|
||||||
|
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
|
||||||
|
|
||||||
|
# ========== RapidAPI 配置 ==========
|
||||||
|
RAPIDAPI_KEY=your-rapidapi-key-here
|
||||||
|
RAPIDAPI_HOST=rapidapi.com
|
||||||
|
|
||||||
|
# ========== OpenAI 配置(可选)==========
|
||||||
|
# OPENAI_API_KEY=your-openai-api-key-here
|
||||||
|
|
||||||
|
# ========== Anthropic 配置(可选)==========
|
||||||
|
# ANTHROPIC_API_KEY=your-anthropic-api-key-here
|
||||||
|
|
||||||
|
# ========== Langfuse 配置(可选,用于监控)==========
|
||||||
|
# LANGFUSE_PUBLIC_KEY=your-langfuse-public-key
|
||||||
|
# LANGFUSE_SECRET_KEY=your-langfuse-secret-key
|
||||||
|
# LANGFUSE_HOST=https://cloud.langfuse.com
|
||||||
|
|
||||||
|
# ========== 其他服务配置 ==========
|
||||||
|
REDIS_URL=redis://redis:6379
|
||||||
|
NATS_URL=nats://nats:4222
|
||||||
|
DATABASE_URL=postgresql://taiji_user:taiji_pass@postgres:5432/taiji_db
|
||||||
@@ -0,0 +1,166 @@
|
|||||||
|
# taiji-AI-PAD 环境变量配置说明
|
||||||
|
|
||||||
|
## 📋 概述
|
||||||
|
|
||||||
|
为了简化配置管理,所有 API Key 和敏感信息现在统一在 `.env` 文件中管理。您只需要在一个地方填写所有密钥,无需在多个配置文件中重复填写。
|
||||||
|
|
||||||
|
## 🚀 快速开始
|
||||||
|
|
||||||
|
### 1. 创建环境变量文件
|
||||||
|
|
||||||
|
如果项目中没有 `.env` 文件,请复制模板:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 编辑 `.env` 文件
|
||||||
|
|
||||||
|
打开 `.env` 文件,填写您的实际 API Key:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano .env
|
||||||
|
# 或使用您喜欢的编辑器
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 配置项说明
|
||||||
|
|
||||||
|
#### 必需配置项
|
||||||
|
|
||||||
|
| 配置项 | 说明 | 示例 |
|
||||||
|
|--------|------|------|
|
||||||
|
| `OPENROUTER_API_KEY` | OpenRouter API 密钥 | `sk-or-v1-...` |
|
||||||
|
| `RAPIDAPI_KEY` | RapidAPI 密钥 | `33902cc39dmsh...` |
|
||||||
|
| `LITELLM_MASTER_KEY` | LiteLLM 主密钥 | `sk-taiji-master-key` |
|
||||||
|
|
||||||
|
#### 可选配置项
|
||||||
|
|
||||||
|
| 配置项 | 说明 | 何时需要 |
|
||||||
|
|--------|------|----------|
|
||||||
|
| `OPENAI_API_KEY` | OpenAI API 密钥 | 使用 OpenAI 模型时 |
|
||||||
|
| `ANTHROPIC_API_KEY` | Anthropic API 密钥 | 使用 Claude 模型时 |
|
||||||
|
| `LANGFUSE_*` | Langfuse 监控配置 | 启用监控功能时 |
|
||||||
|
|
||||||
|
## 📝 当前配置的密钥位置
|
||||||
|
|
||||||
|
### ✅ 已统一管理的密钥
|
||||||
|
|
||||||
|
以下密钥现在都在 `.env` 文件中:
|
||||||
|
|
||||||
|
1. **OpenRouter API Key** - 用于模型网关
|
||||||
|
2. **RapidAPI Key** - 用于数据接入服务
|
||||||
|
3. **LiteLLM Master Key** - 用于模型网关认证
|
||||||
|
|
||||||
|
### 📍 配置文件位置
|
||||||
|
|
||||||
|
- **`.env`** - 实际环境变量文件(包含真实密钥,已加入 .gitignore)
|
||||||
|
- **`.env.example`** - 配置模板文件(可提交到 Git)
|
||||||
|
- **`docker-compose.yml`** - 使用 `${VAR}` 语法引用环境变量
|
||||||
|
|
||||||
|
## 🔧 如何添加新的 API Key
|
||||||
|
|
||||||
|
### 步骤 1: 在 `.env` 文件中添加
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 在 .env 文件中添加
|
||||||
|
NEW_API_KEY=your-new-api-key-here
|
||||||
|
```
|
||||||
|
|
||||||
|
### 步骤 2: 在 `docker-compose.yml` 中引用
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
your-service:
|
||||||
|
environment:
|
||||||
|
- NEW_API_KEY=${NEW_API_KEY}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 步骤 3: 在代码中读取
|
||||||
|
|
||||||
|
```python
|
||||||
|
import os
|
||||||
|
api_key = os.getenv("NEW_API_KEY", "")
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔒 安全注意事项
|
||||||
|
|
||||||
|
1. **⚠️ 永远不要提交 `.env` 文件到 Git**
|
||||||
|
- `.env` 文件已在 `.gitignore` 中
|
||||||
|
- 只提交 `.env.example` 作为模板
|
||||||
|
|
||||||
|
2. **生产环境建议**
|
||||||
|
- 使用密钥管理服务(如 AWS Secrets Manager)
|
||||||
|
- 使用环境变量注入(如 Kubernetes Secrets)
|
||||||
|
- 定期轮换 API Key
|
||||||
|
|
||||||
|
3. **权限控制**
|
||||||
|
- 确保 `.env` 文件权限为 `600`(仅所有者可读写)
|
||||||
|
```bash
|
||||||
|
chmod 600 .env
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📊 配置项清单
|
||||||
|
|
||||||
|
### 当前已配置的密钥
|
||||||
|
|
||||||
|
- ✅ OpenRouter API Key
|
||||||
|
- ✅ RapidAPI Key
|
||||||
|
- ✅ LiteLLM Master Key
|
||||||
|
|
||||||
|
### 可选配置的密钥
|
||||||
|
|
||||||
|
- ⚪ OpenAI API Key(如需要直接使用 OpenAI)
|
||||||
|
- ⚪ Anthropic API Key(如需要直接使用 Anthropic)
|
||||||
|
- ⚪ Langfuse 监控密钥(如需要启用监控)
|
||||||
|
|
||||||
|
## 🧪 验证配置
|
||||||
|
|
||||||
|
配置完成后,验证环境变量是否正确加载:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 检查环境变量
|
||||||
|
docker-compose config | grep -E "OPENROUTER|RAPIDAPI|LITELLM"
|
||||||
|
|
||||||
|
# 重启服务以应用新配置
|
||||||
|
docker-compose restart litellm-gateway data-ingestion
|
||||||
|
|
||||||
|
# 检查服务健康状态
|
||||||
|
curl http://localhost:4000/health # LiteLLM Gateway
|
||||||
|
curl http://localhost:8001/health # Data Ingestion
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 相关文档
|
||||||
|
|
||||||
|
- [Docker Compose 环境变量文档](https://docs.docker.com/compose/environment-variables/)
|
||||||
|
- [项目 README](../README.md)
|
||||||
|
- [测试准备说明](./测试准备说明.md)
|
||||||
|
|
||||||
|
## ❓ 常见问题
|
||||||
|
|
||||||
|
### Q: 为什么需要 `.env` 文件?
|
||||||
|
|
||||||
|
A: `.env` 文件可以:
|
||||||
|
- 集中管理所有密钥
|
||||||
|
- 避免在代码中硬编码敏感信息
|
||||||
|
- 方便不同环境使用不同配置
|
||||||
|
- 提高安全性(不提交到 Git)
|
||||||
|
|
||||||
|
### Q: 如何在不同环境使用不同配置?
|
||||||
|
|
||||||
|
A: 可以创建多个环境文件:
|
||||||
|
- `.env.development` - 开发环境
|
||||||
|
- `.env.production` - 生产环境
|
||||||
|
- `.env.testing` - 测试环境
|
||||||
|
|
||||||
|
然后使用:
|
||||||
|
```bash
|
||||||
|
docker-compose --env-file .env.production up
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q: 忘记填写某个 Key 会怎样?
|
||||||
|
|
||||||
|
A: 如果某个环境变量未设置,Docker Compose 会使用空字符串或默认值。服务可能会启动失败或功能受限。请检查服务日志:
|
||||||
|
```bash
|
||||||
|
docker-compose logs service-name
|
||||||
|
```
|
||||||
|
|
||||||
+15
-6
@@ -1,5 +1,8 @@
|
|||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|
||||||
|
# Docker Compose 会自动从 .env 文件读取环境变量
|
||||||
|
# 所有 ${VAR} 形式的变量都会从 .env 文件中获取
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# 数据库服务
|
# 数据库服务
|
||||||
postgres:
|
postgres:
|
||||||
@@ -54,9 +57,12 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "4000:4000"
|
- "4000:4000"
|
||||||
environment:
|
environment:
|
||||||
- LITELLM_MASTER_KEY=sk-taiji-master-key
|
- LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY}
|
||||||
- DATABASE_URL=postgresql://taiji_user:taiji_pass@postgres:5432/taiji_db
|
- DATABASE_URL=${DATABASE_URL}
|
||||||
- REDIS_URL=redis://redis:6379
|
- REDIS_URL=${REDIS_URL}
|
||||||
|
# OpenRouter 配置
|
||||||
|
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
||||||
|
- OPENROUTER_BASE_URL=${OPENROUTER_BASE_URL}
|
||||||
volumes:
|
volumes:
|
||||||
- ./services/model-gateway/config:/app/config
|
- ./services/model-gateway/config:/app/config
|
||||||
- ./logs:/app/logs
|
- ./logs:/app/logs
|
||||||
@@ -76,9 +82,12 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "8001:8000"
|
- "8001:8000"
|
||||||
environment:
|
environment:
|
||||||
- DATABASE_URL=postgresql://taiji_user:taiji_pass@postgres:5432/taiji_db
|
- DATABASE_URL=${DATABASE_URL}
|
||||||
- REDIS_URL=redis://redis:6379
|
- REDIS_URL=${REDIS_URL}
|
||||||
- NATS_URL=nats://nats:4222
|
- NATS_URL=${NATS_URL}
|
||||||
|
# RapidAPI 配置
|
||||||
|
- RAPIDAPI_KEY=${RAPIDAPI_KEY}
|
||||||
|
- RAPIDAPI_HOST=${RAPIDAPI_HOST}
|
||||||
volumes:
|
volumes:
|
||||||
- ./services/data-ingestion:/app
|
- ./services/data-ingestion:/app
|
||||||
- ./logs:/app/logs
|
- ./logs:/app/logs
|
||||||
|
|||||||
@@ -19,11 +19,15 @@ WORKDIR /app
|
|||||||
npm config set registry https://registry.npmmirror.com
|
npm config set registry https://registry.npmmirror.com
|
||||||
|
|
||||||
# 安装LiteLLM和prisma (使用国内源)
|
# 安装LiteLLM和prisma (使用国内源)
|
||||||
|
# 注意:Prisma Python 客户端 0.12.0 需要 Prisma CLI 5.8.0
|
||||||
|
# 需要同时安装 Prisma CLI 和 Python 客户端
|
||||||
RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple \
|
RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple \
|
||||||
litellm[proxy]==1.17.0 \
|
litellm[proxy]==1.17.0 \
|
||||||
redis==5.0.1 \
|
redis==5.0.1 \
|
||||||
prometheus-client==0.19.0 && \
|
prometheus-client==0.19.0 \
|
||||||
npm install -g prisma
|
prisma==0.12.0 && \
|
||||||
|
(rm -f /usr/local/bin/prisma || true) && \
|
||||||
|
npm install -g prisma@5.8.0
|
||||||
|
|
||||||
# 复制配置文件
|
# 复制配置文件
|
||||||
COPY config/ ./config/
|
COPY config/ ./config/
|
||||||
|
|||||||
@@ -136,6 +136,71 @@ model_list:
|
|||||||
input_cost_per_token: 0.0 # 本地模型无成本
|
input_cost_per_token: 0.0 # 本地模型无成本
|
||||||
output_cost_per_token: 0.0
|
output_cost_per_token: 0.0
|
||||||
|
|
||||||
|
# OpenRouter 模型组 - 通过 OpenRouter 访问多种模型
|
||||||
|
- model_name: "openrouter-gpt-4"
|
||||||
|
litellm_params:
|
||||||
|
model: "openrouter/openai/gpt-4"
|
||||||
|
api_key: "os.environ/OPENROUTER_API_KEY"
|
||||||
|
api_base: "os.environ/OPENROUTER_BASE_URL"
|
||||||
|
max_tokens: 8000
|
||||||
|
temperature: 0.7
|
||||||
|
model_info:
|
||||||
|
mode: "chat"
|
||||||
|
supports_function_calling: true
|
||||||
|
supports_vision: false
|
||||||
|
max_input_tokens: 8192
|
||||||
|
max_output_tokens: 8192
|
||||||
|
input_cost_per_token: 0.00003
|
||||||
|
output_cost_per_token: 0.00006
|
||||||
|
|
||||||
|
- model_name: "openrouter-gpt-3.5-turbo"
|
||||||
|
litellm_params:
|
||||||
|
model: "openrouter/openai/gpt-3.5-turbo"
|
||||||
|
api_key: "os.environ/OPENROUTER_API_KEY"
|
||||||
|
api_base: "os.environ/OPENROUTER_BASE_URL"
|
||||||
|
max_tokens: 4000
|
||||||
|
temperature: 0.7
|
||||||
|
model_info:
|
||||||
|
mode: "chat"
|
||||||
|
supports_function_calling: true
|
||||||
|
supports_vision: false
|
||||||
|
max_input_tokens: 16385
|
||||||
|
max_output_tokens: 4096
|
||||||
|
input_cost_per_token: 0.0000015
|
||||||
|
output_cost_per_token: 0.000002
|
||||||
|
|
||||||
|
- model_name: "openrouter-claude-3.5-sonnet"
|
||||||
|
litellm_params:
|
||||||
|
model: "openrouter/anthropic/claude-3.5-sonnet"
|
||||||
|
api_key: "os.environ/OPENROUTER_API_KEY"
|
||||||
|
api_base: "os.environ/OPENROUTER_BASE_URL"
|
||||||
|
max_tokens: 4000
|
||||||
|
temperature: 0.7
|
||||||
|
model_info:
|
||||||
|
mode: "chat"
|
||||||
|
supports_function_calling: true
|
||||||
|
supports_vision: true
|
||||||
|
max_input_tokens: 200000
|
||||||
|
max_output_tokens: 4096
|
||||||
|
input_cost_per_token: 0.000003
|
||||||
|
output_cost_per_token: 0.000015
|
||||||
|
|
||||||
|
- model_name: "openrouter-claude-3-opus"
|
||||||
|
litellm_params:
|
||||||
|
model: "openrouter/anthropic/claude-3-opus"
|
||||||
|
api_key: "os.environ/OPENROUTER_API_KEY"
|
||||||
|
api_base: "os.environ/OPENROUTER_BASE_URL"
|
||||||
|
max_tokens: 4000
|
||||||
|
temperature: 0.7
|
||||||
|
model_info:
|
||||||
|
mode: "chat"
|
||||||
|
supports_function_calling: true
|
||||||
|
supports_vision: true
|
||||||
|
max_input_tokens: 200000
|
||||||
|
max_output_tokens: 4096
|
||||||
|
input_cost_per_token: 0.000015
|
||||||
|
output_cost_per_token: 0.000075
|
||||||
|
|
||||||
# 路由器配置
|
# 路由器配置
|
||||||
router_settings:
|
router_settings:
|
||||||
routing_strategy: "least-busy" # 路由策略: least-busy, round-robin, latency-based
|
routing_strategy: "least-busy" # 路由策略: least-busy, round-robin, latency-based
|
||||||
@@ -183,13 +248,24 @@ router_settings:
|
|||||||
weight: 0.3
|
weight: 0.3
|
||||||
- model_name: "claude-3-sonnet"
|
- model_name: "claude-3-sonnet"
|
||||||
weight: 0.3
|
weight: 0.3
|
||||||
|
|
||||||
|
- group_name: "openrouter-group"
|
||||||
|
models:
|
||||||
|
- model_name: "openrouter-gpt-4"
|
||||||
|
weight: 0.3
|
||||||
|
- model_name: "openrouter-gpt-3.5-turbo"
|
||||||
|
weight: 0.3
|
||||||
|
- model_name: "openrouter-claude-3.5-sonnet"
|
||||||
|
weight: 0.25
|
||||||
|
- model_name: "openrouter-claude-3-opus"
|
||||||
|
weight: 0.15
|
||||||
|
|
||||||
# 用户和权限配置
|
# 用户和权限配置
|
||||||
litellm_settings:
|
litellm_settings:
|
||||||
# API密钥管理
|
# API密钥管理
|
||||||
api_keys:
|
api_keys:
|
||||||
- key: "sk-taiji-mcp-server"
|
- key: "sk-taiji-mcp-server"
|
||||||
models: ["gpt-3.5-turbo", "gpt-4", "claude-3-haiku", "claude-3-sonnet"]
|
models: ["gpt-3.5-turbo", "gpt-4", "claude-3-haiku", "claude-3-sonnet", "openrouter-gpt-4", "openrouter-gpt-3.5-turbo", "openrouter-claude-3.5-sonnet"]
|
||||||
max_budget: 100.0
|
max_budget: 100.0
|
||||||
budget_duration: "1d"
|
budget_duration: "1d"
|
||||||
metadata:
|
metadata:
|
||||||
@@ -197,7 +273,7 @@ litellm_settings:
|
|||||||
service: "mcp-server"
|
service: "mcp-server"
|
||||||
|
|
||||||
- key: "sk-taiji-data-ingestion"
|
- key: "sk-taiji-data-ingestion"
|
||||||
models: ["gpt-3.5-turbo", "claude-3-haiku", "llama-3-8b"]
|
models: ["gpt-3.5-turbo", "claude-3-haiku", "llama-3-8b", "openrouter-gpt-3.5-turbo", "openrouter-claude-3.5-sonnet"]
|
||||||
max_budget: 50.0
|
max_budget: 50.0
|
||||||
budget_duration: "1d"
|
budget_duration: "1d"
|
||||||
metadata:
|
metadata:
|
||||||
@@ -205,7 +281,7 @@ litellm_settings:
|
|||||||
service: "data-ingestion"
|
service: "data-ingestion"
|
||||||
|
|
||||||
- key: "sk-taiji-agent-dev"
|
- key: "sk-taiji-agent-dev"
|
||||||
models: ["gpt-3.5-group", "claude-group", "fast-models"]
|
models: ["gpt-3.5-group", "claude-group", "fast-models", "openrouter-group"]
|
||||||
max_budget: 20.0
|
max_budget: 20.0
|
||||||
budget_duration: "1d"
|
budget_duration: "1d"
|
||||||
metadata:
|
metadata:
|
||||||
@@ -213,7 +289,7 @@ litellm_settings:
|
|||||||
service: "agent-development"
|
service: "agent-development"
|
||||||
|
|
||||||
- key: "sk-taiji-premium"
|
- key: "sk-taiji-premium"
|
||||||
models: ["premium-models", "gpt-4-group"]
|
models: ["premium-models", "gpt-4-group", "openrouter-group", "openrouter-gpt-4", "openrouter-claude-3-opus", "openrouter-claude-3.5-sonnet"]
|
||||||
max_budget: 200.0
|
max_budget: 200.0
|
||||||
budget_duration: "1d"
|
budget_duration: "1d"
|
||||||
metadata:
|
metadata:
|
||||||
@@ -278,9 +354,13 @@ error_handling:
|
|||||||
fallback:
|
fallback:
|
||||||
enabled: true
|
enabled: true
|
||||||
fallback_models:
|
fallback_models:
|
||||||
"gpt-4": ["gpt-4-turbo", "claude-3-sonnet"]
|
"gpt-4": ["openrouter-gpt-4", "gpt-4-turbo", "claude-3-sonnet", "openrouter-claude-3-sonnet"]
|
||||||
"claude-3-opus": ["claude-3-sonnet", "gpt-4"]
|
"claude-3-opus": ["openrouter-claude-3-opus", "claude-3-sonnet", "openrouter-claude-3-sonnet", "gpt-4", "openrouter-gpt-4"]
|
||||||
"gpt-3.5-turbo": ["claude-3-haiku", "llama-3-8b"]
|
"gpt-3.5-turbo": ["openrouter-gpt-3.5-turbo", "claude-3-haiku", "llama-3-8b"]
|
||||||
|
"openrouter-gpt-4": ["gpt-4", "gpt-4-turbo", "openrouter-claude-3.5-sonnet"]
|
||||||
|
"openrouter-gpt-3.5-turbo": ["gpt-3.5-turbo", "claude-3-haiku"]
|
||||||
|
"openrouter-claude-3.5-sonnet": ["claude-3-sonnet", "gpt-4", "openrouter-gpt-4"]
|
||||||
|
"openrouter-claude-3-opus": ["claude-3-opus", "claude-3-sonnet", "openrouter-claude-3.5-sonnet"]
|
||||||
|
|
||||||
# 日志配置
|
# 日志配置
|
||||||
logging:
|
logging:
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ general_settings:
|
|||||||
# 安全设置
|
# 安全设置
|
||||||
allowed_ips: ["127.0.0.1", "172.20.0.0/16", "0.0.0.0/0"] # 允许所有IP用于测试
|
allowed_ips: ["127.0.0.1", "172.20.0.0/16", "0.0.0.0/0"] # 允许所有IP用于测试
|
||||||
|
|
||||||
# 模型配置 - 使用测试模型
|
# 模型配置 - 使用测试模型和 OpenRouter
|
||||||
model_list:
|
model_list:
|
||||||
# 使用HuggingFace的免费模型进行测试
|
# 使用HuggingFace的免费模型进行测试
|
||||||
- model_name: "test-model"
|
- model_name: "test-model"
|
||||||
@@ -25,6 +25,43 @@ model_list:
|
|||||||
supports_function_calling: false
|
supports_function_calling: false
|
||||||
supports_vision: false
|
supports_vision: false
|
||||||
|
|
||||||
|
# OpenRouter 模型 - 通过 OpenRouter 访问
|
||||||
|
- model_name: "openrouter-gpt-4o-mini"
|
||||||
|
litellm_params:
|
||||||
|
model: "openrouter/openai/gpt-4o-mini"
|
||||||
|
api_key: "os.environ/OPENROUTER_API_KEY"
|
||||||
|
api_base: "os.environ/OPENROUTER_BASE_URL"
|
||||||
|
max_tokens: 1000
|
||||||
|
temperature: 0.7
|
||||||
|
model_info:
|
||||||
|
mode: "chat"
|
||||||
|
supports_function_calling: true
|
||||||
|
supports_vision: false
|
||||||
|
|
||||||
|
- model_name: "openrouter-gpt-3.5-turbo"
|
||||||
|
litellm_params:
|
||||||
|
model: "openrouter/openai/gpt-3.5-turbo"
|
||||||
|
api_key: "os.environ/OPENROUTER_API_KEY"
|
||||||
|
api_base: "os.environ/OPENROUTER_BASE_URL"
|
||||||
|
max_tokens: 1000
|
||||||
|
temperature: 0.7
|
||||||
|
model_info:
|
||||||
|
mode: "chat"
|
||||||
|
supports_function_calling: true
|
||||||
|
supports_vision: false
|
||||||
|
|
||||||
|
- model_name: "openrouter-claude-3.5-sonnet"
|
||||||
|
litellm_params:
|
||||||
|
model: "openrouter/anthropic/claude-3.5-sonnet"
|
||||||
|
api_key: "os.environ/OPENROUTER_API_KEY"
|
||||||
|
api_base: "os.environ/OPENROUTER_BASE_URL"
|
||||||
|
max_tokens: 4000
|
||||||
|
temperature: 0.7
|
||||||
|
model_info:
|
||||||
|
mode: "chat"
|
||||||
|
supports_function_calling: true
|
||||||
|
supports_vision: true
|
||||||
|
|
||||||
# 路由器配置
|
# 路由器配置
|
||||||
router_settings:
|
router_settings:
|
||||||
routing_strategy: "round-robin"
|
routing_strategy: "round-robin"
|
||||||
@@ -35,7 +72,7 @@ router_settings:
|
|||||||
litellm_settings:
|
litellm_settings:
|
||||||
api_keys:
|
api_keys:
|
||||||
- key: "sk-test-key"
|
- key: "sk-test-key"
|
||||||
models: ["test-model"]
|
models: ["test-model", "openrouter-gpt-4o-mini", "openrouter-gpt-3.5-turbo", "openrouter-claude-3.5-sonnet"]
|
||||||
metadata:
|
metadata:
|
||||||
user_id: "test-user"
|
user_id: "test-user"
|
||||||
service: "testing"
|
service: "testing"
|
||||||
|
|||||||
Reference in New Issue
Block a user