Team Ai
Apppublic

KBaba7/llama.cpp

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
0likes
test_basic.py97 linesDownload Raw Back to unit
1import pytest2import requests3from utils import *4 5server = ServerPreset.tinyllama2()6 7 8@pytest.fixture(scope="module", autouse=True)9def create_server():10    global server11    server = ServerPreset.tinyllama2()12 13 14def test_server_start_simple():15    global server16    server.start()17    res = server.make_request("GET", "/health")18    assert res.status_code == 20019 20 21def test_server_props():22    global server23    server.start()24    res = server.make_request("GET", "/props")25    assert res.status_code == 20026    assert ".gguf" in res.body["model_path"]27    assert res.body["total_slots"] == server.n_slots28    default_val = res.body["default_generation_settings"]29    assert server.n_ctx is not None and server.n_slots is not None30    assert default_val["n_ctx"] == server.n_ctx / server.n_slots31    assert default_val["params"]["seed"] == server.seed32 33 34def test_server_models():35    global server36    server.start()37    res = server.make_request("GET", "/models")38    assert res.status_code == 20039    assert len(res.body["data"]) == 140    assert res.body["data"][0]["id"] == server.model_alias41 42 43def test_server_slots():44    global server45 46    # without slots endpoint enabled, this should return error47    server.server_slots = False48    server.start()49    res = server.make_request("GET", "/slots")50    assert res.status_code == 501 # ERROR_TYPE_NOT_SUPPORTED51    assert "error" in res.body52    server.stop()53 54    # with slots endpoint enabled, this should return slots info55    server.server_slots = True56    server.n_slots = 257    server.start()58    res = server.make_request("GET", "/slots")59    assert res.status_code == 20060    assert len(res.body) == server.n_slots61    assert server.n_ctx is not None and server.n_slots is not None62    assert res.body[0]["n_ctx"] == server.n_ctx / server.n_slots63    assert "params" in res.body[0]64    assert res.body[0]["params"]["seed"] == server.seed65 66 67def test_load_split_model():68    global server69    server.model_hf_repo = "ggml-org/models"70    server.model_hf_file = "tinyllamas/split/stories15M-q8_0-00001-of-00003.gguf"71    server.model_alias = "tinyllama-split"72    server.start()73    res = server.make_request("POST", "/completion", data={74        "n_predict": 16,75        "prompt": "Hello",76        "temperature": 0.0,77    })78    assert res.status_code == 20079    assert match_regex("(little|girl)+", res.body["content"])80 81 82def test_no_webui():83    global server84    # default: webui enabled85    server.start()86    url = f"http://{server.server_host}:{server.server_port}"87    res = requests.get(url)88    assert res.status_code == 20089    assert "<html>" in res.text90    server.stop()91 92    # with --no-webui93    server.no_webui = True94    server.start()95    res = requests.get(url)96    assert res.status_code == 40497