31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from agents.providers import DeterministicCodingProvider
|
||
|
|
from control_plane.resources.models import ModelRequest, Resource, ResourceKind
|
||
|
|
from model_router.router import ModelCapability, ModelRequestContract, ModelRouter
|
||
|
|
|
||
|
|
|
||
|
|
def test_model_router_persists_sanitized_request_metadata() -> None:
|
||
|
|
Resource.objects.create(
|
||
|
|
name="Qwen Test",
|
||
|
|
kind=ResourceKind.MODEL,
|
||
|
|
provider="qwen",
|
||
|
|
roles=["CODING"],
|
||
|
|
)
|
||
|
|
router = ModelRouter({"qwen": DeterministicCodingProvider()}, persist_requests=True)
|
||
|
|
|
||
|
|
router.complete(ModelRequestContract(purpose=ModelCapability.CODING, prompt="secret-looking prompt must not persist"))
|
||
|
|
|
||
|
|
request = ModelRequest.objects.get()
|
||
|
|
assert request.status == "COMPLETE"
|
||
|
|
assert request.logical_role == "CODING"
|
||
|
|
assert request.request["prompt_chars"] > 0
|
||
|
|
assert request.request["contains_raw_prompt"] is False
|
||
|
|
assert "secret-looking" not in str(request.request)
|
||
|
|
|
||
|
|
|
||
|
|
def test_model_router_health_is_non_throwing() -> None:
|
||
|
|
router = ModelRouter({"qwen": DeterministicCodingProvider()})
|
||
|
|
|
||
|
|
assert router.health() == {"qwen": "AVAILABLE"}
|