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完美同步** |