23 lines
748 B
Python
23 lines
748 B
Python
from app.proactive.classifier import MessageClassifier
|
|
|
|
|
|
class StubLLM:
|
|
def __init__(self, payload):
|
|
self.payload = payload
|
|
|
|
async def json(self, _messages):
|
|
return self.payload
|
|
|
|
|
|
async def test_classifier_accepts_named_confidence_and_string_flags() -> None:
|
|
result = await MessageClassifier(
|
|
StubLLM({"is_question": "true", "project_related": "yes", "confidence": "high"})
|
|
).classify("Где конфиг?")
|
|
assert result.is_question and result.project_related
|
|
assert result.confidence == 0.9
|
|
|
|
|
|
async def test_classifier_falls_back_safely_for_invalid_confidence() -> None:
|
|
result = await MessageClassifier(StubLLM({"confidence": "unknown"})).classify("text")
|
|
assert result.confidence == 0.0
|