liurenchaxin/internal/setup/env_standardization_plan.md

6.6 KiB
Raw Blame History

炼妖壶环境变量标准化方案

🎯 命名规范

标准格式

{SERVICE}_{CATEGORY}_{SPECIFIC}

分类说明

  • API_KEY - API密钥
  • URL - 服务地址
  • TOKEN - 访问令牌
  • CONFIG - 配置参数
  • DB - 数据库相关

📋 需要修改的变量

AI服务类

# 当前 → 标准化
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 (保留作为别名)

数据库类

# 当前 → 标准化
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

向量数据库类

# 当前 → 标准化
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

金融数据类

# 当前 → 标准化
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 (保持不变)

社交媒体类

# 当前 → 标准化
MASTODON_APP_ID → MASTODON_CLIENT_ID
MASTODON_APP_SECRET → MASTODON_CLIENT_SECRET
MASTODON_ACCESS_TOKEN → MASTODON_API_TOKEN

缓存和队列类

# 当前 → 标准化
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类

# 当前 → 标准化
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

其他服务类

# 当前 → 标准化
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代码中的引用

# 需要修改的文件和引用
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')

配置文件中的引用

# .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}

文档中的引用

# README.md, docs/等文件中需要更新
- ANTHROPIC_AUTH_TOKEN → ANTHROPIC_API_KEY
- DATABASE_URL → POSTGRES_DATABASE_URL

📝 注释规范

分组注释

# ===========================================
# 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: 备份现有配置

cp .env .env.backup.$(date +%Y%m%d)

Step 2: 批量替换

# 使用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: 更新代码引用

# 在所有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: 更新配置文件

# 更新GitHub Actions
sed -i.bak 's/ANTHROPIC_AUTH_TOKEN/ANTHROPIC_API_KEY/g' .github/workflows/*.yml

Step 5: 同步到Doppler

# 上传标准化后的环境变量
doppler secrets upload .env

验证清单

  • 所有环境变量遵循命名规范
  • 添加了清晰的分组注释
  • 更新了所有代码引用
  • 更新了配置文件
  • 更新了文档
  • 同步到Doppler
  • 测试所有功能正常

🎯 最终效果

标准化后的.env文件将具有

  • 🏷️ 一致的命名规范
  • 📝 清晰的分组和注释
  • 🔍 易于搜索和维护
  • 🔄 与Doppler完美同步