Spaces:
Build error
Build error
import pytest | |
import requests | |
from utils import * | |
server = ServerPreset.tinyllama2() | |
def create_server(): | |
global server | |
server = ServerPreset.tinyllama2() | |
def test_server_start_simple(): | |
global server | |
server.start() | |
res = server.make_request("GET", "/health") | |
assert res.status_code == 200 | |
def test_server_props(): | |
global server | |
server.start() | |
res = server.make_request("GET", "/props") | |
assert res.status_code == 200 | |
assert ".gguf" in res.body["model_path"] | |
assert res.body["total_slots"] == server.n_slots | |
default_val = res.body["default_generation_settings"] | |
assert server.n_ctx is not None and server.n_slots is not None | |
assert default_val["n_ctx"] == server.n_ctx / server.n_slots | |
assert default_val["params"]["seed"] == server.seed | |
def test_server_models(): | |
global server | |
server.start() | |
res = server.make_request("GET", "/models") | |
assert res.status_code == 200 | |
assert len(res.body["data"]) == 1 | |
assert res.body["data"][0]["id"] == server.model_alias | |
def test_server_slots(): | |
global server | |
# without slots endpoint enabled, this should return error | |
server.server_slots = False | |
server.start() | |
res = server.make_request("GET", "/slots") | |
assert res.status_code == 501 # ERROR_TYPE_NOT_SUPPORTED | |
assert "error" in res.body | |
server.stop() | |
# with slots endpoint enabled, this should return slots info | |
server.server_slots = True | |
server.n_slots = 2 | |
server.start() | |
res = server.make_request("GET", "/slots") | |
assert res.status_code == 200 | |
assert len(res.body) == server.n_slots | |
assert server.n_ctx is not None and server.n_slots is not None | |
assert res.body[0]["n_ctx"] == server.n_ctx / server.n_slots | |
assert "params" in res.body[0] | |
assert res.body[0]["params"]["seed"] == server.seed | |
def test_load_split_model(): | |
global server | |
server.model_hf_repo = "ggml-org/models" | |
server.model_hf_file = "tinyllamas/split/stories15M-q8_0-00001-of-00003.gguf" | |
server.model_alias = "tinyllama-split" | |
server.start() | |
res = server.make_request("POST", "/completion", data={ | |
"n_predict": 16, | |
"prompt": "Hello", | |
"temperature": 0.0, | |
}) | |
assert res.status_code == 200 | |
assert match_regex("(little|girl)+", res.body["content"]) | |
def test_no_webui(): | |
global server | |
# default: webui enabled | |
server.start() | |
url = f"http://{server.server_host}:{server.server_port}" | |
res = requests.get(url) | |
assert res.status_code == 200 | |
assert "<html>" in res.text | |
server.stop() | |
# with --no-webui | |
server.no_webui = True | |
server.start() | |
res = requests.get(url) | |
assert res.status_code == 404 | |