liurenchaxin/internal/setup/env_standardization_plan.md

236 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 炼妖壶环境变量标准化方案
## 🎯 命名规范
### **标准格式**
```
{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完美同步**