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]>
146 lines
4.3 KiB
Bash
Executable File
146 lines
4.3 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
echo "======================================"
|
||
echo "Claude × DeepSeek 系统验证脚本"
|
||
echo "======================================"
|
||
echo ""
|
||
|
||
# 颜色定义
|
||
GREEN='\033[0;32m'
|
||
RED='\033[0;31m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# 验证计数
|
||
PASSED=0
|
||
FAILED=0
|
||
|
||
# 检查函数
|
||
check_file() {
|
||
if [ -f "$1" ]; then
|
||
echo -e "${GREEN}✓${NC} 文件存在: $1"
|
||
((PASSED++))
|
||
else
|
||
echo -e "${RED}✗${NC} 文件缺失: $1"
|
||
((FAILED++))
|
||
fi
|
||
}
|
||
|
||
check_command() {
|
||
if command -v $1 &> /dev/null; then
|
||
echo -e "${GREEN}✓${NC} 命令可用: $1"
|
||
((PASSED++))
|
||
else
|
||
echo -e "${RED}✗${NC} 命令不可用: $1"
|
||
((FAILED++))
|
||
fi
|
||
}
|
||
|
||
# 1. 检查环境
|
||
echo -e "${YELLOW}[1] 检查环境...${NC}"
|
||
check_command docker
|
||
check_command docker-compose
|
||
check_command curl
|
||
echo ""
|
||
|
||
# 2. 检查后端文件
|
||
echo -e "${YELLOW}[2] 检查后端文件...${NC}"
|
||
check_file "/root/work/stock/backend/data/datasource_yahoo.py"
|
||
check_file "/root/work/stock/backend/strategy/deepseek_engine.py"
|
||
check_file "/root/work/stock/backend/advisor/claude_investment_advisor.py"
|
||
check_file "/root/work/stock/backend/routes/claude_deepseek_collab.py"
|
||
check_file "/root/work/stock/backend/utils/prompt_orchestrator.py"
|
||
echo ""
|
||
|
||
# 3. 检查前端文件
|
||
echo -e "${YELLOW}[3] 检查前端文件...${NC}"
|
||
check_file "/root/work/stock/frontend/src/components/ClaudeDeepSeekRecommendation.vue"
|
||
echo ""
|
||
|
||
# 4. 检查测试文件
|
||
echo -e "${YELLOW}[4] 检查测试文件...${NC}"
|
||
check_file "/root/work/stock/backend/tests/test_claude_deepseek_integration.py"
|
||
echo ""
|
||
|
||
# 5. 检查文档
|
||
echo -e "${YELLOW}[5] 检查文档...${NC}"
|
||
check_file "/root/work/stock/CLAUDE_DEEPSEEK_ARCHITECTURE.md"
|
||
check_file "/root/work/stock/DEPLOYMENT_GUIDE.md"
|
||
check_file "/root/work/stock/QUICKSTART_GUIDE.md"
|
||
check_file "/root/work/stock/IMPLEMENTATION_COMPLETE.md"
|
||
echo ""
|
||
|
||
# 6. 检查配置
|
||
echo -e "${YELLOW}[6] 检查配置...${NC}"
|
||
check_file "/root/work/stock/docker-compose.yml"
|
||
check_file "/root/work/stock/backend/main.py"
|
||
echo ""
|
||
|
||
# 7. 检查 Docker 状态
|
||
echo -e "${YELLOW}[7] 检查 Docker 服务...${NC}"
|
||
if docker-compose -f /root/work/stock/docker-compose.yml ps | grep -q "stock_backend"; then
|
||
echo -e "${GREEN}✓${NC} Backend 容器运行中"
|
||
((PASSED++))
|
||
else
|
||
echo -e "${YELLOW}⚠${NC} Backend 容器未运行 (可能需要启动)"
|
||
fi
|
||
|
||
if docker-compose -f /root/work/stock/docker-compose.yml ps | grep -q "stock_frontend"; then
|
||
echo -e "${GREEN}✓${NC} Frontend 容器运行中"
|
||
((PASSED++))
|
||
else
|
||
echo -e "${YELLOW}⚠${NC} Frontend 容器未运行 (可能需要启动)"
|
||
fi
|
||
echo ""
|
||
|
||
# 8. 检查 API 可用性
|
||
echo -e "${YELLOW}[8] 检查 API 可用性...${NC}"
|
||
if curl -s http://localhost:8001/health | grep -q "healthy"; then
|
||
echo -e "${GREEN}✓${NC} API 服务运行中"
|
||
((PASSED++))
|
||
else
|
||
echo -e "${YELLOW}⚠${NC} API 服务未运行或无法访问"
|
||
fi
|
||
|
||
if curl -s http://localhost:8001/api/collab/health | grep -q "operational"; then
|
||
echo -e "${GREEN}✓${NC} Claude × DeepSeek 系统运行中"
|
||
((PASSED++))
|
||
else
|
||
echo -e "${YELLOW}⚠${NC} Claude × DeepSeek 系统无法访问"
|
||
fi
|
||
echo ""
|
||
|
||
# 9. 代码质量检查
|
||
echo -e "${YELLOW}[9] 代码统计...${NC}"
|
||
|
||
# 计算 Python 代码行数
|
||
PYTHON_LINES=$(find /root/work/stock/backend -name "*.py" -path "*/data/*" -o -path "*/strategy/*" -o -path "*/advisor/*" -o -path "*/routes/*" -o -path "*/utils/*" | xargs wc -l 2>/dev/null | tail -1 | awk '{print $1}')
|
||
echo -e "Python 核心代码行数: ${GREEN}${PYTHON_LINES}${NC} 行"
|
||
((PASSED++))
|
||
|
||
# 计算 Vue 代码行数
|
||
VUE_LINES=$(wc -l /root/work/stock/frontend/src/components/ClaudeDeepSeekRecommendation.vue 2>/dev/null | awk '{print $1}')
|
||
echo -e "Vue3 组件代码行数: ${GREEN}${VUE_LINES}${NC} 行"
|
||
((PASSED++))
|
||
|
||
# 计算文档行数
|
||
DOC_LINES=$(wc -l /root/work/stock/*.md 2>/dev/null | tail -1 | awk '{print $1}')
|
||
echo -e "文档总行数: ${GREEN}${DOC_LINES}${NC} 行"
|
||
((PASSED++))
|
||
|
||
echo ""
|
||
|
||
# 最终总结
|
||
echo "======================================"
|
||
echo -e "${GREEN}✓ 通过: ${PASSED}${NC}"
|
||
echo -e "${RED}✗ 失败: ${FAILED}${NC}"
|
||
echo "======================================"
|
||
|
||
if [ $FAILED -eq 0 ]; then
|
||
echo -e "${GREEN}✨ 所有验证通过!系统已准备好使用。${NC}"
|
||
exit 0
|
||
else
|
||
echo -e "${RED}⚠️ 存在 ${FAILED} 个问题需要处理${NC}"
|
||
exit 1
|
||
fi
|