feat(ui): 添加AI协作页签
新增AI协作功能模块,并在主界面中添加了对应的页签。 更新了OpenBB集成文档的路径,将其从单独的Markdown文件迁移到目录结构中。 为项目添加了新的测试依赖,包括pytest相关工具、locust和memory-profiler等。
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# OpenBB 集成指南(迁移版)
|
||||
|
||||
本页介绍 OpenBB v4 在本项目中的安装、配置、代码结构、回退机制、开发与测试、典型问题与后续计划。
|
||||
|
||||
## 1. 为什么选择 OpenBB v4
|
||||
- 统一的路由接口:`from openbb import obb`
|
||||
- 多数据提供商聚合(如 yfinance、polygon、fmp 等)
|
||||
- 返回对象支持 `.results` 或 `.to_df()`,便于统一处理
|
||||
|
||||
## 2. 安装与环境准备
|
||||
默认未安装 OpenBB(requirements.txt 中为可选依赖)。如需启用:
|
||||
|
||||
```bash
|
||||
pip install "openbb>=4.1.0"
|
||||
```
|
||||
|
||||
若你使用的是国内网络,建议配置合适的 PyPI 镜像或使用代理。
|
||||
|
||||
## 3. 配置说明
|
||||
无需额外配置即可使用 `provider='yfinance'` 的公共数据。若你有付费数据源(如 polygon),可通过环境变量或 OpenBB 的 provider 配置进行设置。
|
||||
|
||||
## 4. 代码结构与调用方式
|
||||
- Streamlit UI: `app/tabs/openbb_tab.py`
|
||||
- 自动检测 OpenBB 是否可用;若不可用则使用演示数据或合成数据
|
||||
- 优先路由:`obb.equity.price.historical`,ETF 回退至 `obb.etf.price.historical`
|
||||
- 引擎模块: `src/jixia/engines/openbb_engine.py`
|
||||
- 延迟导入 OpenBB:首次调用时 `from openbb import obb`
|
||||
- 对 `.results` / `.to_df()` / `.to_dataframe()` 做兼容处理
|
||||
- 辅助脚本: `src/jixia/engines/openbb_stock_data.py`
|
||||
- 延迟导入 `obb`
|
||||
- ETF 历史数据路径更新为 `obb.etf.price.historical`
|
||||
|
||||
## 5. 回退机制
|
||||
- UI 层(OpenBB Tab)
|
||||
- 未安装 OpenBB 或请求失败:读取 `examples/data/*.json` 的演示数据;仍失败则生成合成数据
|
||||
- 引擎层
|
||||
- 若未安装 OpenBB:返回 `success=False`,带错误消息,不影响其他功能
|
||||
|
||||
## 6. 开发与测试
|
||||
- 单元测试建议:
|
||||
- 未安装 OpenBB 时,`_load_price_data` 能返回演示/合成数据
|
||||
- 已安装 OpenBB 时,能通过 `obb.equity.price.historical` 获取 DataFrame
|
||||
- 在本仓库中新增了占位测试:`tests/test_openbb_fallback.py`
|
||||
|
||||
## 7. 典型问题排查
|
||||
- ImportError: No module named 'openbb'
|
||||
- 未安装 OpenBB;按第2节安装。
|
||||
- 返回空数据
|
||||
- 检查 symbol 是否正确;尝试更换 provider 或缩短时间窗口。
|
||||
- 列名/索引不匹配
|
||||
- UI 中已对常见列/索引做了规范化处理;如仍异常,可打印原始 DataFrame 排查。
|
||||
|
||||
## 8. 后续计划
|
||||
- 接入更多 OpenBB 路由(基本面、新闻、财报、因子)
|
||||
- 与辩论系统结果联动,生成投资洞察卡片
|
||||
- 支持用户自定义 provider 优先级与兜底策略
|
||||
@@ -0,0 +1,10 @@
|
||||
# 核心引擎实现(Claude 输出)
|
||||
|
||||
- 延迟导入 OpenBB
|
||||
- 统一结果转 DataFrame
|
||||
- 列/索引规范化与时间窗口裁剪
|
||||
- 失败时不影响其他功能(返回 success=False 或进入兜底路径)
|
||||
|
||||
参考代码位置:
|
||||
- `src/jixia/engines/openbb_engine.py`
|
||||
- `src/jixia/engines/openbb_stock_data.py`
|
||||
@@ -0,0 +1,8 @@
|
||||
# 故障排查指南
|
||||
|
||||
常见问题与解决方案:
|
||||
- ImportError: No module named 'openbb' → 安装 `openbb>=4.1.0`
|
||||
- 返回空数据 → 检查 symbol,尝试其他 provider 或缩短时间窗口
|
||||
- 列名/索引不匹配 → 打印原始 DataFrame,参考 UI 中的规范化逻辑
|
||||
|
||||
更多请参考:[api_integration_guide.md](./api_integration_guide.md) 第 7 节。
|
||||
@@ -0,0 +1,6 @@
|
||||
# UI 增强指南
|
||||
|
||||
- 状态提示(OpenBB 可用/不可用)
|
||||
- 动态参数(symbol、时间窗口)
|
||||
- KPI 卡片(最新价、近30日涨幅、最大回撤)
|
||||
- 未来扩展位:基本面、新闻、情绪、宏观等
|
||||
Reference in New Issue
Block a user