外观
模块规划
结论
五个模块可以保留,但成熟度不同。Gateway 与 Log 边界较清楚;Task 已有完整生命周期机制,但对外泄露仓储;Project 同时容纳业务流程和旧供应商调用,优先收紧;SMS 已收敛发送能力,配置和业务依赖尚未收敛。
| 模块 | 建议职责 | 主要差距 | 分析 |
|---|---|---|---|
| task | AI 执行任务生命周期、恢复、结果持久化 | 仓储公开,业务侧直接改变任务状态 | 详情 |
| gateway | AI 供应商协议、模型能力、账号路由 | 业务侧引用内部实现;配置来源有例外 | 详情 |
| log | 运行日志格式、上下文、脱敏、输出 | 不能替代审计和业务发送明细 | 详情 |
| project | 项目、节点、生成轮次、交付编排 | 旧调用链与新任务链并存 | 详情 |
| sms | 短信路由、模板适配、发送及明细 | 全局注入、反向依赖 auth、配置跨域 | 详情 |
目标协作关系(建议)
text
项目业务编排 → Task 公开接口 → AI Gateway 公开接口 → AI 供应商
项目业务编排 → 计费公开接口
认证 / 留资 / 告警 → SMS 公开接口 → 短信供应商
Task / Gateway / Project / SMS → Log
Gateway / SMS → 凭证读取接口箭头表示允许的调用方向,不要求每个调用方同时依赖所有下层模块。业务模块不直接引用 Task 仓储或 Gateway 供应商实现。
Task 管执行事实,Project 管项目交付,计费管资金事实;失败后的退款与交付补偿由业务编排协调。共享 Prisma 不等于共享数据所有权。
短信是否放进 Gateway
建议暂不合并。现有 Gateway 使用模型键、执行计划、提交和查询契约,适配 AI 同步/异步执行。短信使用手机号、用途、模板和通道,强行套入模型任务契约会混淆语义。
同一个供应商提供 AI 和短信,不意味着两种适配器必须放在一个模块。可共享的是凭证基础设施、通用传输能力及日志规范,业务路由仍分别归属。
若未来确实要建设全平台集成层,应另行决策其契约及迁移成本;不能只扩张 gateway 名称的含义。
微服务方向
先建立模块化单体:同一部署内限制接口、数据归属和依赖方向。暂不引入远程调用或拆库。独立服务须另有部署、扩容或故障隔离需求。
数据所有权是目标约束,需先盘点跨模块写表再落实。任务结果与项目节点同步存在跨域一致性问题;先明确幂等和补偿,再选择事件或同步调用,不为解耦而直接引入消息队列。
每个模块文档统一包含:定位、已实现、差距、目标能力、迁移与验收。内容增多后再拆成子文档。