testscript

This commit is contained in:
Lars 2025-12-10 14:03:07 +01:00
parent 86464cec11
commit ff23ce6f00

View File

@ -1,48 +1,40 @@
import requests import requests
import json import sys
# URL anpassen, falls du auf Port 8001 (Prod) oder 8002 (Dev) bist
API_URL = "http://localhost:8002/chat/" API_URL = "http://localhost:8002/chat/"
def test_intent(message, expected_intent, expected_type_hint): def test_intent(message):
print(f"📡 Sende: '{message}' ...")
payload = { payload = {
"message": message, "message": message,
"top_k": 0, # Für Interview irrelevant "top_k": 0,
"explain": False "explain": False
} }
try: try:
response = requests.post(API_URL, json=payload) # Timeout nach 30 Sekunden erzwingen
response.raise_for_status() response = requests.post(API_URL, json=payload, timeout=30)
data = response.json()
if response.status_code != 200:
print(f"❌ Server Error {response.status_code}: {response.text}")
return
data = response.json()
intent = data.get("intent") intent = data.get("intent")
source = data.get("intent_source")
answer = data.get("answer") answer = data.get("answer")
print(f"--- TEST: '{message}' ---") print(f"✅ Ergebnis erhalten:")
print(f"Erkannter Intent: {intent}") print(f" Intent: {intent} (Quelle: {source})")
print(f"Antwort-Snippet: {answer[:100]}...") print(f" Antwort: {answer[:100]}...") # Nur die ersten 100 Zeichen
print("-" * 40)
if intent == expected_intent:
print("✅ Intent SUCCESS")
else:
print(f"❌ Intent FAILED (Erwartet: {expected_intent})")
if expected_type_hint.lower() in answer.lower():
print(f"✅ Context Check SUCCESS (Typ '{expected_type_hint}' erkannt)")
else:
print(f"⚠️ Context Check WARNING (Typ '{expected_type_hint}' nicht explizit im Start-Prompt gefunden)")
print("\n")
except requests.exceptions.Timeout:
print("❌ TIMEOUT: Das Backend antwortet nicht innerhalb von 30 Sekunden.")
print(" -> Prüfe das Terminal, wo uvicorn läuft. Gibt es dort Fehlermeldungen?")
except Exception as e: except Exception as e:
print(f"❌ Error: {e}") print(f"❌ Fehler: {e}")
if __name__ == "__main__": if __name__ == "__main__":
# Test 1: Projekt-Start # Testfall: Muss INTERVIEW auslösen
test_intent("Ich möchte ein neues Projekt anlegen", "INTERVIEW", "project") test_intent("Ich möchte ein neues Projekt anlegen")
# Test 2: Entscheidungs-Doku
test_intent("Lass uns eine Entscheidung festhalten", "INTERVIEW", "decision")
# Test 3: Standard Chat (Gegenprobe)
test_intent("Was ist ein Vektor?", "FACT", "")