236 lines
6.6 KiB
Markdown
236 lines
6.6 KiB
Markdown
# 炼妖壶环境变量标准化方案
|
||
|
||
## 🎯 命名规范
|
||
|
||
### **标准格式**
|
||
```
|
||
{SERVICE}_{CATEGORY}_{SPECIFIC}
|
||
```
|
||
|
||
### **分类说明**
|
||
- `API_KEY` - API密钥
|
||
- `URL` - 服务地址
|
||
- `TOKEN` - 访问令牌
|
||
- `CONFIG` - 配置参数
|
||
- `DB` - 数据库相关
|
||
|
||
## 📋 需要修改的变量
|
||
|
||
### **AI服务类**
|
||
```bash
|
||
# 当前 → 标准化
|
||
ANTHROPIC_AUTH_TOKEN → ANTHROPIC_API_KEY
|
||
ANTHROPIC_BASE_URL → ANTHROPIC_API_URL
|
||
OPENROUTER_API_KEY_1 → OPENROUTER_API_KEY_PRIMARY
|
||
OPENROUTER_API_KEY_2 → OPENROUTER_API_KEY_SECONDARY
|
||
OPENROUTER_API_KEY_3 → OPENROUTER_API_KEY_TERTIARY
|
||
OPENROUTER_API_KEY_4 → OPENROUTER_API_KEY_QUATERNARY
|
||
HUGGINGFACE_API_TOKEN → HUGGINGFACE_API_KEY
|
||
HF_TOKEN → HUGGINGFACE_TOKEN (保留作为别名)
|
||
```
|
||
|
||
### **数据库类**
|
||
```bash
|
||
# 当前 → 标准化
|
||
DATABASE_URL → POSTGRES_DATABASE_URL
|
||
SUPABASE_URL → SUPABASE_DATABASE_URL
|
||
SUPABASE_ANON_KEY → SUPABASE_API_KEY_ANON
|
||
SUPABASE_SECRET_KEY → SUPABASE_API_KEY_SECRET
|
||
SUPABASE_PUBLISHABLE_KEY → SUPABASE_API_KEY_PUBLIC
|
||
SUPABASE_PERSONAL_TOKEN → SUPABASE_API_TOKEN
|
||
NEON_DB_URL → NEON_DATABASE_URL
|
||
NEON_API → NEON_API_KEY
|
||
```
|
||
|
||
### **向量数据库类**
|
||
```bash
|
||
# 当前 → 标准化
|
||
ZILLIZ_ENDPOINT → ZILLIZ_API_URL
|
||
ZILLIZ_USER → ZILLIZ_USERNAME
|
||
ZILLIZ_PASSWD → ZILLIZ_PASSWORD
|
||
ZILLIZ_TOKEN → ZILLIZ_API_KEY
|
||
ZILLIZ_CLOUD_TOKEN → ZILLIZ_CLOUD_API_KEY
|
||
MILVUS_URI → MILVUS_API_URL
|
||
MILVUS_TOKEN → MILVUS_API_KEY
|
||
```
|
||
|
||
### **金融数据类**
|
||
```bash
|
||
# 当前 → 标准化
|
||
ALPHA_VANTAGE_API → ALPHA_VANTAGE_API_KEY
|
||
RAPIDAPI_KEY → RAPIDAPI_API_KEY
|
||
COINGECKO_PRO_API_KEY → COINGECKO_API_KEY_PRO
|
||
POLYGON_API_KEY → POLYGON_API_KEY (保持不变)
|
||
```
|
||
|
||
### **社交媒体类**
|
||
```bash
|
||
# 当前 → 标准化
|
||
MASTODON_APP_ID → MASTODON_CLIENT_ID
|
||
MASTODON_APP_SECRET → MASTODON_CLIENT_SECRET
|
||
MASTODON_ACCESS_TOKEN → MASTODON_API_TOKEN
|
||
```
|
||
|
||
### **缓存和队列类**
|
||
```bash
|
||
# 当前 → 标准化
|
||
UPSTASH_REDIS_URL → UPSTASH_REDIS_DATABASE_URL
|
||
UPSTASH_REDIS_REST_URL → UPSTASH_REDIS_API_URL
|
||
UPSTASH_REDIS_REST_TOKEN → UPSTASH_REDIS_API_TOKEN
|
||
QSTASH_URL → QSTASH_API_URL
|
||
QSTASH_TOKEN → QSTASH_API_TOKEN
|
||
```
|
||
|
||
### **Interactive Brokers类**
|
||
```bash
|
||
# 当前 → 标准化
|
||
IB_HOST → IBKR_API_HOST
|
||
IB_PORT → IBKR_API_PORT
|
||
IB_CLIENT_ID → IBKR_CLIENT_ID
|
||
IB_TIMEOUT → IBKR_API_TIMEOUT
|
||
IB_RETRY_COUNT → IBKR_API_RETRY_COUNT
|
||
IB_MARKET_DATA_TYPE → IBKR_MARKET_DATA_TYPE
|
||
IB_REQUEST_TIMEOUT → IBKR_REQUEST_TIMEOUT
|
||
```
|
||
|
||
### **其他服务类**
|
||
```bash
|
||
# 当前 → 标准化
|
||
TAVILY_API_KEY → TAVILY_API_KEY (保持不变)
|
||
LANCEDB_API → LANCEDB_API_KEY
|
||
KOREAN_MCP_SERVER_URL → KOREAN_MCP_API_URL
|
||
KOREAN_MCP_API_KEY → KOREAN_MCP_API_KEY (保持不变)
|
||
KOREAN_MCP_TIMEOUT → KOREAN_MCP_API_TIMEOUT
|
||
```
|
||
|
||
## 🔧 项目内部引用修改
|
||
|
||
### **Python代码中的引用**
|
||
```python
|
||
# 需要修改的文件和引用
|
||
src/core/xinyi_api.py:
|
||
- os.getenv('ANTHROPIC_AUTH_TOKEN') → os.getenv('ANTHROPIC_API_KEY')
|
||
- os.getenv('ANTHROPIC_BASE_URL') → os.getenv('ANTHROPIC_API_URL')
|
||
|
||
src/core/enhanced_jixia_academy.py:
|
||
- os.getenv('OPENROUTER_API_KEY_1') → os.getenv('OPENROUTER_API_KEY_PRIMARY')
|
||
|
||
app/services/api_client.py:
|
||
- os.getenv('DATABASE_URL') → os.getenv('POSTGRES_DATABASE_URL')
|
||
|
||
scripts/mcp/yahoo-finance-mcp/server.py:
|
||
- os.getenv('RAPIDAPI_KEY') → os.getenv('RAPIDAPI_API_KEY')
|
||
```
|
||
|
||
### **配置文件中的引用**
|
||
```yaml
|
||
# .github/workflows/claude.yml
|
||
env:
|
||
ANTHROPIC_AUTH_TOKEN: ${{ secrets.ANTHROPIC_API_KEY }}
|
||
ANTHROPIC_BASE_URL: ${{ secrets.ANTHROPIC_API_URL }}
|
||
|
||
# docker-compose.yml
|
||
environment:
|
||
- DATABASE_URL=${POSTGRES_DATABASE_URL}
|
||
- ZILLIZ_TOKEN=${ZILLIZ_API_KEY}
|
||
```
|
||
|
||
### **文档中的引用**
|
||
```markdown
|
||
# README.md, docs/等文件中需要更新
|
||
- ANTHROPIC_AUTH_TOKEN → ANTHROPIC_API_KEY
|
||
- DATABASE_URL → POSTGRES_DATABASE_URL
|
||
```
|
||
|
||
## 📝 注释规范
|
||
|
||
### **分组注释**
|
||
```bash
|
||
# ===========================================
|
||
# AI服务配置
|
||
# ===========================================
|
||
ANTHROPIC_API_KEY=sk-xxx # Claude AI API密钥
|
||
ANTHROPIC_API_URL=https://anyrouter.top # Claude API代理地址
|
||
OPENROUTER_API_KEY_PRIMARY=sk-or-v1-xxx # OpenRouter主要API密钥
|
||
OPENROUTER_API_KEY_SECONDARY=sk-or-v1-xxx # OpenRouter备用API密钥
|
||
|
||
# ===========================================
|
||
# 数据库配置
|
||
# ===========================================
|
||
POSTGRES_DATABASE_URL=postgresql://xxx # 主数据库连接
|
||
SUPABASE_DATABASE_URL=postgresql://xxx # Supabase数据库连接
|
||
SUPABASE_API_KEY_ANON=xxx # Supabase匿名访问密钥
|
||
|
||
# ===========================================
|
||
# 向量数据库配置
|
||
# ===========================================
|
||
ZILLIZ_API_URL=https://xxx # Zilliz向量数据库地址
|
||
ZILLIZ_API_KEY=xxx # Zilliz API密钥
|
||
MILVUS_API_URL=xxx # Milvus向量数据库地址
|
||
|
||
# ===========================================
|
||
# 金融数据API
|
||
# ===========================================
|
||
RAPIDAPI_API_KEY=xxx # RapidAPI统一密钥
|
||
ALPHA_VANTAGE_API_KEY=xxx # Alpha Vantage股票数据
|
||
POLYGON_API_KEY=xxx # Polygon金融数据
|
||
|
||
# ===========================================
|
||
# Interactive Brokers配置
|
||
# ===========================================
|
||
IBKR_API_HOST=127.0.0.1 # IB API主机地址
|
||
IBKR_API_PORT=4002 # IB API端口
|
||
IBKR_CLIENT_ID=1 # IB客户端ID
|
||
```
|
||
|
||
## 🚀 迁移步骤
|
||
|
||
### **Step 1: 备份现有配置**
|
||
```bash
|
||
cp .env .env.backup.$(date +%Y%m%d)
|
||
```
|
||
|
||
### **Step 2: 批量替换**
|
||
```bash
|
||
# 使用sed批量替换
|
||
sed -i.bak 's/ANTHROPIC_AUTH_TOKEN/ANTHROPIC_API_KEY/g' .env
|
||
sed -i.bak 's/ANTHROPIC_BASE_URL/ANTHROPIC_API_URL/g' .env
|
||
# ... 其他替换
|
||
```
|
||
|
||
### **Step 3: 更新代码引用**
|
||
```bash
|
||
# 在所有Python文件中替换
|
||
find . -name "*.py" -exec sed -i.bak 's/ANTHROPIC_AUTH_TOKEN/ANTHROPIC_API_KEY/g' {} \;
|
||
find . -name "*.py" -exec sed -i.bak 's/DATABASE_URL/POSTGRES_DATABASE_URL/g' {} \;
|
||
```
|
||
|
||
### **Step 4: 更新配置文件**
|
||
```bash
|
||
# 更新GitHub Actions
|
||
sed -i.bak 's/ANTHROPIC_AUTH_TOKEN/ANTHROPIC_API_KEY/g' .github/workflows/*.yml
|
||
```
|
||
|
||
### **Step 5: 同步到Doppler**
|
||
```bash
|
||
# 上传标准化后的环境变量
|
||
doppler secrets upload .env
|
||
```
|
||
|
||
## ✅ 验证清单
|
||
|
||
- [ ] 所有环境变量遵循命名规范
|
||
- [ ] 添加了清晰的分组注释
|
||
- [ ] 更新了所有代码引用
|
||
- [ ] 更新了配置文件
|
||
- [ ] 更新了文档
|
||
- [ ] 同步到Doppler
|
||
- [ ] 测试所有功能正常
|
||
|
||
## 🎯 最终效果
|
||
|
||
标准化后的.env文件将具有:
|
||
- 🏷️ **一致的命名规范**
|
||
- 📝 **清晰的分组和注释**
|
||
- 🔍 **易于搜索和维护**
|
||
- 🔄 **与Doppler完美同步** |