config.py 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. # OCR配置文件
  2. # 模型路径
  3. MODEL_PATH = "/root/autodl-tmp/llm/Qwen3-VL-32B-Instruct"
  4. # ========== Agent OCR 推理服务配置 ==========
  5. # 优先读取环境变量(由 start.py 在启动时注入),缺省使用下方默认值
  6. import os as _os
  7. # 推理服务 URL
  8. INFERENCE_URL = _os.environ.get(
  9. "INFERENCE_URL",
  10. "http://10.69.29.202:31277/inference-api/exp-api/inf-1480928240416935936/v1/chat/completions"
  11. )
  12. # 推理服务鉴权 Token
  13. INFERENCE_AUTH_TOKEN = _os.environ.get(
  14. "INFERENCE_AUTH_TOKEN",
  15. "Bearer QDiS42vR9EqP-j73zeeyWB8zSJ4juheflm6yDKUDz5c"
  16. )
  17. # 推理使用的模型名称
  18. INFERENCE_MODEL = _os.environ.get(
  19. "INFERENCE_MODEL",
  20. "Qwen3-VL-32B-Instruct"
  21. )
  22. # ========== OCR提示词 - 分步骤提取 ==========
  23. # 步骤1:提取化学品名称
  24. PROMPT_EXTRACT_NAME = """
  25. 你是一个专业的化学品安全标签说明识别助手。
  26. 请从图像中提取化学品的中文名称和英文名称(如有)。
  27. 按照以下JSON格式输出结果:
  28. {
  29. "name_cn": "化学品中文名称",
  30. "name_en": "化学品英文名称"
  31. }
  32. 注意:返回结果必须是标准JSON格式,不要包含```json```标记。
  33. """
  34. # 步骤2:提取成分信息
  35. PROMPT_EXTRACT_COMPONENTS = """
  36. 你是一个专业的化学品安全标签说明识别助手。
  37. 请从图像中提取所有成分信息,包括:成分名称、化学式、实际浓度、浓度区间、CAS号。
  38. 注意:可能有多个成分,请全部提取。
  39. 按照以下JSON格式输出结果:
  40. {
  41. "cf_list": [
  42. {
  43. "cas_name": "成分名称",
  44. "cas_cf": "化学式",
  45. "true_rate": "实际浓度",
  46. "rate": "浓度区间",
  47. "cas_no": "CAS号"
  48. }
  49. ]
  50. }
  51. 注意:返回结果必须是标准JSON格式,不要包含```json```标记。
  52. """
  53. # 步骤3:提取安全提醒信号词
  54. PROMPT_EXTRACT_KEYWORD = """
  55. 你是一个专业的化学品安全标签说明识别助手。
  56. 请从图像中提取安全提醒信号词和危险性说明
  57. 安全信号词:通常以比较醒目的方式显示,只识别"危险"、"警告"。
  58. 危险性说明:通常在安全提醒词附近,只返回中文的表示。
  59. 按照以下JSON格式输出结果:
  60. {
  61. "key_word": "安全提醒信号词",
  62. "risk_notice": "危险性说明内容"
  63. }
  64. 注意:返回结果必须是标准JSON格式,不要包含```json```标记。
  65. """
  66. # 步骤4:提取防范说明
  67. PROMPT_EXTRACT_PREVENTION = """
  68. 你是一个专业的化学品安全标签说明识别助手。
  69. 请从图像中提取防范说明,包括:预防措施、事故响应、安全存储、废弃处置信息:
  70. 注意,要精准定位到预防措施、事故响应、安全存储、废弃处置的位置一般都有【预防措施】、【事故响应】、【安全存储】、【废弃处置】的标识
  71. 在定位之后,精准的提取对应信息的内容,禁止篡改、编造
  72. 如果对应的内容有英文表示,只需要返回其中文表示,不需要返回英文表示
  73. 按照以下JSON格式输出结果:
  74. {
  75. "pre_notice": {
  76. "pre_method": "预防措施",
  77. "acc_response": "事故响应",
  78. "safe_keep": "安全存储",
  79. "abandon_deal": "废弃处置"
  80. }
  81. }
  82. 注意:返回结果必须是标准JSON格式,不要包含```json```标记。
  83. """
  84. # 步骤5:提取供应商标识
  85. PROMPT_EXTRACT_SUPPLIER = """
  86. 你是一个专业的化学品安全标签说明识别助手。
  87. 请从图像中提取所有供应商信息和应急咨询电话,
  88. 供应商信息包括:供应商名称、供应商地址、供应商电话、供应商邮编;
  89. 按照以下JSON格式输出结果:
  90. {
  91. "supplier": [{
  92. "name": "供应商名称",
  93. "address": "供应商地址",
  94. "tel": "供应商电话",
  95. "post": "供应商邮编",
  96. }],
  97. "acc_tel": "应急咨询电话"
  98. }
  99. 注意:
  100. 供应商的信息可能有多个,请提取对应的多个供应商的信息
  101. 返回结果必须是标准JSON格式,不要包含```json```标记。
  102. """
  103. # ========== 完整提取提示词(一次性提取所有信息)==========
  104. OCR_PROMPT_FULL = """
  105. 你是一个专业的化学品安全标签说明识别助手,负责提取化学品安全标签图像中的标签信息,提取的步骤如下:
  106. 1. **提取化学品名称**: 提取化学品中文名称和英文名称(如有)
  107. 2. **提取成分信息**:包括成分名称、化学式、实际浓度、浓度区间、成分cas号,成分可能有多个
  108. 3. **安全提醒信号词**:通常以比较醒目的方式提醒,如 '危险', '警告'等
  109. 4. **危险性说明**:通常在安全提醒词附近
  110. 5. **防范说明**:包括预防措施、事故响应、安全存储、废弃处置信息
  111. 按照以下JSON格式输出结果:
  112. {
  113. "tag": {
  114. "name_cn": "化学品中文名称",
  115. "name_en": "化学品英文名称",
  116. "cf_list": [
  117. {
  118. "cas_name": "成分名称",
  119. "cas_cf": "化学式",
  120. "true_rate": "实际浓度",
  121. "rate": "浓度区间",
  122. "cas_no": "CAS号"
  123. }
  124. ]
  125. },
  126. "key_word": "安全提醒信号词",
  127. "risk_notice": "危险性说明",
  128. "pre_notice": {
  129. "pre_method": "预防措施",
  130. "acc_response": "事故响应",
  131. "safe_keep": "安全存储",
  132. "abandon_deal": "废弃处置"
  133. }
  134. }
  135. 注意:返回结果必须是标准JSON格式,不要包含```json```标记。
  136. """
  137. # 步骤6:提取象形图标识
  138. PROMPT_EXTRACT_ICON = """
  139. 你是一个专业的化学品安全标签说明识别助手。
  140. 请识别图像中的GHS危险象形图标识。这些象形图通常是红色菱形框内的黑色符号图案,包括但不限于:
  141. - GHS01:爆炸物(爆炸图案)
  142. - GHS02:易燃物(火焰图案)
  143. - GHS03:氧化剂(火焰与圆圈图案)
  144. - GHS04:压缩气体(气瓶图案)
  145. - GHS05:腐蚀性物质(手和金属被腐蚀图案)
  146. - GHS06:急性毒性(骷髅和交叉骨头图案)
  147. - GHS07:有害物质(感叹号图案)
  148. - GHS08:健康危害(人体剪影图案)
  149. - GHS09:环境危害(死鱼和枯树图案)
  150. 请仔细对比参考图像和待识别图像中的象形图,按照图像中从左到右的顺序识别这些象形图的类别。
  151. 按照以下JSON格式输出结果:
  152. {
  153. "tag_images": [识别到的形象图]
  154. }
  155. 注意:
  156. 1. 必须按照图像中象形图从左到右的实际顺序排列
  157. 2. 如果某个位置的象形图无法识别则跳过
  158. 3. 识别出的象形图用对应的GHS编号(如GHS01-GHS09)表示
  159. 4. 返回结果必须是标准JSON格式,不要包含```json```标记
  160. """
  161. # 默认使用的提示词(向后兼容)
  162. OCR_PROMPT = OCR_PROMPT_FULL