[Cherry-Pick] Fix ernie4_5_vl_processor.py and qwen_vl_processor.py can not disable thinking (#4762) (#4798)
Some checks failed
CE Compile Job / ce_job_pre_check (push) Has been cancelled
CE Compile Job / print_ce_job_pre_check_outputs (push) Has been cancelled
CE Compile Job / FD-Clone-Linux (push) Has been cancelled
CE Compile Job / Show Code Archive Output (push) Has been cancelled
CE Compile Job / BUILD_SM8090 (push) Has been cancelled
CE Compile Job / BUILD_SM8689 (push) Has been cancelled
CE Compile Job / CE_UPLOAD (push) Has been cancelled

* [Feature] add a new reasoning parser (#4571)

* add new reasoning_parser initial commit

* add parser file content

* add register

* ernie_test_reasoning_parser

* support <tool_call> token and add tool_parser

* add and fix unit tests

* modify reasoning_parser

* modify reasoning parser and tool parser

* modify unit tests

* modify reasoning_parser and tool_parser

* modify unit tests

* fix tool_parser

* modify the logic of reasoning_parser and tool_parser

* add and modify unit tests

* standardize code style

* simplify reasoning_parser and tool_parser

* modify unit test

* [BugFix] Fix finish reason in _create_chat_completion_choice  (#4582)

* fix n_param _create_chat_completion_choicel

* fix unit test

* fix final_res

* modify unit tests

* [BugFix] fix offline llm chat "enable_thinking" is always "False" (#4686)

* fix enable_thinking

* recover ernie4_5_vl_processor

* [BugFix] Fix ernie4_5_vl_processor.py and qwen_vl_processor.py can not disable thinking (#4762)

* fix ernie4_5_vl_processor.py and qwen_vl_processor.py

* add unit test
This commit is contained in:
kxz2002
2025-11-05 10:59:47 +08:00
committed by GitHub
parent 7cee8030af
commit 1689f7ef86
3 changed files with 22 additions and 2 deletions

View File

@@ -233,7 +233,7 @@ class Ernie4_5_VLProcessor(Ernie4_5Processor):
if chat_template_kwargs:
if isinstance(chat_template_kwargs, dict):
for k, v in chat_template_kwargs.items():
if k not in request:
if k not in request or request[k] is None:
request[k] = v
else:
raise ValueError("Invalid input: chat_template_kwargs must be a dict")

View File

@@ -237,7 +237,7 @@ class QwenVLProcessor(TextProcessor):
if chat_template_kwargs:
if isinstance(chat_template_kwargs, dict):
for k, v in chat_template_kwargs.items():
if k not in request:
if k not in request or request[k] is None:
request[k] = v
else:
raise ValueError("Invalid input: chat_template_kwargs must be a dict")

View File

@@ -204,6 +204,26 @@ class TestQwenVLProcessor(unittest.TestCase):
result["multimodal_inputs"]["image_type_ids"].shape[0], result["multimodal_inputs"]["grid_thw"][:, 0].sum()
)
def test_process_request_dict_enable_thinking(self):
num_completion_token_ids = 10
request = {
"request_id": "12345",
"completion_token_ids": [1] * num_completion_token_ids,
"stop": ["stop", "eof"],
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Hello"},
],
}
],
"chat_template_kwargs": {"enable_thinking": True},
}
result = self.processor.process_request_dict(request, 100)
self.assertEqual(result.get("enable_thinking"), False)
def test_prompt(self):
"""
Test processing of prompt with image and video placeholders