Forráskód Böngészése

add explanatory note

dyning 11 hónapja
szülő
commit
8365b77381

+ 0 - 8
api_examples/pipelines/test_pp_chatocrv3.py

@@ -19,14 +19,6 @@ pipeline = create_pipeline(pipeline="PP-ChatOCRv3-doc")
 img_path = "./test_demo_imgs/vehicle_certificate-1.png"
 key_list = ["驾驶室准乘人数"]
 
-# img_path = "./test_demo_imgs/test_layout_parsing.jpg"
-# key_list = ['3.2的标题']
-
-# img_path = "./test_demo_imgs/seal_text_det.png"
-# key_list = ["印章上公司"]
-
-# img_path = "./badcase_images/circle_Aug06850_1.jpg"
-# key_list = ['印章名称', '印章编号']
 
 visual_predict_res = pipeline.visual_predict(
     img_path,

+ 9 - 41
paddlex/configs/pipelines/PP-ChatOCRv3-doc.yaml

@@ -23,31 +23,16 @@ SubModules:
       module_name: prompt_engneering
       task_type: text_kie_prompt
 
-      # task_description: '你现在的任务是从OCR文字识别的结果中提取关键词列表中每一项对应的关键信息。
-      #     OCR的文字识别结果使用```符号包围,包含所识别出来的文字,顺序在原始图片中从左至右、从上至下。
-      #     我指定的关键词列表使用[]符号包围。请注意OCR的文字识别结果可能存在长句子换行被切断、不合理的分词、
-      #     文字被错误合并等问题,你需要结合上下文语义进行综合判断,以抽取准确的关键信息。'
-
-      # task_description: '你现在的任务是从OCR文字识别的结果中提取关键词列表中每一项对应的关键信息。
-      #     OCR的文字识别结果使用```符号包围,包含所识别出来的文字,顺序在原始图片中从左至右、从上至下。
-      #     我指定的关键词列表使用[]符号包围。请注意OCR的文字识别结果可能存在长句子换行被切断、不合理的分词、
-      #     文字被错误合并等问题,你需要结合上下文语义进行综合判断,以抽取准确的关键信息。
-      #     提取的关键信息尽可能详细和完整,并保持格式、单位、符号和标点都与OCR结果中的内容完全一致。'
-
-      # rules_str: 
-
-      task_description: '你现在的任务是从OCR结果中提取问题列表中每一个问题的答案。
+      task_description: '你现在的任务是从OCR文字识别的结果中提取关键词列表中每一项对应的关键信息。
           OCR的文字识别结果使用```符号包围,包含所识别出来的文字,顺序在原始图片中从左至右、从上至下。
-          我指定的问题列表使用[]符号包围。请注意OCR的文字识别结果可能存在长句子换行被切断、不合理的分词、
-          文字被错误合并等问题,你需要结合上下文语义进行综合判断,以获取准确的答案。'
+          我指定的关键词列表使用[]符号包围。请注意OCR的文字识别结果可能存在长句子换行被切断、不合理的分词、
+          文字被错误合并等问题,你需要结合上下文语义进行综合判断,以抽取准确的关键信息。'
 
       output_format: '在返回结果时使用JSON格式,包含多个key-value对,key值为我指定的问题,value值为该问题对应的答案。
           如果认为OCR识别结果中,对于问题key,没有答案,则将value赋值为"未知"。请只输出json格式的结果,
           并做json格式校验后返回,不要包含其它多余文字!'
 
-      rules_str: '每个问题的答案用OCR结果的内容回答,可以是单词、短语或句子,针对问题回答尽可能详细和完整,
-        并保持格式、单位、符号和标点都与OCR结果中的内容完全一致。'
-
+      rules_str:
       few_shot_demo_text_content:
       few_shot_demo_key_value_list:
           
@@ -55,28 +40,13 @@ SubModules:
       module_name: prompt_engneering
       task_type: table_kie_prompt
 
-      # task_description: '你现在的任务是从输入的表格内容中提取关键词列表中每一项对应的关键信息,
-      #     表格内容用```符号包围,我指定的关键词列表使用[]符号包围。你需要结合上下文语义进行综合判断,以抽取准确的关键信息。'
-
-      # task_description: '你现在的任务是从输入的表格内容中提取关键词列表中每一项对应的关键信息,
-      #     表格内容用```符号包围,我指定的关键词列表使用[]符号包围。你需要结合上下文语义进行综合判断,以抽取准确的关键信息。
-      #     提取的关键信息尽可能详细和完整,并保持格式、单位、符号和标点都与OCR结果中的内容完全一致。'
+      task_description: '你现在的任务是从输入的表格内容中提取关键词列表中每一项对应的关键信息,
+          表格内容用```符号包围,我指定的关键词列表使用[]符号包围。你需要结合上下文语义进行综合判断,以抽取准确的关键信息。'
 
-      # output_format: '在返回结果时使用JSON格式,包含多个key-value对,key值为我指定的关键词,value值为所抽取的结果。
-      #     如果认为表格识别结果中没有关键词key对应的value,则将value赋值为"未知"。请只输出json格式的结果,
-      #     并做json格式校验后返回,不要包含其它多余文字!'
-      # rules_str:
-
-      task_description: '你现在的任务是从输入的表格内容中提取问题列表中每一个问题的答案。
-          表格内容使用```符号包围,我指定的问题列表使用[]符号包围。'
-
-      output_format: '在返回结果时使用JSON格式,包含多个key-value对,key值为我指定的问题,value值为该问题对应的答案。
-          如果认为表格内容中,对于问题key,没有答案,则将value赋值为"未知"。请只输出json格式的结果,
+      output_format: '在返回结果时使用JSON格式,包含多个key-value对,key值为我指定的关键词,value值为所抽取的结果。
+          如果认为表格识别结果中没有关键词key对应的value,则将value赋值为"未知"。请只输出json格式的结果,
           并做json格式校验后返回,不要包含其它多余文字!'
-
-      rules_str: '每个问题的答案用表格中内容回答,可以是单词、短语或句子,针对问题回答尽可能详细和完整,
-        并保持格式、单位、符号和标点都与表格内容中的内容完全一致。'
-
+      rules_str:
       few_shot_demo_text_content:
       few_shot_demo_key_value_list:
 
@@ -130,7 +100,6 @@ SubPipelines:
             module_name: text_recognition
             model_name: PP-OCRv4_server_rec
             model_dir: null
-            # model_dir: /paddle/github/PaddleX/models/PP-OCRv4_server_rec_doc_infer
             batch_size: 1
 
       SealOCR:
@@ -146,5 +115,4 @@ SubPipelines:
             module_name: text_recognition
             model_name: PP-OCRv4_server_rec
             model_dir: null
-            # model_dir: /paddle/github/PaddleX/models/PP-OCRv4_server_rec_doc_infer
             batch_size: 1  

+ 4 - 4
paddlex/inference/pipelines_new/__init__.py

@@ -122,11 +122,11 @@ def create_pipeline(
         BasePipeline: The created pipeline instance.
     """
 
-    pipeline_name = pipeline
-
     if config is None:
-        config = load_pipeline_config(pipeline_name)
-        assert pipeline_name == config["pipeline_name"]
+        config = load_pipeline_config(pipeline)
+        pipeline_name = config["pipeline_name"]
+    else:
+        pipeline_name = pipeline
 
     pipeline = BasePipeline.get(pipeline_name)(
         config=config,

+ 11 - 11
paddlex/inference/pipelines_new/components/prompt_engeering/generate_kie_prompt.py

@@ -116,27 +116,27 @@ class GenerateKIEPrompt(BaseGeneratePrompt):
 
         prompt = f"""{task_description}{rules_str}{output_format}{few_shot_demo_text_content}{few_shot_demo_key_value_list}"""
         if self.task_type == "table_kie_prompt":
-            prompt += f"""\n结合上面,下面正式开始:\
-                表格内容:```{text_content}```\
-                \n问题列表:{key_list}。""".replace(
-                "    ", ""
-            )
             # prompt += f"""\n结合上面,下面正式开始:\
             #     表格内容:```{text_content}```\
-            #     \n关键词列表:{key_list}。""".replace(
+            #     \n问题列表:{key_list}。""".replace(
             #     "    ", ""
             # )
-        elif self.task_type == "text_kie_prompt":
-            prompt += f"""\n结合上面的例子,下面正式开始:\
-                OCR文字:```{text_content}```\
-                \n问题列表:{key_list}。""".replace(
+            prompt += f"""\n结合上面,下面正式开始:\
+                表格内容:```{text_content}```\
+                \n关键词列表:{key_list}。""".replace(
                 "    ", ""
             )
+        elif self.task_type == "text_kie_prompt":
             # prompt += f"""\n结合上面的例子,下面正式开始:\
             #     OCR文字:```{text_content}```\
-            #     \n关键词列表:{key_list}。""".replace(
+            #     \n问题列表:{key_list}。""".replace(
             #     "    ", ""
             # )
+            prompt += f"""\n结合上面的例子,下面正式开始:\
+                OCR文字:```{text_content}```\
+                \n关键词列表:{key_list}。""".replace(
+                "    ", ""
+            )
         else:
             raise ValueError(f"{self.task_type} is currently not supported.")
         return prompt