f43312a858
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
4.9 KiB
4.9 KiB
QuantDinger Python API Server
Python 后端服务,提供金融数据获取、技术指标分析、AI 智能体分析和回测功能。
项目结构
backend_api_python/
├── app/ # 应用主目录
│ ├── __init__.py # Flask 应用工厂
│ ├── config/ # 配置模块 ⭐ (支持数据库动态配置)
│ │ ├── __init__.py # 配置统一导出
│ │ ├── settings.py # 服务配置
│ │ ├── api_keys.py # API 密钥集中管理
│ │ ├── database.py # 数据库/Redis/缓存配置
│ │ └── data_sources.py # 数据源配置
│ ├── data_sources/ # 数据源模块
│ │ ├── base.py # 数据源基类
│ │ ├── factory.py # 数据源工厂
│ │ ├── crypto.py # 加密货币 (CCXT)
│ │ ├── us_stock.py # 美股 (yfinance/Finnhub)
│ │ ├── cn_stock.py # A股/港股 (yfinance/akshare)
│ │ └── futures.py # 期货数据源
│ ├── services/ # 业务服务层
│ │ ├── agents/ # AI 智能体系统 (多智能体架构) ⭐
│ │ │ ├── coordinator.py # 智能体协调器
│ │ │ ├── tools.py # 智能体工具集 (含搜索/数据获取)
│ │ │ ├── analyst_agents.py # 各类分析师 (技术/基本面/新闻等)
│ │ │ └── researcher_agents.py # 研究员 (多空辩论)
│ │ ├── kline.py # K线数据服务
│ │ ├── search.py # 搜索服务 (Google/Bing)
│ │ ├── llm.py # LLM 调用封装 (OpenRouter)
│ │ └── analysis.py # 分析服务入口
│ ├── routes/ # API 路由
│ │ ├── health.py # 健康检查
│ │ ├── kline.py # K线数据 API
│ │ ├── analysis.py # AI 分析 API
│ │ └── market.py # 市场数据 API
│ └── utils/ # 工具模块
│ ├── config_loader.py # 数据库配置加载器
│ ├── logger.py # 日志工具
│ └── http.py # HTTP 请求
├── run.py # 入口文件 ⭐
├── gunicorn_config.py # Gunicorn 配置
├── requirements.txt # 依赖列表
├── start.sh # 启动脚本
└── README.md
快速开始
1. 安装依赖
pip install -r requirements.txt
2. 数据库配置
本系统依赖 MySQL 数据库中的 qd_addon_config 表进行配置管理。请确保导入 update_config_search.sql 等 SQL 文件以初始化配置。
3. 启动服务
开发环境:
python run.py
生产环境(使用 Gunicorn):
gunicorn -c gunicorn_config.py "run:app"
服务将在 http://localhost:5000 启动
主要功能
1. 多维度 AI 分析
基于多智能体架构 (Multi-Agent Architecture),模拟真实投研团队:
- 市场分析师: 技术面分析 (K线, MACD, RSI, 均线)
- 基本面分析师: 公司财务、估值、行业地位
- 新闻分析师: 实时新闻、舆情分析 (集成 Finnhub + Google/Bing 搜索)
- 情绪分析师: 市场情绪评估
- 风险分析师: 波动率、流动性风险评估
- 多空辩论: 模拟看涨/看跌研究员辩论,提供平衡观点
2. 数据获取增强
- 美股: 实时行情 (Finnhub/yfinance) + 深度公司资料
- 加密货币: 实时行情 (CCXT/Binance) + 项目资讯搜索
- A股/港股: 延迟行情 + 网络资讯搜索补充
3. 智能搜索集成
支持 Google Custom Search 和 Bing Search,自动补全传统数据源缺失的信息(如公司简介、最新突发新闻)。
API 接口
健康检查
GET /health
K线数据
GET /api/indicator/kline
参数: market (Crypto/USStock/AShare), symbol, timeframe, limit
AI 多维度分析
POST /api/analysis/multi
{
"market": "USStock",
"symbol": "NVDA",
"language": "zh-CN"
}
配置说明
系统配置采用 数据库 + 环境变量 混合模式,支持热更新。
核心环境变量 (启动参数)
| 变量名 | 说明 |
|---|---|
| PYTHON_API_HOST | 监听地址 |
| PYTHON_API_PORT | 监听端口 |
| MYSQL_HOST | MySQL 主机 |
| REDIS_HOST | Redis 主机 |
数据库配置 (qd_addon_config 表)
大部分业务配置已迁移至数据库,支持动态调整:
- API Keys: Finnhub, Google Search, Bing Search
- AI 模型: OpenRouter 模型选择
- 系统参数: 超时时间、重试次数、缓存策略
License
This project is released under the Apache License 2.0.
See the repository root LICENSE for details.