Files
model-platform/backend/README.md
T

1.8 KiB

Backend

统一 FastAPI 管理服务。包含用户、Workspace、脚本、稳定版本、调度定义、 立即运行以及 S3 对象接口。原 platform_apistorage_api 已在此 模块合并,外部 REST 契约保持不变。

底层走的是 common.storage.AsyncStorageBackend 抽象,按 settings.storage_backend 切换 s3 / local 两种实现。

A 卡模型运维模块

运维能力作为同一 FastAPI 进程内的独立 bounded context 接入:

  • 平台库继续使用 DATABASE_URL,负责登录、角色和工作空间校验。
  • 运维库使用 OPERATIONS_DATABASE_URL;未配置时自动复用平台库连接信息, 仅将库名切换为 model_operations
  • PLATFORM_READ_DATABASE_URLDEPLOY_DATABASE_URL 使用独立只读 Session;MySQL 事务会显式执行 SET TRANSACTION READ ONLY
  • 两套 SQLAlchemy engine/session factory 完全分离,运维路由只读写 ops_*
  • 当前已落地 P0 ORM,以及模型列表、模型详情、指定月份监控结果三条接口。
  • OPERATIONS_DATA_MODE=mock 时仍走真实鉴权、Workspace校验和API响应, 仅将业务查询替换为后端Mock数据;切换为 database 后读取运维库。
  • Redis作为可选加速层接入:缓存聚合查询并承载通知 Streams;MySQL Outbox仍是可靠事实源,Redis不可用时主接口继续运行。

本地启动:

uv run --package backend --env-file .env uvicorn backend.main:app \
  --host 0.0.0.0 --port 8010 --reload

运维模块探针:

GET /api/v1/operations/health

真实业务接口均需登录 Cookie 和 workspace_id 查询参数:

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>