参数必须与文件一起混用时,接口参数设计;服务化的异常体系;
1.参数必须与文件一起混用时,接口参数设计;
之前sam3服务化,接口参数使用的是纯Form body,扩展性非常差,新增一点功能就要修改接口代码。
| 维度 | 纯 Form body | 纯 JSON body | File + JSON Form |
|---|---|---|---|
| Content-Type | multipart/form-data | application/json | multipart/form-data |
| 是否支持文件 | ✅ 原生支持 | ❌ 不支持 | ✅ 原生支持 |
| 参数组织 | 平铺字段 | 结构化对象 | 配置集中在一个 JSON |
| 可扩展性 | ❌ 差(参数爆炸) | ✅ 很强 | ✅ 很强 |
| 推理接口适配度 | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| 工程复杂度 | 低 | 中 | 中(可控) |
| 前端/脚本友好度 | 中 | 高 | 高 |
| 长期维护 | ❌ | ⚠️ | ✅ |
2.服务化的异常体系;
目前我的单个模型服务化设计主要包含以下三个异常结构:
1.Router 层:很多 HTTPException
👉 Router 层本来就是 HTTP 垃圾回收站。
2.Service 层: BusinessError
👉 目前单个模型的业务并不复杂,还未接触到推理超时、显存不足、并发限流、不支持的 task / prompt等方面
后面ai平台可以考虑加入这些东西,对BusinessError加入一些子类,但对于单个模型服务化来说有点过度设计了。
3.Model 层:ModelInferenceError
👉 就是字面意思的模型推理错误。
浙公网安备 33010602011771号