You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In two tests, `tests/entrypoints/openai/test_cli_args.py` presented incorrect contract information, leading to a false sense of certainty.
16
+
17
+
It claimed that when combined1 with `test_enable_auto_choice_fails_with_enable_reasoning-enable-auto-tool-choice`, `-reasoning-parser` should fail. However, this combination is **documented as supported** (e.g., ) and **does not** fail correctly. The test passed because was omitted, which triggered the irrelevant check “Automatic tool selection requires a tool-call parser,” obscuring the fact that an inference conflict validation does not exist (and should not exist). I rewrote the code to ensure that documented combinations pass when the tool call parser is enabled.`docs/features/tool_calling.md-tool-call-parser hunyuan_a13b --reasoning-parser hunyuan_a13bvalidate_parsed_serve_args-tool-call-parser`
18
+
2.`test_enable_auto_choice_passes_without_tool_call_parser` was misnamed. The function’s docstring and body explicitly state that the validation *fails*. `test_enable_auto_choice_fails_without_tool_call_parser` I renamed it to match the actual behavior.
19
+
20
+
This is a test-only change; runtime behavior remains unchanged.
21
+
22
+
**This is not a duplicate.** I searched for public PRs regarding `test_cli_args`, `validate_parsed_serve_args`, and `test_enable_auto_choice`, but none of them touched this test.
The chat autocomplete endpoint ( `/v1/chat/completions` ) exposes the `bad_words` field and passes it to `SamplingParams`, but the existing autocomplete endpoint ( ) does not do so. This is a functional disparity. Users of the autocomplete endpoint cannot hide specific words.`SamplingParamsbad_words`
17
+
18
+
This PR adds the `bad_words` field to reflect the existing chat implementation (the sampling parameter block and the field) and connects it via `CompletionRequest`.`to_sampling_params()chat_completion/protocol.pybad_words=self.bad_wordsto_sampling_params`
19
+
20
+
**This is not a duplicate.**`bad_words` I searched for open PRs regarding (title/body), `bad_words CompletionRequest`, and `completion bad_words parity`, but the existing `bad_words` PRs concern tokenizer conversion/caching bugs, and there are no PRs that add the field to the autocomplete endpoint.
`make_valid_python` (in `vllm/tool_parsers/utils.py`) is used to add a missing closing character to close an incomplete Python tool call expression during streaming. It checks only the single character immediately preceding it to determine whether a closing quote terminates a string.
17
+
18
+
```text
19
+
if index > 0 and text[index - 1] == "\\":
20
+
pass # treat quote as escaped
21
+
else:
22
+
bracket_stack.pop()
23
+
```
24
+
25
+
**This is incorrect behavior** in the case of consecutive backslashes. For example, if a *real* closing quote follows an escaped backslash, closing quote, the single-character check incorrectly treats the `\` quote as escaped, causing the string to remain open and producing an invalid or unparseable result.
26
+
27
+
This PR counts the number of consecutive backslashes preceding the quote and considers the quote to be escaped only when that number is **odd**.
28
+
29
+
### **This is not a duplicate**
30
+
31
+
I searched for open PRs and issues before submitting.
32
+
33
+
-`gh pr list --repo vllm-project/vllm --state open --search "make_valid_python"`[**Enable tool calls after text chunks #17311**](https://github.com/vllm-project/vllm/pull/17311)
This backslash-escape counting bug has not been resolved in any currently open PRs or issues.
42
+
43
+
### **Tests**
44
+
45
+
Regression tests covering all input cases—normal, even number of backslashes, and odd number of backslashes—have been added inside `tests/tool_parsers/test_utils.py` ( ).`TestMakeValidPythonEscapes`
46
+
47
+
- The patched version passes all `make_valid_pythonNone`
48
+
passes all four cases. The prefix function
49
+
50
+
returns the case with an even number of backslashes, so it catches the regression error in the new test.
- Note — **Driver vs. NVENC SDK Version**: Builds that are too recent require the new NVENC SDK and will be rejected by older drivers.
62
-
- If `Driver does not support the required nvenc API version. Required: X.Y` appears, update the driver or obtain an **older build** (BtbN’s date-specific `autobuild-YYYY-MM-DD` releases).
63
-
- Make sure the test input is large enough, such as 1280x720(Very small resolutions may trigger false positives due to falling below the NVENC minimum resolution).
98
+
- If `Driver does not support the required nvenc API version. Required: X.Y` appears, update your driver or use an **older build** (BtbN’s `autobuild-YYYY-MM-DD` releases sorted by date).
99
+
- Make sure the test input is large enough, such as 1280x720 (very small sizes may trigger false positives due to falling below the NVENC minimum resolution).
64
100
65
-
## 5. Basic Usage Patterns
101
+
## 5. Basic Usage Pattern
66
102
67
103
Perform decoding, scaling, and encoding entirely on the GPU:
68
104
@@ -80,10 +116,10 @@ Perform decoding, scaling, and encoding entirely on the GPU:
80
116
-vf scale_cuda=1280:720-c:v h264_nvenc out.mp4
81
117
```
82
118
83
-
Frequently used options
119
+
Frequently Used Options
84
120
85
121
-`hwaccel cuda` : Use hardware decoding
86
-
-`hwaccel_output_format cuda` : Keep decoded frames in GPU memory(required when combined with GPU filters such as scale_cuda)
122
+
-`hwaccel_output_format cuda` : Keep decoded frames in GPU memory(required when chained with GPU filters such as `scale_cuda`)
0 commit comments