main
py 76 lines 2.38 KB
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 import pytest
5
6 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
7 from vllm.entrypoints.openai.completion.protocol import CompletionRequest
8 from vllm.exceptions import VLLMValidationError
9
10
11 @pytest.mark.parametrize("raw_value", [-2, 0.6, 10.5])
12 def test_chat_completion_request_rejects_invalid_thinking_token_budget(raw_value):
13 with pytest.raises(VLLMValidationError, match="thinking_token_budget"):
14 ChatCompletionRequest.model_validate(
15 {
16 "model": "qwen",
17 "messages": [{"role": "user", "content": "hello"}],
18 "thinking_token_budget": raw_value,
19 }
20 )
21
22
23 def test_chat_completion_request_accepts_valid_thinking_token_budget():
24 request = ChatCompletionRequest.model_validate(
25 {
26 "model": "qwen",
27 "messages": [{"role": "user", "content": "hello"}],
28 "thinking_token_budget": 10,
29 }
30 )
31 assert request.thinking_token_budget == 10
32
33
34 def test_chat_completion_request_accepts_minus_one_as_unlimited():
35 request = ChatCompletionRequest.model_validate(
36 {
37 "model": "qwen",
38 "messages": [{"role": "user", "content": "hello"}],
39 "thinking_token_budget": -1,
40 }
41 )
42 assert request.thinking_token_budget is None
43
44
45 @pytest.mark.parametrize("raw_value", [0.6, 3.14, -2])
46 def test_completion_request_rejects_invalid_thinking_token_budget(raw_value):
47 with pytest.raises(VLLMValidationError, match="thinking_token_budget"):
48 CompletionRequest.model_validate(
49 {
50 "model": "qwen",
51 "prompt": "hello",
52 "thinking_token_budget": raw_value,
53 }
54 )
55
56
57 def test_completion_request_accepts_valid_thinking_token_budget():
58 request = CompletionRequest.model_validate(
59 {
60 "model": "qwen",
61 "prompt": "hello",
62 "thinking_token_budget": 5,
63 }
64 )
65 assert request.thinking_token_budget == 5
66
67
68 def test_completion_request_accepts_minus_one_as_unlimited():
69 request = CompletionRequest.model_validate(
70 {
71 "model": "qwen",
72 "prompt": "hello",
73 "thinking_token_budget": -1,
74 }
75 )
76 assert request.thinking_token_budget is None