# QuantTrading **Repository Path**: yxl/QuantTrading ## Basic Information - **Project Name**: QuantTrading - **Description**: QuantTrading - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2014-02-24 - **Last Updated**: 2026-08-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KP股票智能分析与预测系统 v3.2 基于 **Python PyQt6 + 纯 QPainter 自绘图表 + pandas/numpy** 开发的 A股智能分析与预测 GUI 应用,采用 **MVC 严格分层** 设计。定位为**辅助投资决策的分析研判工具**(非自动交易),核心能力覆盖实时行情、技术指标共振、AI 深度学习预测、基本面分析、龙虎榜、资金流向与历史回测验证。 核心数据源:**马瑞数据 API (鉴权)** + **东方财富公开接口 (情绪/板块/资金流,带熔断/缓存/退避)**,辅以 **新浪/腾讯/AKShare/Tushare Pro** 多源混搭与自动回退。**本地主存储为 SQLite(WAL 单例)**,可选远程 MySQL 仅用于「数据管理页」的备份/恢复与双向迁移。 > **图表渲染说明**:本项目已移除对 `pyqtgraph` 的依赖,全部图表(K 线、均线、MACD、资金流、广度分布等)均为 **纯 `QPainter` 自绘**(`view/native_kline.py` / `view/native_charts.py`),以消除部分显卡驱动下 pyqtgraph 首次绘制触发原生 segfault 的风险。 --- ## 核心功能(10 大页面,按导航顺序) | 序号 | 页面 | 核心能力 | |-----|------|----------| | **0** | **自选个股** | A股实时行情(五档盘口)、自选股管理、纯 QPainter K线图(MA5/10/20/60,鼠标缩放拖动)、股票资料弹窗;**内嵌基本面分析**(估值/财务/研判) | | **1** | **股票预测** | 技术指标 + AI 大模型综合预测;**纯 numpy 深度学习模型**(LSTM / 轻量 Transformer)在**后台线程训练**,不阻塞 UI;K线支持 `ai_summary` 参数注入 AI 解读;内置预测看门狗硬超时 | | **2** | **潜力个股** | 由龙虎榜改造增强:指定交易日上榜个股(原因/净买额/买卖额)、近期上榜统计(游资/机构动向)、板块领涨 → 多维打分 → 权重可调 → AI 摘要,支持导出 | | **3** | **策略回测** | v4.0 全自动流水线:双均线 / MACD / 布林带策略 + **策略自进化(遗传算法)**;可视化参数配置;核心指标输出;CSV 导出 + **自包含 HTML 可视化报告**(资金曲线/回撤图/买卖点/优劣总结,离线可用) | | **4** | **市场情绪** | 涨跌家数/分布/涨跌停统计、大盘资金流、板块实时排行、推荐股票管线(板块领涨个股 → 多维打分 → 权重可调 → AI 摘要) | | **5** | **盯盘监控** | 自选股实时盯盘、关键指标监控(现价/涨跌幅/振幅/量额)、**自定义预警条件**(价格/涨跌幅上下阈值)、触发高亮 + 去重告警日志、刷新频率可调、可暂停/恢复,配置持久化 | | **6** | **系统日志** | 分级日志实时展示、关键字筛选、CSV 导出 | | **7** | **关于我** | 作者信息、系统版本/主题/数据源/落库状态、免责声明,版本胶囊可点击跳转 | | **8** | **数据管理** | 本地 SQLite 数据库概况、导出(Excel/CSV/图片)、本地备份/恢复、**本地 ⇄ 远程 MySQL 双向一键迁移**(含连接测试) | | **9** | **AI模型设置** | 多模型配置(AISettingsManager 单例)、连接测试、运行期热更新;两列布局(标签列 + 输入列)、控件聚焦发光动画;敏感 token 掩码 + XOR+Base64 保护 | > **基本面分析** 作为独立能力内嵌于「自选个股」页(非独立导航页)。 > **定位说明**:本系统为**分析预测辅助工具**,所有回测/预测均为模拟研判,不涉及真实下单或自动交易。`initial_capital`、费率、止损止盈等参数仅用于**回测模拟配置**。 --- ## 数据源架构(多源混搭 + 自动回退 + 缓存分层) 配置文件:`config/settings.ini` → `[DataSources]` | 数据类型 | 优先级链 | 关键特性 | |----------|----------|----------| | **实时行情** | `sina(主,含五档)` → `tencent(qt.gtimg.cn兜底)` → `akshare(兜底)` → `mairui(鉴权)` | Sina 五档真实盘口;腾讯无五档但稳;AKShare 底层爬东财同限流;马瑞鉴权稳 | | **K 线** | `sina` → `akshare` → `mairui` | 日/周/月线;AKShare 成交量「手→股」已转换 | | **涨跌停股池** | `mairui(专属, hslt/ztgc+dtgc)` | 权威、稳定 | | **市场情绪/资金流** | `tushare(优先, daily/涨跌家数/分布/涨跌停计数)` → `eastmoney(兜底)` | Tushare Pro 需 120 积分(已达标);盘中自动回退东财 | | **大盘资金流** | `tushare(moneyflow_mkt_dc, 需 ~2000积分)` → `eastmoney(push2主)` → `eastmoney(push2his备, 不同限流桶)` | 免费真正异源资金流不存在;UI 动态标记来源 | | **板块实时排行** | `eastmoney(仅源,缓存 30s + 熔断)` | 无稳定替代源 | **缓存策略**:实时行情 60s / K 线 300s / 东财 URL 缓存 30s(分布 60s 避免惊群)。 --- ## 技术栈 | 类别 | 技术 / 库 | |------|-----------| | GUI 框架 | **PyQt6** (首选) / PySide6 (兼容回退) | | 图表渲染 | **纯 QPainter 自绘**(`view/native_kline.py` + `view/native_charts.py`),**不依赖 pyqtgraph/matplotlib** | | 数据处理 | **pandas**, **numpy** | | 深度学习预测 | **纯 numpy** 实现的 LSTM / 轻量 Transformer(可真实后台训练) | | AI 大模型 | **agnes** 接口(`model/agnes_client.py` / `model/ai_common.py`),多模型配置见 `config/ai_settings.py` | | 核心数据源 | **马瑞数据 API** (`api.mairuiapi.com`, 需 License) | | 情绪/板块/资金流 | **东方财富公开接口**(`model/eastmoney_facade.py` + 熔断/缓存/退避重试) | | 备选/兜底源 | **新浪财经**(五档)、**腾讯财经** `qt.gtimg.cn`、`AKShare`、`Tushare Pro`(免费 token) | | 本地存储 | **SQLite**(WAL 模式,`model/db_manager.py` 单例,自动建表/优化) | | 远程备份 | **MySQL**(`pymysql`,仅「数据管理页」备份到远程 MySQL / 从 MySQL 恢复时使用) | | 架构模式 | **MVC 严格分层**:`view/` (界面) / `controller/` (调度) / `model/` (数据+策略) / `utils/` (工具) | | 配置管理 | `config/config_loader.py` `ConfigLoader` 全局应用名/版本/默认值;`config/ai_settings.py` AI 模型配置单例 | | 密钥管理 | `model/key_manager.py` 双模式(环境变量 / 配置 / 回退),`model/config_protect.py` XOR+Base64 保护 | | 样式系统 | `config/style.qss` **Design Tokens** 为配色权威:涨红 `#FF5B5B` / 跌绿 `#2ECB70` / 平灰 / 主题蓝 `#5B8DEF`(`view/theme.py` 为单一配色源) | --- ## 目录结构 ``` D:/PythonProject/QuantTrading/ ├── main.py # 程序入口,页面注册顺序 = 导航顺序(共 10 页) ├── requirements.txt # Python 依赖(已移除 pyqtgraph) ├── README.md # 本文件 ├── config/ │ ├── settings.ini # 系统配置(数据源链/缓存/账户/风控/API Key) │ ├── style.qss # 深色量化主题样式表 │ ├── ai_settings.py # AISettingsManager 多模型配置单例(热更新/掩码) │ ├── config_loader.py # ConfigLoader 全局配置 │ └── layout.py # 布局常量 ├── view/ # 界面层 (View, 24 个模块) │ ├── main_window.py # 主窗口、标题栏、导航、堆叠页、实时指数条 │ ├── watchlist_page.py # 自选个股页(行情中心 + 内嵌基本面) │ ├── market_widgets.py # 行情中心复用组件(自选列表/盘口五档/逐笔) │ ├── prediction_page.py # 股票预测页(后台线程 + 看门狗硬超时) │ ├── backtest_page.py # 策略回测页 v4.0(PipelineStepper + 指标卡) │ ├── fundamental_page.py # 基本面分析页(内嵌于自选个股) │ ├── potential_page.py # 潜力个股页(龙虎榜改造增强) │ ├── market_sentiment_page.py # 市场情绪页 │ ├── watch_page.py # 盯盘监控页 │ ├── log_page.py # 系统日志页 │ ├── about_me_page.py # 关于我页 │ ├── data_manage_page.py # 数据管理页(SQLite 概览/导出/备份/MySQL 迁移) │ ├── settings_page.py # AI模型设置页(多模型配置/连接测试/热更新) │ ├── native_kline.py # 纯 QPainter K线组件(替代 pyqtgraph) │ ├── native_charts.py # 纯 QPainter 图表(折线/MACD/图例等) │ ├── kline_window.py # K线弹窗 │ ├── sentiment_panel.py # 市场情绪组件(涨跌家数/广度) │ ├── capital_flow_widget.py # 资金流组件 │ ├── news_summary_widget.py # 新闻摘要组件 │ ├── history_recall_dialog.py # 历史回测回顾弹窗 │ ├── theme.py # 单一配色源(涨红/跌绿/主题蓝) │ ├── ui_runtime.py # GUI 运行时基础设施 v4.0(UiBus/GlobalClock/Debouncer/RefreshGovernor 等) │ └── base_page.py # 页面生命周期基类(当前按鸭子类型调用钩子) ├── controller/ # 控制层 (4 个模块) │ ├── market_controller.py # 行情控制器 │ ├── prediction_controller.py # 预测控制器 │ └── backtest_controller.py # 回测控制器 ├── model/ # 数据与策略层 (27 个模块) │ ├── market_data.py # MarketDataService 统一行情入口 │ ├── market_sentiment_data.py # 市场情绪/资金流/推荐管线 │ ├── mairui_api.py # 马瑞 API 封装 │ ├── tencent_api.py # 腾讯财经 API 封装 │ ├── tushare_api.py # Tushare Pro API 封装 │ ├── eastmoney_facade.py # 东方财富门面(情绪/板块/资金流) │ ├── eastmoney_crawler.py # 东方财富爬虫(个股/股东/概念) │ ├── eastmoney_news.py # 东方财富新闻/资讯 │ ├── news_ai.py # 新闻 AI 摘要 │ ├── predictor.py # 统计基线预测模型 │ ├── predictor_core.py # 预测核心算法 v4.0(日历/钳位/ER/校准) │ ├── dl_predictor.py # 深度学习预测(纯 numpy LSTM/Transformer) │ ├── fundamental_data.py # 基本面数据层(估值/财务/研判) │ ├── dragon_tiger_data.py # 龙虎榜数据层 │ ├── indicators.py # 技术指标计算 │ ├── strategies.py # 策略算法 + 回测引擎 │ ├── strategy_selflearn.py # 策略自进化(遗传算法) │ ├── strategy_assessor.py # 策略自适应评估桥接 │ ├── db_manager.py # DBManager(SQLite WAL 单例,自动建表/优化) │ ├── persistence.py # 本地持久化(AppStore/缓存) │ ├── data_warmup.py # DataWarmupWorker(启动后台预热自选股) │ ├── ai_common.py # AI 大模型通用调用(token/url 保护) │ ├── agnes_client.py # agnes AI 客户端 │ ├── key_manager.py # 双模式密钥管理 │ ├── config_protect.py # 敏感配置 XOR+Base64 保护 │ └── data_models.py # 数据结构定义 ├── utils/ # 工具层 (11 个模块) │ ├── logger_setup.py # 日志系统 │ ├── helpers.py # 通用工具函数 │ ├── data_export.py # 数据导出(Excel/CSV/图片) │ ├── report_export.py # 报告导出 │ ├── db_backup.py # 本地 ⇄ 远程 MySQL 备份恢复 │ ├── backtest_report.py # 回测报告数值格式化 │ ├── render_dashboard.py # 回测仪表盘 HTML 渲染 │ ├── dashboard_locales.py # 回测报告 HTML 多语言文案 │ ├── cell_button.py # 表格内按钮委托 │ └── runtime_path.py # 运行时路径(frozen 判定) ├── data/ # 本地数据缓存 & 日志(SQLite 库文件/日志) ├── tests/ # 测试套件 │ ├── smoke/ # 无头(offscreen)冒烟脚本(4 个) │ └── unit/ # 单元测试(284 项) └── .workbuddy/ # WorkBuddy 项目记忆 └── memory/ ├── MEMORY.md # 项目长期记忆 └── YYYY-MM-DD.md # 每日工作日志 ``` --- ## 快速开始 ### 1. 环境要求 - **Python 3.10+** (项目在 **3.13** 下开发与测试) - **Windows / macOS / Linux**(GUI 需桌面环境;无头测试用 `QT_QPA_PLATFORM=offscreen`) - **MySQL 5.7+**(仅当使用「数据管理页 → 备份到远程 MySQL / 从 MySQL 恢复」时才需要;本地文件备份/恢复不依赖) ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` 核心依赖:`PyQt6` (<6.9,兼容 conda OpenSSL 3.x)、`pandas`、`numpy`、`akshare`、`requests`、`tushare`(可选,需 token)、`openpyxl`(Excel 导出,缺失自动回退 CSV)、`pymysql`(仅远程 MySQL 备份)。 > **Qt 测试环境**:项目在 `D:/anaconda3/python.exe` (Anaconda 环境) 下开发测试,该环境含 `akshare`/`tushare` 等完整依赖;托管 Python 无 PyQt6/Tushare。 ### 3. 配置 API Key (必填项) 编辑 `config/settings.ini`: ```ini [Mairui] licence = YOUR_MAIRUI_LICENCE # https://www.mairui.club 获取 [Tushare] enabled = True token = YOUR_TUSHARE_PRO_TOKEN # https://tushare.pro 注册 -> 个人主页 -> 接口 token ``` - 马瑞 License:实时行情/K线/涨跌停股池 **核心必需** - Tushare Token:涨跌家数/分布/涨跌停计数 **免费 120 积分即可**;大盘资金流需 ~2000 积分 - AI 模型 Key(如 agnes):在「AI模型设置」页配置,支持环境变量覆盖(`KP_AGNES_TOKEN` 等) ### 4. 运行程序 ```bash python main.py ``` --- ## 核心交互与快捷键 | 操作 | 触发方式 | |------|----------| | 刷新行情 | `F5`(已做 1s 节流) | | 导出数据 | `Ctrl+E` | | 查看股票资料 | 行情中心工具栏「查看资料」按钮 / 双击行 | | 切换页面 | 顶部导航栏 / 版本胶囊点击 → 「关于我」 | | 实时指数条 | 标题栏中央 `LiveIndexTicker`(上证/深证/创业/科创,5s 刷新) | | 数据状态/时钟 | 标题栏右侧胶囊 | --- ## 默认配置 (config/settings.ini) | 参数 | 默认值 | 说明 | |------|--------|------| | `initial_capital` | 1,000,000 | 初始资金 (元) | | `commission_rate` | 0.00025 | 手续费率 (万 2.5) | | `stamp_tax_rate` | 0.001 | 印花税 (卖出单边, 千 1) | | `max_single_position_ratio` | 0.30 | 单笔最大仓位 | | `max_daily_loss_limit` | 0.05 | 单日最大亏损 | | `max_position_ratio` | 0.95 | 总仓位上限 | | `default_stop_loss_ratio` | 0.05 | 默认止损 | | `default_take_profit_ratio` | 0.15 | 默认止盈 | | `quote_cache_seconds` | 60 | 实时行情缓存窗口 | | `kline_cache_seconds` | 300 | K线缓存窗口 | **均线配色**:MA5 白 / MA10 金黄 / MA20 紫 / MA60 青 --- ## 关键特性详解 ### 推荐股票管线 (`model/market_sentiment_data.py`) 1. 取板块领涨个股快照 2. `_score_recommendations` 四维打分:情绪 0.30 / 动量 0.30 / 资金 0.25 / 板块 0.15 3. `return_raw=False` 返回排序后列表;`=True` 返回 `(ranked, raw)` 4. UI `_SentimentWorker` 写入 `data["recommended"]` 5. 「情绪推荐个股」区块直接展示情绪驱动下的领涨/潜力标的(已移除「权重试算」模块,推荐列表由模型一次性排序给出) ### 市场广度卡片 (`view/sentiment_panel.py` `AdvanceDeclineWidget`) - `DistributionChart.setFixedHeight(190)` 隔离直方图防重叠 - 下方 5 列统计网格 (标签+数值+占比) + 均值±% 胶囊 - `fetch_advance_decline` 合理性校验:单边 0 家 (`up==0` 或 `down==0`) 判失真 → 降级 (分布推导 / 诚实返回 None,**绝不编造**) ### Tushare Pro 集成细节 - `model/tushare_api.py` `TushareAPI`:`fetch_market_snapshot` (pro.daily)、`fetch_market_fundflow` (pro.moneyflow_mkt_dc) - `_resolve_trade_date()` 用 `trade_cal` 解析最近交易日 (修复周末误判);失败回退「周末→上周五」 - 经典 `get_today_all()` 已失效 → 全部改用 Pro 官方接口 - `available()=True` 但积分不足时各方法返回 `None` 优雅回退东财 ### 本地数据库 SQLite (`model/db_manager.py` `DBManager`) - **v3.1 起从 MySQL 整体迁移至 SQLite**(WAL 模式 + RLock 单例),公有方法签名保持兼容 - 自动建表:`stocks, realtime_quotes, kline_data, predictions, trades, portfolio, recommended_stocks, sentiment_*` 等 - K 线表优化:批量写入 2000 条/批、批量读取、统计聚合、Parquet 导出、旧日归档 - **MySQL 仅用于远程备份/恢复**:`utils/db_backup.py` + `view/data_manage_page.py` 的 MySQL 配置卡,使用 `pymysql`,连接信息持久化到本地 AppStore;本地文件备份/恢复不依赖 MySQL ### 数据预热 (`model/data_warmup.py`) - 启动 1 秒后后台异步拉取自选股实时行情入库(仅取第一只,避免非自选股浪费行情) - 主窗口关闭时安全停止线程(最多等 3 秒);`WatchlistPage.on_hidden()` 须停止刷新定时器 ### 纯 QPainter 图表 (`view/native_kline.py` / `view/native_charts.py`) - 坐标计算必须 `int()` 包裹;`QPainterPath` 用 `addPolygon` 构造;`QPen.setWidth` 只收 int - 画完带 `setBrush` 的形状后须 `p.setBrush(NoBrush)` 清除残留,避免误填充 - 彻底替代 pyqtgraph 的 `PlotWidget` / `MacdChartWidget`,规避部分显卡驱动下首次绘制的原生 segfault --- ## UI 文字约定 - **禁用 Emoji** (PyQt 控件渲染异常) → 用 `▲▼●━◆┄—` 或 `QIcon` - `QTabWidget.setUsesScrollButtons(True)` + 深色箭头样式 - 中文宽度用 `QFontMetrics` 计算固定宽 --- ## 测试与质量 ```bash # === 一键校验(py_compile + unit + 10 页构造 + 运行时深验)=== D:/anaconda3/python.exe scripts/run_ci.py # 注:run_ci.py 为遗留 CI 脚本,若缺失可直接用下面步骤 # === 或逐步骤 === # 1) 单元测试(284 项,需完整依赖环境) pytest -v # 2) GUI 构造冒烟(10 页;pytest.ini 已 --ignore=tests/smoke,需手动跑) QT_QPA_PLATFORM=offscreen python tests/smoke/test_app_construct.py # 3) 三页运行时深验(watchlist/potential/prediction 回调链) QT_QPA_PLATFORM=offscreen python tests/smoke/test_pages_runtime.py # 4) 页面切换稳定性(线程/异常逃逸) QT_QPA_PLATFORM=offscreen python tests/smoke/test_switch_stability.py # 5) 自绘控件构造 QT_QPA_PLATFORM=offscreen python tests/smoke/test_widgets.py ``` - 语法校验:全部源码 `compile()` 通过 - 单元测试:284/284 断言全绿 - 冒烟:10 页构造 + 运行时深验 + 切换稳定性 + 控件构造均通过 > **关于 `tests/smoke/`**:pytest.ini 故意把该目录排除(`addopts = -q --ignore=tests/smoke`)。smoke 测试是 `__main__` 脚本(含真实 Qt 构造),pytest 收集会触发 Qt 线程问题——必须手动 `python tests/smoke/xxx.py` 运行。 --- ## 常见问题 | 现象 | 原因 | 解决 | |------|------|------| | 启动白屏 | 未强制 Fusion 风格 | `main.py` 已强制 `app.setStyle("Fusion")` + 深色调色板兜底 | | 东财限流 429/503 | 高频请求 | 已内置 URL 缓存 30s + 指数退避 + 熔断;盘中自动回退 Tushare | | 周末涨跌家数显示异常 | 休市无实时数据 | `_fallback_advance_decline_sina` 已改为诚实返回 None,面板显示「数据暂不可用」 | | 推荐股票永远为空 | `fetch_all` 缺 `recommended` 字段 | 已修复:正常路径调用 `fetch_recommended_stocks(snap, return_raw=True)` | | Tushare daily 无权限 | 积分 < 120 | 完善个人信息 (改昵称) +20 分 → 120 解锁 | | MySQL 注释修改报错 | `ALTER MODIFY id` 含 PK | 已规避:用 `BIGINT AUTO_INCREMENT`,失败仅 DEBUG | | K线图组件崩溃 | pyqtgraph 在部分显卡 segfault | 已全面替换为纯 QPainter 自绘(`native_kline.py`) | --- ## 版本历史 | 版本 | 日期 | 核心变更 | |------|------|----------| | **v3.2** | 2026-08-07 | **文档与代码同步**:明确 10 页导航(新增数据管理 / AI模型设置);图表渲染改为**纯 QPainter 自绘**(移除 pyqtgraph 依赖);本地主存储确认为 **SQLite (WAL)**(MySQL 仅远程备份);全量中文 docstring 注释(覆盖率 100%);测试扩充至 284 项 + 4 个冒烟脚本 | | **v3.1** | 2026-07-21 | **GUI 体验深化**:EXE 启动默认最大化 + 全功能板块自适应布局;QSS 视觉精修;**DL 预测迁入后台线程**消除训练卡顿;**DB 由 MySQL 迁移至 SQLite (WAL)** | | **v3.0** | 2026-07-21 | **重构定位为「股票智能分析与预测系统」**:品牌/主题/导航重定位;新增**基本面分析**与**龙虎榜**两大页面;新增**纯 numpy 深度学习预测**(LSTM / 轻量 Transformer,可真实训练,已单测);新增报告导出工具(Excel/图片);新增**回测可视化报告生成器**(自包含 HTML,内联 SVG,离线可用);回测参数重定义为模拟配置;无头冒烟测试覆盖 9 页 | | **v2.1** | 2026-07-18~19 | 标题栏重构 + LiveIndexTicker + About Me 页 + 腾讯兜底 + Tushare Pro 接入 + 市场广度修复 + 推荐管线修复 + ConfigLoader 统一驱动 + RiskControl 接入回测 GUI + 应用命名统一 | | v2.0 | 2026-06~07 | MVC 重构、马瑞核心数据源、K线、SQLite 落库、策略回测三大经典策略 | | v1.x | 2026 早期 | 原型阶段,基于 AKShare 单一数据源 | --- ## License MIT License — 仅供学习研究使用,**不构成投资建议**。A股涨红跌绿配色遵循中国市场惯例,与美股相反。所有交易行为均为模拟,不涉及真实资金。 --- ## 致谢 - **马瑞数据** `api.mairuiapi.com` — 稳定鉴权行情/K线/涨跌停接口 - **东方财富** 公开接口 — 情绪/板块/资金流数据源 (配合缓存/熔断使用) - **Tushare Pro** `tushare.pro` — 免费 120 积分解锁盘后涨跌家数/分布/涨跌停计数 - **腾讯财经** `qt.gtimg.cn` — 无 Key 稳定指数/个股行情兜底 - **AKShare** `akshare.xyz` — 开源量化生态兜底 - **新浪财经** `hq.sinajs.cn` — 五档盘口主数据源 - **agnes** AI 接口 — AI 大模型预测/解读能力