File size: 1,443 Bytes
41d24d2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from fastapi.testclient import TestClient
from llmlib.bundler_request import BundlerRequest
import llmlib.rest_api.restapi_client as llmclient
from llmlib.rest_api.restapi_server import create_fastapi_app
from llmlib.phi3.phi3 import Phi3Vision
import pytest
from .helpers import is_ci, mona_lisa_message


def app():
    return TestClient(create_fastapi_app())


@pytest.mark.skipif(condition=is_ci(), reason="No GPU in CI")
def test_rest_api_get_completion():
    breq: BundlerRequest = _mona_lisa_request()
    response = llmclient.get_completion_from_rest_api(source=app(), breq=breq)
    assert response.status_code == 200, response.content
    assert "portrait" in response.json()["response"].lower()


def test_rest_api_get_models():
    response = llmclient.get_models(source=app())
    assert response.status_code == 200, response.content
    assert len(response.json()) > 3


@pytest.mark.skip(reason="This test requires the REST API to be running")
def test_rest_api_integration_test():
    breq: BundlerRequest = _mona_lisa_request()
    response = llmclient.get_completion_from_rest_api(breq)
    llmclient.clear_gpu()
    assert response.status_code == 200, response.content
    assert "portrait" in response.json()["response"].lower()


def _mona_lisa_request() -> BundlerRequest:
    msg = mona_lisa_message()
    some_valid_modelid: str = Phi3Vision.model_id
    return BundlerRequest(model_id=some_valid_modelid, msgs=[msg])