Files
DinQuant/backend_api_python/README.md
T
TIANHE f43312a858 creat
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2025-12-29 03:06:49 +08:00

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.