构建了从照片到药品档案的自动化处理流程,通过GLM多模态大模型实现药品信息的智能采集: 核心能力: - 创建任务追踪表 t_medication_recognition_tasks 存储识别任务状态 - 四阶段渐进式分析:基础识别→人群适配→成分解析→风险评估 - 提供三个REST端点支持任务创建、进度查询和结果确认 - 前端可通过轮询方式获取0-100%的实时进度反馈 - VIP用户免费使用,普通用户按次扣费 技术实现: - 利用GLM-4V-Plus模型处理多角度药品图像(正面+侧面+说明书) - 采用GLM-4-Flash模型进行文本深度分析 - 异步任务执行机制避免接口阻塞 - 完整的异常处理和任务失败恢复策略 - 新增AI_RECOGNITION.md文档详细说明集成方式 同步修复: - 修正会员用户AI配额扣减逻辑,避免不必要的次数消耗 - 优化APNs推送中无效设备令牌的检测和清理流程 - 将服药提醒的提前通知时间从15分钟缩短为5分钟
49 lines
2.6 KiB
SQL
49 lines
2.6 KiB
SQL
-- 药物AI识别任务表创建脚本
|
||
-- 用于存储用户上传的药品图片和AI识别过程的状态追踪
|
||
|
||
CREATE TABLE IF NOT EXISTS `t_medication_recognition_tasks` (
|
||
`id` VARCHAR(100) NOT NULL COMMENT '任务唯一标识,格式: task_{userId}_{timestamp}',
|
||
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
|
||
`front_image_url` VARCHAR(500) NOT NULL COMMENT '正面图片URL(必需)',
|
||
`side_image_url` VARCHAR(500) NOT NULL COMMENT '侧面图片URL(必需)',
|
||
`auxiliary_image_url` VARCHAR(500) DEFAULT NULL COMMENT '辅助面图片URL(可选,如说明书)',
|
||
`status` VARCHAR(50) NOT NULL DEFAULT 'pending' COMMENT '识别状态: pending/analyzing_product/analyzing_suitability/analyzing_ingredients/analyzing_effects/completed/failed',
|
||
`current_step` VARCHAR(200) DEFAULT NULL COMMENT '当前步骤描述,用于向用户展示',
|
||
`progress` INT NOT NULL DEFAULT 0 COMMENT '进度百分比(0-100)',
|
||
`recognition_result` TEXT DEFAULT NULL COMMENT '识别结果(JSON格式),包含药品名称、剂型、剂量、适宜人群等完整信息',
|
||
`error_message` TEXT DEFAULT NULL COMMENT '错误信息(仅在status为failed时有值)',
|
||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`completed_at` TIMESTAMP NULL DEFAULT NULL COMMENT '完成时间(成功或失败)',
|
||
PRIMARY KEY (`id`),
|
||
INDEX `idx_user_id` (`user_id`),
|
||
INDEX `idx_status` (`status`),
|
||
INDEX `idx_created_at` (`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='药物AI识别任务表';
|
||
|
||
-- 添加外键约束(可选,如果需要严格的数据完整性)
|
||
-- ALTER TABLE `t_medication_recognition_tasks`
|
||
-- ADD CONSTRAINT `fk_recognition_user_id`
|
||
-- FOREIGN KEY (`user_id`) REFERENCES `t_users`(`id`) ON DELETE CASCADE;
|
||
|
||
-- 示例数据结构说明
|
||
-- recognition_result JSON 格式示例:
|
||
/*
|
||
{
|
||
"name": "阿莫西林胶囊",
|
||
"photoUrl": "https://cdn.example.com/medications/front_001.jpg",
|
||
"form": "capsule",
|
||
"dosageValue": 0.25,
|
||
"dosageUnit": "g",
|
||
"timesPerDay": 3,
|
||
"medicationTimes": ["08:00", "14:00", "20:00"],
|
||
"suitableFor": ["成年人", "细菌感染患者"],
|
||
"unsuitableFor": ["青霉素过敏者", "孕妇", "哺乳期妇女"],
|
||
"mainIngredients": ["阿莫西林"],
|
||
"mainUsage": "用于敏感菌引起的各种感染",
|
||
"sideEffects": ["恶心", "呕吐", "腹泻", "皮疹"],
|
||
"storageAdvice": ["密封保存", "室温避光", "儿童接触不到的地方"],
|
||
"healthAdvice": ["按时服药", "多喝水", "避免饮酒"],
|
||
"confidence": 0.95
|
||
}
|
||
*/ |