系统信息

📎 引用文件

本文引用的文件 - agent/src/api/system_routes.py - agent/src/preflight.py - agent/api_server.py - agent/tests/test_system_routes.py

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能与可用性考虑
  8. 故障排查指南
  9. 结论
  10. 附录:端点清单与使用示例

简介

本文件面向 Vibe-Trading 系统的“系统信息”API,覆盖健康检查、版本信息、依赖检查与环境验证等能力,并说明系统状态监控、资源使用统计与服务发现相关实践。文档同时给出预检流程、依赖验证与兼容性检查的接口说明,提供系统诊断、故障排查与性能监控的使用示例,并补充集群部署中的节点发现与负载均衡配置建议。

项目结构

系统信息相关的功能主要由以下模块构成: - 路由层:FastAPI 路由注册与端点实现(/live、/health、/ready、/api、/correlation、/correlation/regime、/system/shutdown、/skills、/openapi.json、/docs、/redoc) - 启动预检:服务启动时执行环境、依赖与连通性检查 - API 服务器装配:创建 FastAPI 应用、挂载中间件、注册各模块路由,并在生命周期中运行预检

graph TB A["api_server.py<br/>创建FastAPI应用<br/>注册路由"] --> B["system_routes.py<br/>系统信息与健康端点"] A --> C["preflight.py<br/>启动预检与依赖检查"] B --> D["backtest.correlation / regime<br/>相关性计算与状态机"] B --> E["src.providers.*<br/>LLM提供者就绪性检查"] B --> F["src.config.accessor<br/>读取环境变量配置"]

图表来源 - agent/api_server.py:163-171 - agent/src/api/system_routes.py:166-191 - agent/src/preflight.py:265-318

章节来源 - agent/api_server.py:163-171 - agent/src/api/system_routes.py:166-191 - agent/src/preflight.py:265-318

核心组件

章节来源 - agent/src/api/system_routes.py:204-241 - agent/src/api/system_routes.py:243-329 - agent/src/api/system_routes.py:331-376 - agent/src/api/system_routes.py:392-437

架构总览

系统信息API通过 api_server 组装 FastAPI 应用,并在启动生命周期中调用 preflight 进行环境与依赖检查;system_routes 暴露健康、就绪、版本、相关性分析与技能列表等端点,并通过内置限流器与认证机制保障稳定性与安全。

sequenceDiagram participant Client as "客户端" participant Server as "api_server.py" participant Routes as "system_routes.py" participant Preflight as "preflight.py" participant Provider as "LLM提供者" Client->>Server : 启动请求 Server->>Preflight : 运行启动预检 Preflight-->>Server : 检查结果(成功/失败) Server-->>Client : 服务已启动 Client->>Routes : GET /live Routes-->>Client : 200 {status : "healthy", service, timestamp} Client->>Routes : GET /ready Routes->>Provider : 检查配置/凭据(不发起网络) Provider-->>Routes : 就绪/原因 Routes-->>Client : 200 或 503 + detail

图表来源 - agent/api_server.py:127-171 - agent/src/api/system_routes.py:204-241 - agent/src/preflight.py:265-318

详细组件分析

健康与就绪检查

flowchart TD Start(["进入 /ready"]) --> LoadCfg["加载配置<br/>provider/model"] LoadCfg --> CheckOAuth{"是否为 OAuth 提供商?"} CheckOAuth --> |是| VerifyLogin["检查登录状态"] CheckOAuth --> |否| SyncEnv["同步提供商环境变量"] SyncEnv --> HasKey{"是否存在密钥环境变量?"} VerifyLogin --> Ready{"登录有效?"} HasKey --> Ready Ready --> |是| Return200["返回 200 {status:'ready'}"] Ready --> |否| Return503["返回 503 {detail:'原因'}"]

图表来源 - agent/src/api/system_routes.py:111-159 - agent/src/api/system_routes.py:226-241

