Files
model-platform/backend/README.md
T

46 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Backend
统一 FastAPI 管理服务。包含用户、Workspace、脚本、稳定版本、调度定义、
立即运行以及 S3 对象接口。原 `platform_api``storage_api` 已在此
模块合并,外部 REST 契约保持不变。
底层走的是 `common.storage.AsyncStorageBackend` 抽象,按
`settings.storage_backend` 切换 s3 / local 两种实现。
## A 卡模型运维模块
运维能力作为同一 FastAPI 进程内的独立 bounded context 接入:
- 平台库继续使用 `DATABASE_URL`,负责登录、角色和工作空间校验。
- 运维库使用 `OPERATIONS_DATABASE_URL`;未配置时自动复用平台库连接信息,
仅将库名切换为 `model_operations`
- `PLATFORM_READ_DATABASE_URL``DEPLOY_DATABASE_URL` 使用独立只读
SessionMySQL 事务会显式执行 `SET TRANSACTION READ ONLY`
- 两套 SQLAlchemy engine/session factory 完全分离,运维路由只读写 `ops_*`
- 当前已落地 P0 ORM,以及模型列表、模型详情、指定月份监控结果三条接口。
- `OPERATIONS_DATA_MODE=mock` 时仍走真实鉴权、Workspace校验和API响应,
仅将业务查询替换为后端Mock数据;切换为 `database` 后读取运维库。
- Redis作为可选加速层接入:缓存聚合查询并承载通知 Streams;MySQL
Outbox仍是可靠事实源,Redis不可用时主接口继续运行。
本地启动:
```bash
uv run --package backend --env-file .env uvicorn backend.main:app \
--host 0.0.0.0 --port 8010 --reload
```
运维模块探针:
```text
GET /api/v1/operations/health
```
真实业务接口均需登录 Cookie 和 `workspace_id` 查询参数:
```text
GET /api/v1/operations/models?workspace_id=<ULID>
GET /api/v1/operations/models/{model_id}?workspace_id=<ULID>
GET /api/v1/operations/models/{model_id}/monitor-results?month=YYYY-MM&workspace_id=<ULID>
```