diff --git a/computility-run.yaml b/computility-run.yaml index 41351f46..ac5b8ec2 100644 --- a/computility-run.yaml +++ b/computility-run.yaml @@ -15,7 +15,7 @@ command: - -tp - '4' - --max-num-seqs - - '1' + - '2' - --disable-log-requests - --disable-frontend-multiprocessing - --max-num-batched-tokens diff --git a/qwen3_6_scripts/protocol.py b/qwen3_6_scripts/protocol.py index a51a1c57..3a041b44 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 4ed841b5..366253b1 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: