PP-ChatOCRv4-doc.yaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. pipeline_name: PP-ChatOCRv4-doc
  2. use_layout_parser: True
  3. use_mllm_predict: True
  4. SubModules:
  5. LLM_Chat:
  6. module_name: chat_bot
  7. model_name: ernie-3.5-8k
  8. base_url: "https://qianfan.baidubce.com/v2"
  9. api_type: openai
  10. api_key: "api_key" # Set this to a real API key
  11. LLM_Retriever:
  12. module_name: retriever
  13. model_name: embedding-v1
  14. base_url: "https://qianfan.baidubce.com/v2"
  15. api_type: qianfan
  16. api_key: "api_key" # Set this to a real API key
  17. MLLM_Chat:
  18. module_name: chat_bot
  19. model_name: PP-DocBee
  20. base_url: "http://127.0.0.1:8080/v1/chat/completions"
  21. api_type: openai
  22. api_key: "api_key"
  23. PromptEngneering:
  24. KIE_CommonText:
  25. module_name: prompt_engneering
  26. task_type: text_kie_prompt_v2
  27. task_description: '你是一个信息提取助手,你的任务是从OCR结果中提取每一个问题的答案。
  28. 请注意:问题可分为两类,你需要**根据问题的语义自动判断任务类型**,并分别使用以下规则:
  29. 1. **摘录型问题(适用于法规、定义、条款、原句类问题)**
  30. - 特征:问题中常出现“是什么”“内容是什么”“规定是什么”等;
  31. - 要求:答案必须**逐字摘录自 OCR 文本**,不可改写或简化。
  32. 2. **问答型问题(适用于需要计算、推理、提取数字信息的问题)**
  33. - 特征:问题中含“多少”“增长了多少”“是多少元”等;
  34. - 要求:可以基于 OCR 文本进行**理解、补全和单位推理**,但需严格以 OCR 信息为依据,不得引入外部常识或主观猜测。
  35. OCR识别结果使用```符号包围,按图片中从左至右、从上至下排序。
  36. 问题列表使用[]符号包围。'
  37. output_format: '输出以 JSON 格式返回,key 为问题内容,value 为对应答案。
  38. - 所有答案必须是完整、可理解的语句或片段;
  39. - 若 OCR 中无法确定答案,请将 value 设为 "未知";
  40. - 严格使用 "未知",不允许使用 null、空字符串、"-" 等其他表示形式。'
  41. rules_str: '通用规则:
  42. 1. **内容来源与完整性**
  43. - 所有问题的答案必须**完全依据表格中的内容**进行作答;
  44. - 回答时应**尽可能详细和完整**,不得省略或自行补充未在表格中明确出现的信息;
  45. - 保持**原文的格式、数字、正负号、单位、符号和标点符号**完全一致。
  46. 2. **标点规范**
  47. - 如果原文答案句末带有标点符号(如句号、逗号、分号等),请**保留并添加在答案结尾**。
  48. 3. **单位补全要求**
  49. - 由于评测可能涉及单位识别,**答案中的所有数字后必须添加单位**;
  50. - 如果原文上下文中已明确提供单位,**请直接使用该单位**;
  51. - 如果上下文中未出现单位,**请你根据语义补充一个合理的常见单位**,如“个”“项”“次”“年”“元”等;
  52. - 对于比率或百分比,请**务必添加“%”符号**;
  53. - **禁止省略单位**,也不得以“无单位”或空字符串代替;
  54. - 添加单位时,**直接紧跟在数字后,不允许加括号、引号或任何额外标注符号**。
  55. 4. **上下文语义保持**
  56. - 请严格遵循原文语义;
  57. - 如果原文描述为“在30分钟内完成”,请**完整回答“在30分钟内完成”**,而**不是简化为“30分钟”**;
  58. - 不可断章取义、丢失时间、条件或限制性描述。
  59. 5. 如无法确定答案,必须填“未知”。
  60. 摘录型补充规则:
  61. - 答案必须逐字摘抄自 OCR 文本;
  62. - 不得缩写、改写或断章取义。
  63. 问答型补充规则:
  64. - 可以合理组合 OCR 中的多个片段;
  65. - 可进行单位补全和数值归纳;
  66. - 不得引入非文本来源内容。'
  67. few_shot_demo_text_content:
  68. few_shot_demo_key_value_list:
  69. KIE_Table:
  70. module_name: prompt_engneering
  71. task_type: table_kie_prompt_v2
  72. task_description: '你现在的任务是从输入的html格式的表格内容中提取问题列表中每一个问题的答案。
  73. 表格内容使用```符号包围,我指定的问题列表使用[]符号包围。'
  74. output_format: '在返回结果时使用JSON格式,包含多个key-value对,key值为我指定的问题,value值为该问题对应的答案。
  75. 如果认为表格内容中,对于问题key,没有答案,则将value赋值为"未知"。请只输出json格式的结果,
  76. 并做json格式校验后返回,不要包含其它多余文字!'
  77. rules_str: '通用规则:
  78. 1. **内容来源与完整性**
  79. - 所有问题的答案必须**完全依据表格中的内容**进行作答;
  80. - 回答时应**尽可能详细和完整**,不得省略或自行补充未在表格中明确出现的信息;
  81. - 保持**原文的格式、数字、正负号、单位、符号和标点符号**完全一致。
  82. 2. **标点规范**
  83. - 如果原文答案句末带有标点符号(如句号、逗号、分号等),请**保留并添加在答案结尾**。
  84. 3. **单位补全要求**
  85. - 由于评测可能涉及单位识别,**答案中的所有数字后必须添加单位**;
  86. - 如果原文上下文中已明确提供单位,**请直接使用该单位**;
  87. - 如果上下文中未出现单位,**请你根据语义补充一个合理的常见单位**,如“个”“项”“次”“年”“元”等;
  88. - 对于比率或百分比,请**务必添加“%”符号**;
  89. - **禁止省略单位**,也不得以“无单位”或空字符串代替;
  90. - 添加单位时,**直接紧跟在数字后,不允许加括号、引号或任何额外标注符号**。
  91. 4. **上下文语义保持**
  92. - 请严格遵循原文语义;
  93. - 如果原文描述为“在30分钟内完成”,请**完整回答“在30分钟内完成”**,而**不是简化为“30分钟”**;
  94. - 不可断章取义、丢失时间、条件或限制性描述。
  95. 5. 如无法确定答案,必须填“未知”。
  96. 摘录型补充规则:
  97. - 答案必须逐字摘抄自 OCR 文本;
  98. - 不得缩写、改写或断章取义。
  99. 问答型补充规则:
  100. - 可以合理组合 OCR 中的多个片段;
  101. - 可进行单位补全和数值归纳;
  102. - 不得引入非文本来源内容。
  103. '
  104. few_shot_demo_text_content:
  105. few_shot_demo_key_value_list:
  106. Ensemble:
  107. module_name: prompt_engneering
  108. task_type: ensemble_prompt
  109. task_description: '你现在的任务是,对于一个问题,对比方法A和方法B的结果,选择更准确的一个回答。
  110. 问题用```符号包围。'
  111. output_format: '请返回JSON格式的结果,包含多个key-value对,key值为我指定的问题,
  112. value值为`方法A`或`方法B`。如果对于问题key,没有找到答案,将value赋值为"未知"。
  113. 请只输出json格式的结果,并做json格式校验后返回,不要包含其它多余文字!'
  114. rules_str: '对于涉及数字的问题,请返回与问题描述最相关且数字表述正确的答案。
  115. 请特别注意数字中的标点使用是否合理。'
  116. few_shot_demo_text_content:
  117. few_shot_demo_key_value_list:
  118. SubPipelines:
  119. LayoutParser:
  120. pipeline_name: layout_parsing
  121. use_doc_preprocessor: True
  122. use_general_ocr: True
  123. use_seal_recognition: True
  124. use_table_recognition: True
  125. use_formula_recognition: False
  126. SubModules:
  127. LayoutDetection:
  128. module_name: layout_detection
  129. model_name: RT-DETR-H_layout_3cls
  130. model_dir: null
  131. SubPipelines:
  132. DocPreprocessor:
  133. pipeline_name: doc_preprocessor
  134. use_doc_orientation_classify: True
  135. use_doc_unwarping: True
  136. SubModules:
  137. DocOrientationClassify:
  138. module_name: doc_text_orientation
  139. model_name: PP-LCNet_x1_0_doc_ori
  140. model_dir: null
  141. DocUnwarping:
  142. module_name: image_unwarping
  143. model_name: UVDoc
  144. model_dir: null
  145. GeneralOCR:
  146. pipeline_name: OCR
  147. text_type: general
  148. use_doc_preprocessor: False
  149. use_textline_orientation: True
  150. SubModules:
  151. TextDetection:
  152. module_name: text_detection
  153. model_name: PP-OCRv4_server_det
  154. model_dir: null
  155. limit_side_len: 960
  156. limit_type: max
  157. max_side_limit: 4000
  158. thresh: 0.3
  159. box_thresh: 0.6
  160. unclip_ratio: 1.5
  161. TextLineOrientation:
  162. module_name: textline_orientation
  163. model_name: PP-LCNet_x1_0_textline_ori
  164. model_dir: null
  165. batch_size: 6
  166. TextRecognition:
  167. module_name: text_recognition
  168. model_name: PP-OCRv4_server_rec_doc
  169. model_dir: null
  170. batch_size: 6
  171. score_thresh: 0.0
  172. TableRecognition:
  173. pipeline_name: table_recognition
  174. use_layout_detection: False
  175. use_doc_preprocessor: False
  176. use_ocr_model: False
  177. SubModules:
  178. TableStructureRecognition:
  179. module_name: table_structure_recognition
  180. model_name: SLANet_plus
  181. model_dir: null
  182. SealRecognition:
  183. pipeline_name: seal_recognition
  184. use_layout_detection: False
  185. use_doc_preprocessor: False
  186. SubPipelines:
  187. SealOCR:
  188. pipeline_name: OCR
  189. text_type: seal
  190. use_doc_preprocessor: False
  191. use_textline_orientation: False
  192. SubModules:
  193. TextDetection:
  194. module_name: seal_text_detection
  195. model_name: PP-OCRv4_server_seal_det
  196. model_dir: null
  197. limit_side_len: 736
  198. limit_type: min
  199. max_side_limit: 4000
  200. thresh: 0.2
  201. box_thresh: 0.6
  202. unclip_ratio: 0.5
  203. TextRecognition:
  204. module_name: text_recognition
  205. model_name: PP-OCRv4_server_rec_doc
  206. model_dir: null
  207. batch_size: 1
  208. score_thresh: 0