章节来源 - agent/src/api/system_routes.py:204-241

版本信息与元数据

章节来源 - agent/src/api/system_routes.py:368-376

相关性分析与市场状态

sequenceDiagram participant Client as "客户端" participant Routes as "system_routes.py" participant Limiter as "滑动窗口限流器" participant Corr as "backtest.correlation" participant Regime as "backtest.regime" Client->>Routes : GET /correlation?codes=...&days=...&method=... Routes->>Limiter : allow(client_key) alt 超出限流 Limiter-->>Routes : false Routes-->>Client : 429 else 允许 Limiter-->>Routes : true Routes->>Corr : compute_correlation_matrix(...) Corr-->>Routes : 结果 Routes-->>Client : 200 结果 end Client->>Routes : GET /correlation/regime?codes=...&days=... Routes->>Limiter : allow(client_key) alt 超出限流 Limiter-->>Routes : false Routes-->>Client : 429 else 允许 Limiter-->>Routes : true Routes->>Regime : compute_regime_timeline(...) Regime-->>Routes : 时序结果 Routes-->>Client : 200 结果 end

图表来源 - agent/src/api/system_routes.py:62-98 - agent/src/api/system_routes.py:243-329

章节来源 - agent/src/api/system_routes.py:243-329

技能列表

章节来源 - agent/src/api/system_routes.py:350-366

安全与运维

章节来源 - agent/src/api/system_routes.py:331-348 - agent/src/api/system_routes.py:392-437

启动预检与依赖验证

flowchart TD S(["启动"]) --> Run["run_preflight()"] Run --> Checks["逐项检查:<br/>LLM/OKX/yfinance/Tushare/akshare/ccxt/内容过滤阈值"] Checks --> Table["构建展示表格"] Table --> Critical{"存在关键失败?"} Critical --> |是| Block["提示无法启动并给出修复指引"] Critical --> |否| Continue["继续启动后续流程"]

图表来源 - agent/src/preflight.py:265-318

章节来源 - agent/src/preflight.py:32-253 - agent/src/preflight.py:265-318

依赖关系分析

graph LR AS["api_server.py"] --> SR["system_routes.py"] SR --> CFG["src.config.accessor"] SR --> PROV["src.providers.*"] SR --> CORR["backtest.correlation"] SR --> REG["backtest.regime"] AS --> PREF["preflight.py"]

图表来源 - agent/api_server.py:163-171 - agent/src/api/system_routes.py:166-191 - agent/src/preflight.py:265-318

章节来源 - agent/api_server.py:163-171 - agent/src/api/system_routes.py:166-191 - agent/src/preflight.py:265-318

性能与可用性考虑

章节来源 - agent/src/api/system_routes.py:62-98 - agent/src/api/system_routes.py:243-329 - agent/src/api/system_routes.py:392-437

故障排查指南

章节来源 - agent/src/api/system_routes.py:111-159 - agent/src/api/system_routes.py:243-329 - agent/src/preflight.py:265-318 - agent/tests/test_system_routes.py:60-126

结论

Vibe-Trading 的系统信息API提供了完善的健康与就绪检查、版本元数据、相关性分析与技能发现能力,并通过限流与认证保障稳定性与安全性。启动预检帮助快速定位环境与依赖问题。结合容器编排的健康探针与负载均衡策略,可在集群环境中实现高可用的服务治理。

附录:端点清单与使用示例

使用示例(概念性) - 健康检查:定期轮询 /live 判断进程存活 - 就绪检查:在流量接入前调用 /ready,若 503 则延迟接入 - 版本发现:调用 /api 获取版本与文档入口 - 相关性分析:构造 codes 与 days 参数,观察返回的相关矩阵 - 故障定位:若 /ready 失败,依据 detail 字段定位配置或凭据问题

章节来源 - agent/src/api/system_routes.py:204-376 - agent/tests/test_system_routes.py:46-126