Initial commit: 炼妖壶 (Lianyaohu) - 稷下学宫AI辩论系统
- 🏛️ 稷下学宫八仙论道AI辩论系统 - 🌍 天下体系资本生态分析 - 🔒 安全配置管理 (Doppler集成) - 📊 RapidAPI永动机数据引擎 - 🎨 Streamlit现代化界面 - ✅ 清理所有敏感信息泄露
This commit is contained in:
117
internal/setup/CLAUDE_ACTION_SETUP.md
Normal file
117
internal/setup/CLAUDE_ACTION_SETUP.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# 炼妖壶Claude Code Action配置指南
|
||||
|
||||
## ✅ 已完成
|
||||
- [x] 创建了 `.github/workflows/claude.yml`
|
||||
- [x] 配置了炼妖壶专用的系统提示
|
||||
- [x] 支持多种触发词:`@claude`、`@太公`、`@八仙`
|
||||
|
||||
## 🔧 需要完成的配置
|
||||
|
||||
### 1. 设置GitHub Secrets
|
||||
|
||||
在你的GitHub仓库中添加API密钥:
|
||||
|
||||
#### 方法A: 使用Anthropic API Key (推荐)
|
||||
1. 访问:https://github.com/your-username/cauldron/settings/secrets/actions
|
||||
2. 点击 "New repository secret"
|
||||
3. 添加:
|
||||
- **Name**: `ANTHROPIC_API_KEY`
|
||||
- **Value**: 你的Anthropic API密钥
|
||||
|
||||
#### 方法B: 使用Claude Code OAuth Token (Pro/Max用户)
|
||||
如果你有Claude Pro或Max账户:
|
||||
```bash
|
||||
# 在本地运行
|
||||
claude setup-token
|
||||
```
|
||||
然后添加secret:
|
||||
- **Name**: `CLAUDE_CODE_OAUTH_TOKEN`
|
||||
- **Value**: 生成的OAuth token
|
||||
|
||||
### 2. 安装Claude GitHub App (如果还没安装)
|
||||
|
||||
1. 访问:https://github.com/apps/claude
|
||||
2. 点击 "Install"
|
||||
3. 选择你的仓库或组织
|
||||
4. 授权必要的权限
|
||||
|
||||
### 3. 测试配置
|
||||
|
||||
配置完成后,在任何Issue或PR中评论:
|
||||
|
||||
```
|
||||
@claude 你好!请介绍一下炼妖壶项目的架构
|
||||
```
|
||||
|
||||
或者:
|
||||
|
||||
```
|
||||
@太公 请分析一下当前的心易系统设计
|
||||
```
|
||||
|
||||
或者:
|
||||
|
||||
```
|
||||
@八仙 帮我优化一下辩论系统的逻辑
|
||||
```
|
||||
|
||||
## 🎯 使用场景
|
||||
|
||||
### 代码审查
|
||||
在PR中评论:
|
||||
```
|
||||
@claude 请审查这个MCP管理器的实现,关注安全性和性能
|
||||
```
|
||||
|
||||
### 功能实现
|
||||
在Issue中评论:
|
||||
```
|
||||
@claude 帮我实现一个新的Yahoo Finance数据获取功能
|
||||
```
|
||||
|
||||
### 架构讨论
|
||||
```
|
||||
@太公 如何优化当前的金融数据分析流程?
|
||||
```
|
||||
|
||||
### 调试帮助
|
||||
```
|
||||
@claude 这个错误是什么原因:[粘贴错误信息]
|
||||
```
|
||||
|
||||
## 🔍 高级配置
|
||||
|
||||
### 自定义触发词
|
||||
如果你想添加更多触发词,编辑 `.github/workflows/claude.yml` 中的条件:
|
||||
|
||||
```yaml
|
||||
if: contains(github.event.comment.body, '@claude') ||
|
||||
contains(github.event.comment.body, '@太公') ||
|
||||
contains(github.event.comment.body, '@八仙') ||
|
||||
contains(github.event.comment.body, '@炼妖')
|
||||
```
|
||||
|
||||
### 模型配置
|
||||
可以在workflow中调整:
|
||||
- `model`: 选择不同的Claude模型
|
||||
- `max-tokens`: 调整响应长度
|
||||
- `system-prompt`: 自定义AI行为
|
||||
|
||||
## 🚨 注意事项
|
||||
|
||||
1. **API费用**: Claude Code Action会消耗你的Anthropic API配额
|
||||
2. **权限**: 确保GitHub App有足够的权限操作仓库
|
||||
3. **安全**: 不要在公开评论中包含敏感信息
|
||||
4. **频率**: 避免过于频繁的调用
|
||||
|
||||
## 🎉 完成后的效果
|
||||
|
||||
配置成功后,你将拥有:
|
||||
- 🤖 **智能代码助手**: 直接在GitHub中获得AI帮助
|
||||
- 🔍 **自动代码审查**: PR中的智能建议
|
||||
- 💡 **架构指导**: 针对炼妖壶项目的专业建议
|
||||
- 🚀 **开发加速**: 减少查找文档和调试时间
|
||||
|
||||
---
|
||||
|
||||
配置完成后,在这个Issue中评论 `@claude 测试` 来验证是否工作正常!
|
||||
137
internal/setup/doppler-migration-guide.md
Normal file
137
internal/setup/doppler-migration-guide.md
Normal file
@@ -0,0 +1,137 @@
|
||||
# Doppler密钥管理迁移指南
|
||||
|
||||
## 🎯 为什么用Doppler管理Claude Actions
|
||||
|
||||
### **当前状态**
|
||||
你有GitHub学生套餐 + Doppler Team Plan (到明年7月),这是完美的组合!
|
||||
|
||||
### **优势**
|
||||
- 🔐 **统一密钥管理**:所有API密钥在一个地方
|
||||
- 🌍 **多环境支持**:开发/测试/生产环境隔离
|
||||
- 📊 **安全审计**:密钥访问日志
|
||||
- 🔄 **自动同步**:密钥更新自动推送到所有环境
|
||||
|
||||
## 🔧 迁移步骤
|
||||
|
||||
### **1. 在Doppler中组织密钥**
|
||||
|
||||
#### **项目结构建议**
|
||||
```
|
||||
doppler://cauldron/
|
||||
├── development/
|
||||
│ ├── ANTHROPIC_AUTH_TOKEN
|
||||
│ ├── ANTHROPIC_BASE_URL
|
||||
│ ├── OPENROUTER_API_KEY_1
|
||||
│ └── DATABASE_URL (开发库)
|
||||
├── staging/
|
||||
│ ├── ANTHROPIC_AUTH_TOKEN
|
||||
│ ├── ANTHROPIC_BASE_URL
|
||||
│ └── DATABASE_URL (测试库)
|
||||
└── production/
|
||||
├── ANTHROPIC_AUTH_TOKEN
|
||||
├── ANTHROPIC_BASE_URL
|
||||
└── DATABASE_URL (生产库)
|
||||
```
|
||||
|
||||
### **2. GitHub Actions配置**
|
||||
|
||||
#### **环境变量设置**
|
||||
```yaml
|
||||
# 在GitHub Secrets中只需要这几个Doppler配置
|
||||
DOPPLER_TOKEN: dp.st.xxxx (你的Doppler服务令牌)
|
||||
DOPPLER_PROJECT: cauldron
|
||||
DOPPLER_CONFIG: production # 或 development/staging
|
||||
```
|
||||
|
||||
#### **Workflow中的使用**
|
||||
```yaml
|
||||
- name: Load from Doppler
|
||||
run: doppler secrets download --no-file --format env >> $GITHUB_ENV
|
||||
env:
|
||||
DOPPLER_TOKEN: ${{ secrets.DOPPLER_TOKEN }}
|
||||
```
|
||||
|
||||
### **3. 本地开发配置**
|
||||
|
||||
#### **安装Doppler CLI**
|
||||
```bash
|
||||
# macOS
|
||||
brew install dopplerhq/cli/doppler
|
||||
|
||||
# 登录
|
||||
doppler login
|
||||
|
||||
# 设置项目
|
||||
doppler setup --project cauldron --config development
|
||||
```
|
||||
|
||||
#### **本地使用**
|
||||
```bash
|
||||
# 运行应用时自动加载密钥
|
||||
doppler run -- python app.py
|
||||
|
||||
# 或者导出到.env文件
|
||||
doppler secrets download --no-file --format env > .env
|
||||
```
|
||||
|
||||
## 🚀 高级功能
|
||||
|
||||
### **1. 密钥轮换**
|
||||
```bash
|
||||
# 更新API密钥
|
||||
doppler secrets set ANTHROPIC_AUTH_TOKEN=new-token
|
||||
|
||||
# 自动同步到所有环境
|
||||
```
|
||||
|
||||
### **2. 团队协作**
|
||||
```bash
|
||||
# 邀请团队成员
|
||||
doppler team invite user@example.com
|
||||
|
||||
# 设置权限
|
||||
doppler team update user@example.com --role developer
|
||||
```
|
||||
|
||||
### **3. 审计日志**
|
||||
- 📊 **访问记录**:谁在什么时候访问了哪个密钥
|
||||
- 🔄 **变更历史**:密钥的修改历史
|
||||
- 🚨 **异常告警**:异常访问模式检测
|
||||
|
||||
## 💰 成本优化
|
||||
|
||||
### **学生套餐期间 (到明年7月)**
|
||||
- ✅ **免费使用所有功能**
|
||||
- ✅ **团队协作功能**
|
||||
- ✅ **无限密钥存储**
|
||||
|
||||
### **毕业后的选择**
|
||||
1. **个人版** ($5/月):个人项目足够
|
||||
2. **开源项目**:申请免费额度
|
||||
3. **迁移到其他方案**:GitHub Secrets + 自建方案
|
||||
|
||||
## 🎯 推荐配置
|
||||
|
||||
### **当前阶段**
|
||||
```yaml
|
||||
环境配置:
|
||||
- development: 本地开发
|
||||
- staging: GitHub Actions测试
|
||||
- production: 生产部署
|
||||
|
||||
密钥分类:
|
||||
- AI服务: ANTHROPIC_*, OPENROUTER_*
|
||||
- 数据库: DATABASE_URL, ZILLIZ_*
|
||||
- 社交媒体: MASTODON_*
|
||||
- 监控: DOPPLER_*
|
||||
```
|
||||
|
||||
### **最佳实践**
|
||||
- 🔐 **最小权限原则**:每个环境只访问必要的密钥
|
||||
- 🔄 **定期轮换**:重要密钥定期更新
|
||||
- 📊 **监控使用**:定期检查访问日志
|
||||
- 🚨 **异常告警**:设置异常访问告警
|
||||
|
||||
---
|
||||
|
||||
**总结:充分利用你的学生福利,用Doppler构建企业级的密钥管理体系!** 🎓✨
|
||||
236
internal/setup/env_standardization_plan.md
Normal file
236
internal/setup/env_standardization_plan.md
Normal file
@@ -0,0 +1,236 @@
|
||||
# 炼妖壶环境变量标准化方案
|
||||
|
||||
## 🎯 命名规范
|
||||
|
||||
### **标准格式**
|
||||
```
|
||||
{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完美同步**
|
||||
Reference in New Issue
Block a user