feat(medications): 增强AI药品识别质量控制和多图片支持

- 新增图片可读性预检查机制,识别前先判断图片质量
- 设置置信度阈值为60%,低于阈值自动识别失败
- 支持多图片上传(正面、侧面、辅助图片)提高识别准确度
- 完善识别失败场景的错误分类和用户指导提示
- 新增药品有效期字段支持
- 优化AI提示词,强调安全优先原则
- 更新模型版本为 glm-4.5v 和 glm-4.5-air

数据库变更:
- Medication表新增 sideImageUrl, auxiliaryImageUrl, expiryDate 字段
- DTO层同步支持新增字段的传递和更新

质量控制策略:
- 图片模糊或不可读时直接返回失败
- 无法识别药品名称时主动失败
- 置信度<60%时拒绝识别,建议重新拍摄
- 宁可识别失败也不提供不准确的药品信息
This commit is contained in:
richarjiang
2025-11-21 16:59:36 +08:00
parent a17fe0b965
commit f8fcc81438
7 changed files with 254 additions and 42 deletions

View File

@@ -36,10 +36,24 @@ export class Medication extends Model {
@Column({
type: DataType.STRING(255),
allowNull: true,
comment: '药物照片URL',
comment: '药物正面照片URL',
})
declare photoUrl: string;
@Column({
type: DataType.STRING(255),
allowNull: true,
comment: '药物侧面照片URL',
})
declare sideImageUrl: string;
@Column({
type: DataType.STRING(255),
allowNull: true,
comment: '药物辅助照片URL可选的第三张图片',
})
declare auxiliaryImageUrl: string;
@Column({
type: DataType.STRING(20),
allowNull: false,
@@ -95,7 +109,14 @@ export class Medication extends Model {
allowNull: true,
comment: '结束日期UTC时间',
})
declare endDate: Date;
declare endDate: Date | null;
@Column({
type: DataType.DATE,
allowNull: true,
comment: '药品有效期UTC时间',
})
declare expiryDate: Date | null;
@Column({
type: DataType.TEXT,