| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- # OCR配置文件
- # 模型路径
- MODEL_PATH = "/root/autodl-tmp/llm/Qwen3-VL-32B-Instruct"
- # ========== Agent OCR 推理服务配置 ==========
- # 优先读取环境变量(由 start.py 在启动时注入),缺省使用下方默认值
- import os as _os
- # 推理服务 URL
- INFERENCE_URL = _os.environ.get(
- "INFERENCE_URL",
- "http://10.69.29.202:31277/inference-api/exp-api/inf-1480928240416935936/v1/chat/completions"
- )
- # 推理服务鉴权 Token
- INFERENCE_AUTH_TOKEN = _os.environ.get(
- "INFERENCE_AUTH_TOKEN",
- "Bearer QDiS42vR9EqP-j73zeeyWB8zSJ4juheflm6yDKUDz5c"
- )
- # 推理使用的模型名称
- INFERENCE_MODEL = _os.environ.get(
- "INFERENCE_MODEL",
- "Qwen3-VL-32B-Instruct"
- )
- # ========== OCR提示词 - 分步骤提取 ==========
- # 步骤1:提取化学品名称
- PROMPT_EXTRACT_NAME = """
- 你是一个专业的化学品安全标签说明识别助手。
- 请从图像中提取化学品的中文名称和英文名称(如有)。
- 化学品名称通常出现在标签最顶部,字号最大,可能同时包含中文名和英文名及化学式。
- 按照以下JSON格式输出结果:
- {
- "name_cn": "化学品中文名称",
- "name_en": "化学品英文名称(含化学式,如无则填空字符串)"
- }
- 注意:返回结果必须是标准JSON格式,不要包含```json```标记。
- """
- # 步骤2:提取成分信息
- PROMPT_EXTRACT_COMPONENTS = """
- 你是一个专业的化学品安全标签说明识别助手。
- 请从图像中提取所有成分信息,包括:成分名称、化学式、实际浓度、浓度区间、CAS号。
- 注意:可能有多个成分,请全部提取。
- 按照以下JSON格式输出结果:
- {
- "cf_list": [
- {
- "cas_name": "成分名称",
- "cas_cf": "化学式",
- "true_rate": "实际浓度",
- "rate": "浓度区间",
- "cas_no": "CAS号"
- }
- ]
- }
- 注意:返回结果必须是标准JSON格式,不要包含```json```标记。
- """
- # 步骤3:提取安全提醒信号词
- PROMPT_EXTRACT_KEYWORD = """
- 你是一个专业的化学品安全标签说明识别助手。
- 请从图像中提取安全提醒信号词和危险性说明。
- - 信号词:通常在一个醒目的方框内(黑底白字或红底白字),只识别"危险"或"警告"这两种。
- - 危险性说明:通常紧跟在信号词和象形图下方,是一段描述危害的文字,只返回中文内容。
- 按照以下JSON格式输出结果:
- {
- "key_word": "危险或警告",
- "risk_notice": "危险性说明内容"
- }
- 注意:返回结果必须是标准JSON格式,不要包含```json```标记。
- """
- # 步骤4:提取防范说明
- PROMPT_EXTRACT_PREVENTION = """
- 你是一个专业的化学品安全标签说明识别助手。
- 请从图像中提取防范说明,包括:预防措施、事故响应、安全存储、废弃处置信息:
- 注意,要精准定位到预防措施、事故响应、安全存储、废弃处置的位置一般都有【预防措施】、【事故响应】、【安全存储】、【废弃处置】的标识
- 在定位之后,精准的提取对应信息的内容,禁止篡改、编造
- 如果对应的内容有英文表示,只需要返回其中文表示,不需要返回英文表示
- 按照以下JSON格式输出结果:
- {
- "pre_notice": {
- "pre_methoud": "预防措施",
- "acc_response": "事故响应",
- "safe_keep": "安全存储",
- "abandon_deal": "废弃处置"
- }
- }
- 注意:返回结果必须是标准JSON格式,不要包含```json```标记。
- """
- # 步骤5:提取供应商标识
- PROMPT_EXTRACT_SUPPLIER = """
- 你是一个专业的化学品安全标签说明识别助手。
- 请从图像中提取供应商信息和应急咨询电话。
- 供应商信息通常在标签底部,包括供应商名称、地址、电话、邮编;部分标签可能没有邮编字段,填空字符串即可。
- 应急咨询电话通常单独标注,关键字为"应急咨询电话"或"化学事故应急咨询电话"。
- 按照以下JSON格式输出结果:
- {
- "supplier": [{
- "name": "供应商名称",
- "address": "供应商地址",
- "tel": "供应商电话",
- "post": "供应商邮编(无则填空字符串)"
- }],
- "acc_tel": "应急咨询电话(无则填空字符串)"
- }
- 注意:
- 供应商的信息可能有多个,请提取所有供应商信息
- 返回结果必须是标准JSON格式,不要包含```json```标记。
- """
- # ========== 完整提取提示词(一次性提取所有信息)==========
- OCR_PROMPT_FULL = """
- 你是一个专业的化学品安全标签说明识别助手,负责提取化学品安全标签图像中的标签信息,提取的步骤如下:
- 1. **提取化学品名称**: 提取化学品中文名称和英文名称(如有)
- 2. **提取成分信息**:包括成分名称、化学式、实际浓度、浓度区间、成分cas号,成分可能有多个
- 3. **安全提醒信号词**:通常以比较醒目的方式提醒,如 '危险', '警告'等
- 4. **危险性说明**:通常在安全提醒词附近
- 5. **防范说明**:包括预防措施、事故响应、安全存储、废弃处置信息
- 按照以下JSON格式输出结果:
- {
- "tag": {
- "name_cn": "化学品中文名称",
- "name_en": "化学品英文名称",
- "cf_list": [
- {
- "cas_name": "成分名称",
- "cas_cf": "化学式",
- "true_rate": "实际浓度",
- "rate": "浓度区间",
- "cas_no": "CAS号"
- }
- ]
- },
- "key_word": "安全提醒信号词",
- "risk_notice": "危险性说明",
- "pre_notice": {
- "pre_method": "预防措施",
- "acc_response": "事故响应",
- "safe_keep": "安全存储",
- "abandon_deal": "废弃处置"
- }
- }
- 注意:返回结果必须是标准JSON格式,不要包含```json```标记。
- """
- # 步骤6:提取象形图标识
- PROMPT_EXTRACT_ICON = """
- 你是一个专业的化学品安全标签识别助手,专门负责识别GHS危险象形图。
- 我已在上方依次提供了GHS01至GHS09的标准参考图像,请仔细查看每一张。
- 现在请直接对比最后一张化学品安全标签图像,找出其中所有菱形边框内的象形图,
- 将每个象形图与上方参考图逐一对比,确定对应编号。
- 关键区分特征(仅作辅助,以参考图为准):
- - GHS01:圆形炸弹向四周炸裂,有大量射线和碎片飞散
- - GHS02:火焰图案,火焰底部有一条黑色横线底座,无圆圈
- - GHS03:火焰包围一个空心大圆圈(圆圈内部是白色),底部也有横线底座,与GHS02的区别是中间有空心圆圈
- - GHS04:一个横置的粗短气瓶/钢瓶,右侧有细长阀门
- - GHS05:顶部有两根试管,左边液体滴腐蚀金属板,右边液体滴腐蚀手掌
- - GHS06:骷髅头(空心白色)+下方两根交叉骨头
- - GHS07:只有一个感叹号"!"(上方竖条+下方圆点),无任何其他图形
- - GHS08:实心黑色人体上半身剪影,胸口有白色裂缝向四周放射(不是骷髅,不是感叹号)
- - GHS09:左侧一棵枯树(无叶子只有树枝),右侧一条翻肚白色死鱼,底部有水面横线,图案独特无火焰无人形
- 无法确认的跳过,不要猜测。
- 按照以下JSON格式输出结果:
- {"tag_images": ["GHS02", "GHS07"]}
- 注意:tag_images 中只填GHS编号,不要求顺序,返回结果必须是标准JSON格式,不要包含```json```标记。
- """
- # 默认使用的提示词(向后兼容)
- OCR_PROMPT = OCR_PROMPT_FULL
|