File size: 2,028 Bytes
09d4173
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
46
47
48
49
50
"""Full adapter stack, with only the remote engine's HTTP transport simulated."""

import httpx
import pytest
from test_service import payload
from test_sglang import Engine

from jev_adapter.server import create_app
from jev_adapter.sglang import SGLangBackend


@pytest.mark.asyncio
async def test_public_request_through_real_service_and_sglang_client():
    engine = Engine()
    async with httpx.AsyncClient(transport=httpx.MockTransport(engine)) as upstream:
        backend = SGLangBackend("http://engine", "qwen", client=upstream)
        app = create_app(backend, api_key="client-key")
        async with (
            app.router.lifespan_context(app),
            httpx.AsyncClient(
                transport=httpx.ASGITransport(app),
                base_url="http://adapter",
            ) as client,
        ):
            body = payload()
            body["model"] = "jev-latest"
            body["images"] = ["data:image/png;base64,YQ=="]
            body["options"] = {"permutations": 2, "return_logprobs": True}
            response = await client.post(
                "/v1/systemone",
                json=body,
                headers={"Authorization": "Bearer client-key"},
            )
        assert response.status_code == 200, response.text
        result = response.json()
        assert result["model"] == "qwen"
        assert set(result["answers"]) == set(body["questions"])
        assert result["answers"]["route"]["probabilities"]["billing"] == pytest.approx(
            0.5
        )
        assert result["usage"] == {"input_tokens": 426, "output_tokens": 0}
        assert result["metadata"]["evaluations"] == 6
        generations = [data for path, data, _ in engine.calls if path == "/generate"]
        assert len(generations) == 6
        assert len({data["rid"] for data in generations}) == 6
        assert all(data["image_data"] == body["images"] for data in generations)
        assert all(
            data["sampling_params"]["max_new_tokens"] == 0 for data in generations
        )