"vllm/vscode:/vscode.git/clone" did not exist on "39bfb57b7c89c2ae64d7d9b895e94c05ea9e965c"
test_prompt_validation.py 2.1 KB
Newer Older
1
2
# imports for guided decoding tests
import re
zhuwenwen's avatar
zhuwenwen committed
3
import os
4
5
6
7

import openai
import pytest

8
from ...utils import RemoteOpenAIServer, models_path_prefix
9
10
11
12


@pytest.mark.asyncio
async def test_empty_prompt():
13
    model_name = os.path.join(models_path_prefix, "gpt2")
14
15
16
17
18
19
20
21
22
23
    server_args = ["--enforce-eager"]
    with RemoteOpenAIServer(model_name, server_args) as remote_server:
        client = remote_server.get_async_client()

        with pytest.raises(openai.BadRequestError,
                           match=re.compile('.+Prompt cannot be empty.+')):
            await client.completions.create(model=model_name,
                                            prompt="",
                                            max_tokens=5,
                                            temperature=0.0)
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38


@pytest.mark.asyncio
async def test_out_of_vocab_token_ids():
    model_name = "gpt2"
    server_args = ["--enforce-eager"]
    with RemoteOpenAIServer(model_name, server_args) as remote_server:
        client = remote_server.get_async_client()

        with pytest.raises(openai.BadRequestError,
                           match=re.compile('.*out of vocabulary.*')):
            await client.completions.create(model=model_name,
                                            prompt=[999999],
                                            max_tokens=5,
                                            temperature=0.0)
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58


@pytest.mark.asyncio
async def test_reject_multistep_with_guided_decoding():
    model_name = "gpt2"
    server_args = ["--enforce-eager", "--num-scheduler-steps", "8"]
    with RemoteOpenAIServer(model_name, server_args) as remote_server:
        client = remote_server.get_async_client()

        with pytest.raises(openai.BadRequestError,
                           match=re.compile(
                               '.*Guided decoding .* multi-step decoding.*')):
            await client.completions.create(
                model=model_name,
                prompt="Hello",
                max_tokens=5,
                temperature=0.0,
                extra_body={"response_format": {
                    "type": "json_object"
                }})