# 中控 AI 教练说明

中控 **AI 教练**（`/ai`）与四实例 `/records` 里的 **AI 复盘** 分离：模块在 `manual_trading_hub/hub_ai/`，数据存同目录 JSON。

## 能力

| 功能 | 说明 |
|------|------|
| **交易教练** | 口语化陪聊；注入四户监控快照与今日总结摘要（后台自动生成，不在页面展示） |
| **普通聊天** | 不绑交易数据，适合闲聊、答疑 |
| **会话历史** | 右侧列表：切换、删除；消息一键复制 |

页面仅保留 **交易教练 / 普通聊天** 两个机器人和聊天区；**今日总结** 已移至 **数据看板**（`/dashboard`）纯数据展示，不再在 AI 页生成。

## 存储

与 `hub_settings.json` 同目录（`manual_trading_hub/`）：

- `hub_ai_summaries.json` — 历史总结（供交易教练上下文，可选 API 仍保留）
- `hub_ai_chat.json` — 聊天会话（`active_session_id`、多会话、`bot_mode`）

升级 / 迁移时请一并备份（见 [本地数据迁移到云端.md](./本地数据迁移到云端.md)）。

## 模型配置

在 **`manual_trading_hub/.env`** 配置，**变量名与四实例完全相同**；中控 `hub_ai/client.py` 共用仓库根 `ai_client.py`，**默认也是 OpenAI 兼容网关**（`AI_PROVIDER=openai`），与你在四所 `.env` 里配的那套一致即可。

**推荐（与四实例默认一致）：**

```env
AI_PROVIDER=openai
OPENAI_API_BASE=https://op.bz121.com/v1
OPENAI_API_KEY=你的密钥
OPENAI_MODEL=gemma4:e4b

# 本机 Ollama 备用（仅当 AI_PROVIDER=ollama 时生效）
OLLAMA_API=http://127.0.0.1:11434/api/generate
AI_MODEL=huihui_ai/deepseek-r1-abliterated:latest
```

改走本机无限制模型时，将 `AI_PROVIDER=ollama`，并填好 `OLLAMA_API` / `AI_MODEL`；`OPENAI_*` 可保留不动。

总结与聊天使用**同一模型**（同一套 `OPENAI_MODEL` 或 `AI_MODEL`）；总结 temperature≈0.15，聊天≈0.5。

可选：`TRADING_DAY_RESET_HOUR=8`（与实例一致，定义「今日」交易日）。

## 依赖接口

中控通过 HTTP 拉取各实例：

- `GET /api/hub/monitor`（已有）
- `GET /api/hub/trades/today?trading_day=YYYY-MM-DD`（`hub_bridge` 注册，需四实例更新代码并重启）

子代理 `GET /status` 提供持仓与余额。

## 与实例 AI 复盘的分工

| | 中控 AI 教练 | 实例 AI 复盘 |
|--|-------------|-------------|
| 入口 | `/ai` | 各所 `/records` |
| 数据 | 四户聚合 | 单户 `journal_entries` |
| 语气 | 聊天搭档 | 结构化教练报告 |
| 代码 | `hub_ai/*` | `ai_review_lib` + 各 `app.py` |

详见仓库根 [AI复盘与模型配置说明.md](../AI复盘与模型配置说明.md)（实例侧）。
