-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_backends.py
More file actions
45 lines (35 loc) · 1.56 KB
/
test_backends.py
File metadata and controls
45 lines (35 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from __future__ import annotations
import pytest
from app.backends import resolve_backend
from app.config import Settings
@pytest.mark.parametrize(
"kind,expected_display,expected_health_path",
[
("vllm", "vLLM", "/health"),
("ollama", "Ollama", "/api/tags"),
("llamacpp", "llama.cpp", "/health"),
("tgi", "Text Generation Inference", "/health"),
("sglang", "SGLang", "/health"),
("localai", "LocalAI", "/health"),
("lmstudio", "LM Studio", "/v1/models"),
("openai", "OpenAI-compatible", "/health"),
],
)
def test_resolve_backend_known_kinds(kind, expected_display, expected_health_path):
settings = Settings(backend_kind=kind, backend_base_url="http://backend/v1")
backend = resolve_backend(settings)
assert backend.kind == kind
assert backend.display_name == expected_display
assert backend.health_path == expected_health_path
def test_unknown_kind_defaults_to_openai():
settings = Settings(backend_kind="does-not-exist", backend_base_url="http://backend/v1")
backend = resolve_backend(settings)
assert backend.kind == "openai"
def test_backend_api_key_added_as_auth_header():
settings = Settings(backend_api_key="xyz", backend_base_url="http://backend/v1")
backend = resolve_backend(settings)
assert backend.extra_headers["Authorization"] == "Bearer xyz"
def test_tgi_has_no_embeddings():
settings = Settings(backend_kind="tgi", backend_base_url="http://backend/v1")
backend = resolve_backend(settings)
assert backend.capabilities.embeddings is False