27 lines
916 B
Python
27 lines
916 B
Python
"""Tests for model adapters."""
|
|
|
|
import pytest
|
|
|
|
from app.model_adapters.base import ModelAdapter, ChatResponse
|
|
from app.model_adapters.providers import DeepSeekAdapter
|
|
|
|
|
|
def test_adapter_payload_and_extraction():
|
|
adapter = DeepSeekAdapter(api_key="test", model="deepseek-chat", base_url="https://x")
|
|
payload = adapter._build_payload("hello", {"temperature": 0.5, "max_tokens": 100})
|
|
assert payload["model"] == "deepseek-chat"
|
|
assert payload["messages"][0]["content"] == "hello"
|
|
|
|
response_text = adapter._extract_text(
|
|
{"choices": [{"message": {"content": "hi"}}]}
|
|
)
|
|
assert response_text == "hi"
|
|
|
|
|
|
def test_adapter_token_usage():
|
|
adapter = DeepSeekAdapter(api_key="test", model="m", base_url="https://x")
|
|
usage = adapter._extract_token_usage(
|
|
{"usage": {"prompt_tokens": 10, "completion_tokens": 5, "total_tokens": 15}}
|
|
)
|
|
assert usage["total_tokens"] == 15
|