Bot & Automation

jorgasisten

/root/hermes-projects/jorgasisten

tests/test_ai_client.py text
from jorgasisten.services.ai_client import parse_decision_content


def test_parse_decision_content_clamps_confidence() -> None:
    decision = parse_decision_content(
        """
        {
          "intent": "tanya_data",
          "sheet_name": "Booking",
          "operation": "read",
          "confidence": 140,
          "missing_fields": [],
          "data": {},
          "filters": {"nama": "Budi"},
          "reason": "Cocok",
          "user_reply": "Saya cek dulu."
        }
        """
    )

    assert decision.confidence == 100
    assert decision.sheet_name == "Booking"
    assert decision.filters == {"nama": "Budi"}


def test_parse_decision_content_accepts_general_chat() -> None:
    decision = parse_decision_content(
        """
        {
          "intent": "chat_umum",
          "sheet_name": "",
          "operation": "chat",
          "confidence": 95,
          "missing_fields": [],
          "data": {},
          "filters": {},
          "reason": "Pertanyaan umum",
          "user_reply": "bisaa pren, busi itu komponen pengapian motor."
        }
        """
    )

    assert decision.operation == "chat"
    assert decision.intent == "chat_umum"
    assert "busi" in decision.user_reply