Files
ljwx-stock/CLAUDE_DEEPSEEK_ARCHITECTURE.md
brunoandClaude d364268ca4 fix: Register Claude × DeepSeek collaboration routes in main.py
Fixed missing route registration that prevented the /api/collab/* endpoints from being available.
The claude_deepseek_collab module was imported and implemented but not registered in the FastAPI app,
causing 404 errors on all endpoints including health check, recommend, and batch-recommend.

Changes:
- Updated backend/app/routes/__init__.py to export claude_deepseek_collab module
- Updated backend/main.py to import and register the claude_deepseek_collab router
- All endpoints now properly accessible and working with real Alpha Vantage data

Verified endpoints:
✅ /api/collab/health - System health check
✅ /api/collab/recommend - Single stock/forex analysis with Claude + DeepSeek
✅ /api/collab/batch-recommend - Batch analysis for multiple assets
✅ /api/collab/analyze/{symbol} - Technical signal analysis only

Real data sources verified:
✅ AAPL: $275.25 (Alpha Vantage)
✅ EURUSD=X: 1.16 (ExchangeRate API)

🤖 Generated with Claude Code

Co-Authored-By: Claude <[email protected]>
2025-11-12 14:55:38 +01:00

13 KiB
Raw Permalink Blame History

Claude × DeepSeek 协作式智能投顾系统

📋 系统架构概述

这是一个高级的 三层 AI 协作架构,结合了 Claude 4.5 的语言理解能力和 DeepSeek 的本地量化分析能力。

┌─────────────────────────────────────────────────────────────┐
│                     用户请求(前端)                        │
└────────────────────────┬────────────────────────────────────┘
                         │
         ┌───────────────┼───────────────┐
         │               │               │
    ┌────▼────┐    ┌────▼────┐    ┌────▼────┐
    │ 数据层  │    │策略层   │    │ 建议层  │
    │Yahoo   │    │DeepSeek │    │ Claude  │
    │Finance │    │ Ollama  │    │OpenRouter
    └────┬────┘    └────┬────┘    └────┬────┘
         │              │              │
         │ OHLCV 数据   │ 交易信号     │ 投资建议
         │ 技术指标     │ JSON 结果    │ 结构化建议
         │              │              │
         └──────────────┼──────────────┘
                        │
        ┌───────────────▼───────────────┐
        │   Redis 缓存层 (TTL=300s)     │
        └───────────────┬───────────────┘
                        │
        ┌───────────────▼───────────────┐
        │   Vue3 前端组件展示           │
        └───────────────────────────────┘

🏗️ 核心模块

1️⃣ 数据层 (backend/data/datasource_yahoo.py)

职责:获取多市场行情数据,计算技术指标

# 支持的市场
- 美股:AAPL, MSFT, NVDA, TSLA, etc.
- 指数:^GSPC, ^IXIC, ^DJI, ^HSI
- 贵金属:GC=F (黄金), SI=F (白银)
- 外汇:EURUSD=X, GBPUSD=X

# 提供的数据
- get_current_price(symbol)         # 当前价格
- get_historical_data(symbol)       # 历史行情
- get_technical_indicators(symbol)  # 技术指标 (MA, RSI, MACD)
- get_market_snapshot()             # 市场快照

缓存策略:内存缓存,TTL=300 秒


2️⃣ 策略层 (backend/strategy/deepseek_engine.py)

职责:执行本地量化分析,生成客观交易信号

工作流程:

Claude 生成 Prompt
     ↓
DeepSeek (Ollama) 执行分析
     ↓
返回结构化 JSON 信号

分析输出格式:

{
  "signal": "BUY|SELL|HOLD",
  "confidence": 0.75,
  "reason": "MA5 突破 MA20,RSI 处于 45-55 中立区间,MACD 形成金叉",
  "ma_signal": "看涨",
  "rsi_signal": "中立",
  "macd_signal": "看涨",
  "risk_level": "MEDIUM",
  "entry_price": 150.25,
  "stop_loss": 145.00,
  "take_profit": 160.00
}

关键特性:

  • 支持 MA (5/20/50), RSI (14), MACD 等指标
  • 生成置信度评分 (0.0-1.0)
  • 风险等级评估 (LOW/MEDIUM/HIGH)
  • 自动生成关键价位

3️⃣ 建议层 (backend/advisor/claude_investment_advisor.py)

职责:基于 DeepSeek 信号,通过 Claude 生成专业投资建议

核心逻辑:

DeepSeek 信号(数据)
       ↓
Claude 理解和解释
       ↓
生成自然语言建议 + 风险提示

输出格式:

{
  "recommendation": "建议买入",
  "summary": "技术面看涨,量化信号强劲",
  "strategies": {
    "aggressive": {
      "action": "BUY",
      "reason": "追求高收益的投资者可考虑"
    },
    "balanced": {
      "action": "HOLD",
      "reason": "等待更明确的突破信号"
    },
    "conservative": {
      "action": "HOLD",
      "reason": "保本优先的投资者暂不介入"
    }
  },
  "entry_price": 150.25,
  "stop_loss": 145.00,
  "take_profit": 160.00,
  "time_horizon": "medium_term",
  "risks": [
    "市场风险:大盘下跌可能带动下行",
    "技术风险:支撑位 145.00 若被跌破将转弱",
    "外部风险:关注公司财报和行业动向"
  ],
  "confidence": 0.72
}

🔄 完整的协作流程 (API: /api/collab/recommend)

请求

curl -X POST http://localhost:8001/api/collab/recommend \
  -H "Content-Type: application/json" \
  -d '{"symbol": "AAPL"}'

执行流程

Step 1: 数据获取 (100-200ms)
├─ Yahoo Finance 获取当前报价
├─ 计算技术指标 (MA, RSI, MACD)
└─ 缓存数据

Step 2: DeepSeek 量化分析 (3-10 秒)
├─ Claude 生成结构化 Prompt
├─ Ollama 本地执行 DeepSeek 模型
├─ 提取和验证 JSON 结果
└─ 返回交易信号

Step 3: Claude 投资建议 (2-5 秒)
├─ 融合市场背景
├─ 调用 Claude 4.5 (via OpenRouter)
├─ 生成多风格投资建议
└─ 添加风险提示

Step 4: 结果组装和缓存
├─ 组合所有分析结果
├─ 存入 Redis (TTL=300s)
└─ 返回前端展示

响应 (完整示例)

详见 /api/collab/recommend 返回数据


📦 部署和配置

环境要求

- Docker & Docker Compose
- 磁盘空间:至少 60GB (用于 DeepSeek 33B 模型)
- 内存:最少 32GB (推荐 64GB)
- GPU 支持(可选):NVIDIA CUDA 11.8+

快速启动

# 1. 克隆项目
git clone <repo-url>
cd stock

# 2. 配置环境变量
export OPENROUTER_API_KEY="your-key-here"
export TUSHARE_TOKEN="your-token-here"

# 3. 启动服务
docker-compose up -d

# 4. 等待所有服务就绪 (2-3 分钟)
docker-compose ps

# 5. 查看日志
docker-compose logs -f backend

# 6. 验证服务
curl http://localhost:8001/api/collab/health

关键服务端口

服务 端口 用途
Backend API 8001 FastAPI 应用
Frontend 8090 Vue3 Dashboard
Ollama 11434 DeepSeek 模型 API
PostgreSQL 5433 数据库
Redis 6380 缓存
Adminer 8091 数据库管理

Docker Compose 配置说明

ollama:
  image: ollama/ollama:latest
  volumes:
    - ollama_data:/root/.ollama  # 模型持久化
  ports:
    - "11434:11434"
  # 自动下载 DeepSeek 33B 模型 (~33GB)

🚀 API 端点

主推荐端点

POST /api/collab/recommend

生成完整的投资推荐

请求:

{
  "symbol": "AAPL",
  "user_request": "可选的自然语言请求"
}

响应:包含 DeepSeek 信号和 Claude 建议


其他端点

POST /api/collab/analyze/{symbol}

仅获取技术指标和 DeepSeek 交易信号(不生成完整建议)

POST /api/collab/batch-recommend

批量推荐 (最多 10 个符号)

GET /api/collab/market-snapshot

获取市场快照(主要指数和热门资产)

GET /api/collab/health

系统健康检查(检查各组件状态)

POST /api/collab/clear-cache

清空推荐缓存


🎯 使用示例

JavaScript / Fetch API

async function getRecommendation(symbol) {
  const response = await fetch('/api/collab/recommend', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ symbol })
  });

  const data = await response.json();

  console.log('DeepSeek 信号:', data.deepseek_signal);
  console.log('Claude 建议:', data.investment_advice);

  return data;
}

// 使用
getRecommendation('AAPL').then(result => {
  console.log(result);
});

Python

import httpx
import asyncio

async def get_recommendation(symbol: str):
    async with httpx.AsyncClient() as client:
        response = await client.post(
            'http://localhost:8001/api/collab/recommend',
            json={'symbol': symbol}
        )
        return response.json()

# 使用
result = asyncio.run(get_recommendation('MSFT'))
print(result)

🔧 故障排查

问题 1:Ollama 无法连接

# 检查 Ollama 容器状态
docker-compose logs ollama

# 等待模型下载完成 (首次启动可能需要 30+ 分钟)
docker-compose exec ollama ollama list

# 手动拉取模型
docker-compose exec ollama ollama pull deepseek-coder:33b

问题 2:Claude API 调用失败

# 验证 API Key
docker-compose exec backend env | grep OPENROUTER

# 检查网络连接
docker-compose exec backend curl https://openrouter.ai/api/v1/models

# 查看详细日志
docker-compose logs backend | grep "Claude\|OpenRouter"

问题 3:Redis 连接问题

# 检查 Redis 状态
docker-compose exec redis redis-cli ping

# 查看缓存数据
docker-compose exec redis redis-cli -a redis2025 KEYS "*recommend*"

# 清空缓存
docker-compose exec redis redis-cli -a redis2025 FLUSHDB

问题 4:推荐响应缓慢

# 监控 DeepSeek 处理时间
docker-compose logs backend | grep "analyze_technical_indicators"

# 检查 Ollama 模型加载状态
docker-compose exec ollama ollama ps

# 考虑启用 GPU 加速
# 在 docker-compose.yml 中添加 GPU 支持

📊 性能优化建议

1. 本地模型选择

DeepSeek Coder 33B (推荐)
- 大小:~33GB
- 速度:3-8 秒每次分析
- 准确度:高

DeepSeek 7B (轻量)
- 大小:~4GB
- 速度:1-2 秒
- 准确度:中等

2. GPU 加速

# docker-compose.yml 添加
ollama:
  runtime: nvidia
  environment:
    CUDA_VISIBLE_DEVICES: "0"
  # 将分析时间从 5-8 秒降至 1-2 秒

3. 缓存策略

  • 短期缓存(30s):市场快照
  • 中期缓存(300s):个股推荐
  • 长期缓存(3600s):历史指标

4. 批量分析优化

# 使用 batch 端点处理多个符号
POST /api/collab/batch-recommend
{
  "symbols": ["AAPL", "MSFT", "NVDA", "TSLA"]
}
# 并行执行分析,总时间 = max(单个分析时间)

📚 系统架构特点

✅ 完全本地化:DeepSeek 在本地 Ollama 运行,无需上传数据 ✅ 高效协作:Claude 负责理解,DeepSeek 负责计算 ✅ 结构化输出:所有结果均为 JSON,易于集成 ✅ 智能缓存:自动缓存常见查询,减少重复计算 ✅ 风险提示:每个建议都附带详细的风险分析 ✅ 多风格推荐:同时提供激进/平衡/保守三种策略 ✅ 实时更新:支持流式更新市场数据和信号


🔐 安全性考虑

  1. API Key 管理

    • 使用环境变量存储
    • 绝不提交到代码仓库
    • 定期轮换
  2. 数据隐私

    • DeepSeek 在本地执行,数据不离开服务器
    • 只有 Claude 调用需要网络连接
    • 支持离线模式
  3. 访问控制

    • 添加 API 认证层
    • 限制请求频率
    • 监控异常访问

📖 进阶配置

自定义 Prompt

修改 backend/utils/prompt_orchestrator.py 中的 Prompt 模板,以改变 DeepSeek 的分析行为

# 例如:调整技术指标权重
class PromptBuilder:
    @staticmethod
    def build_technical_recommendation_prompt(...):
        # 修改这里的 Prompt

添加新的分析维度

在 backend/strategy/deepseek_engine.py 中添加新方法

async def analyze_custom_metric(self, symbol: str, custom_data: Dict):
    """自定义分析方法"""
    prompt = f"根据以下自定义数据分析 {symbol}..."
    return await self._call_deepseek(prompt)

集成额外数据源

扩展 backend/data/datasource_yahoo.py

class DataSourceIntegration:
    def get_financial_data(self, symbol):
        # 集成 SEC, Bloomberg 等数据源
        pass

📞 技术支持

常见问题

Q: 首次启动要多久? A: 取决于 DeepSeek 模型下载时间(30-120 分钟,网络速度相关)

Q: 可以使用其他本地模型吗? A: 可以,修改 deepseek_engine.py 中的 model_name 参数

Q: 分析结果可信度如何? A: DeepSeek 的 confidence 字段表示模型对该信号的置信度

Q: 支持实时流式数据吗? A: 支持,可以修改 API 返回 Server-Sent Events (SSE)


🎓 学习资源


版本:1.0.0 最后更新:2025-11-12 维护者:AI Investment Advisory Team