anovo-api / tests /test_llm_client.py
rushabh13's picture
Improve GPT-OSS writing speed and reliability
3465c03
Raw
History Blame Contribute Delete
1.67 kB
"""Tests for the current writing-model registry and legacy migrations."""
from unittest.mock import Mock, patch
import pytest
from services.llm_client import _call_provider, resolve_premium_model
@pytest.mark.parametrize(
("selector", "expected"),
[
("gpt-oss-120b", "openai/gpt-oss-120b"),
("gpt-oss-20b", "openai/gpt-oss-20b"),
("compound", "groq/compound"),
("compound-mini", "groq/compound-mini"),
("qwen-3.6-27b", "qwen/qwen3.6-27b"),
("gpt-4o", "openai/gpt-oss-120b"),
("gpt-4o-mini", "openai/gpt-oss-20b"),
("Meta-Llama-3.1-405B-Instruct", "openai/gpt-oss-120b"),
],
)
def test_resolve_premium_model(selector, expected):
assert resolve_premium_model(selector) == expected
def test_resolve_premium_model_rejects_arbitrary_provider_ids():
with pytest.raises(ValueError, match="Unsupported writing model"):
resolve_premium_model("unknown/provider-model")
def test_gpt_oss_requests_low_reasoning_for_fast_writing():
response = Mock()
response.raise_for_status.return_value = None
response.json.return_value = {"choices": [{"message": {"content": "Ready"}}]}
with patch("services.llm_client.httpx.post", return_value=response) as post:
result = _call_provider(
url="https://provider.test/chat",
api_key="secret",
model="openai/gpt-oss-20b",
messages=[{"role": "user", "content": "Continue this draft"}],
temperature=0.7,
max_tokens=1024,
timeout=30.0,
)
assert result == "Ready"
assert post.call_args.kwargs["json"]["reasoning_effort"] == "low"