From f457906c29e9e63e68914761285da211469d1b37 Mon Sep 17 00:00:00 2001 From: project6-dev Date: Thu, 13 Aug 2026 01:02:53 +0000 Subject: [PATCH] fix: copy_blocks + max_completion_tokens (no new .so) --- .gitignore | 2 ++ qwen3_6_scripts/paged_attn.py | 3 ++- qwen3_6_scripts/protocol.py | 3 +++ qwen3_6_scripts/serving_chat.py | 3 +++ 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7a60b85 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__/ +*.pyc diff --git a/qwen3_6_scripts/paged_attn.py b/qwen3_6_scripts/paged_attn.py index e7daa2f..e8a8f2c 100644 --- a/qwen3_6_scripts/paged_attn.py +++ b/qwen3_6_scripts/paged_attn.py @@ -2256,4 +2256,5 @@ class PagedAttention: ) -> None: key_caches = [kv_cache[0] for kv_cache in kv_caches] value_caches = [kv_cache[1] for kv_cache in kv_caches] - ops.copy_blocks(key_caches, value_caches, src_to_dists) + import ixformer.functions as ixf_F + ixf_F.vllm_copy_cache(key_caches, value_caches, src_to_dists) diff --git a/qwen3_6_scripts/protocol.py b/qwen3_6_scripts/protocol.py index a51a1c5..3a041b4 100644 --- a/qwen3_6_scripts/protocol.py +++ b/qwen3_6_scripts/protocol.py @@ -180,6 +180,8 @@ class ChatCompletionRequest(OpenAIBaseModel): logprobs: Optional[bool] = False top_logprobs: Optional[int] = 0 max_tokens: Optional[int] = None + # OpenAI newer API field — treat as alias for max_tokens + max_completion_tokens: Optional[int] = None n: Optional[int] = 1 presence_penalty: Optional[float] = 0.0 response_format: Optional[ResponseFormat] = None @@ -193,6 +195,7 @@ class ChatCompletionRequest(OpenAIBaseModel): tool_choice: Optional[Union[Literal["none"], Literal["auto"], ChatCompletionNamedToolChoiceParam]] = "none" thinking: Optional[Union[bool, str, Dict[str, Any]]] = None + reasoning_effort: Optional[str] = None # NOTE this will be ignored by VLLM -- the model determines the behavior parallel_tool_calls: Optional[bool] = False diff --git a/qwen3_6_scripts/serving_chat.py b/qwen3_6_scripts/serving_chat.py index 4ed841b..366253b 100644 --- a/qwen3_6_scripts/serving_chat.py +++ b/qwen3_6_scripts/serving_chat.py @@ -394,6 +394,9 @@ class OpenAIServingChat(OpenAIServing): assert prompt_inputs is not None sampling_params: Union[SamplingParams, BeamSearchParams] + # OpenAI API: max_completion_tokens takes precedence over max_tokens + if request.max_completion_tokens is not None and request.max_tokens is None: + request.max_tokens = request.max_completion_tokens default_max_tokens = self.max_model_len - len( prompt_inputs["prompt_token_ids"]) if request.use_beam_search: