浏览代码

update for new chat_template (#4672)

* update for new chat_template

* adapt to the old chat_template

* fix
zhang-prog 3 周之前
父节点
当前提交
9579f20886

+ 21 - 5
paddlex/inference/models/common/tokenizer/tokenizer_utils.py

@@ -713,11 +713,27 @@ class ChatTemplateMixin:
                     "apply_chat_template do not support applying batch conversations, "
                     "so you should apply the conversation one by one."
                 )
-        query = self.chat_template.render(
-            messages=conversations,
-            **self.special_tokens_map,
-            add_generation_prompt=add_generation_prompt,
-        )
+        try:
+            query = self.chat_template.render(
+                messages=conversations,
+                **self.special_tokens_map,
+                add_generation_prompt=add_generation_prompt,
+            )
+        except TypeError:
+            for i in range(len(conversations)):
+                content = conversations[i]["content"]
+                if isinstance(content, list):
+                    new_content = ""
+                    for part in content:
+                        if part.get("type") == "text":
+                            new_content = part["text"]
+                            break
+                conversations[i]["content"] = new_content
+            query = self.chat_template.render(
+                messages=conversations,
+                **self.special_tokens_map,
+                add_generation_prompt=add_generation_prompt,
+            )
         return query
 
     def encode_chat_inputs(

+ 4 - 1
paddlex/inference/models/doc_vlm/processors/paddleocr_vl/_paddleocr_vl.py

@@ -82,7 +82,10 @@ class PaddleOCRVLProcessor(object):
             messages = [
                 {
                     "role": "user",
-                    "content": input_dict["query"],
+                    "content": [
+                        {"type": "image", "image": "placeholder"},  # placeholder
+                        {"type": "text", "text": input_dict["query"]},
+                    ],
                 }
             ]
             prompt = self.tokenizer.apply_chat_template(messages, tokenize=False)