WP06 #4

Merged
Lars merged 15 commits from WP06 into main 2025-12-09 17:14:52 +01:00
Showing only changes of commit 972cd0dfac - Show all commits

View File

@ -1,14 +1,14 @@
"""
tests/test_wp06_decision.py Flexibler Integrationstest für WP-06
Führt eine Entscheidungsfrage gegen die API aus.
Unterstützt Parameter für Frage und Port.
Unterstützt Parameter für Frage, Port und erwarteten Intent.
"""
import requests
import json
import sys
import argparse
def test_decision_engine(query: str, port: int):
def test_decision_engine(query: str, port: int, expected_intent: str):
api_url = f"http://localhost:{port}"
print(f"🔵 Starte WP-06 Decision Engine Test gegen {api_url}...\n")
@ -31,8 +31,9 @@ def test_decision_engine(query: str, port: int):
# 1. Intent Check
intent = data.get("intent", "UNKNOWN")
print(f"\n1. INTENT DETECTION: [{'' if intent == 'DECISION' else ''}]")
print(f" Erkannt: {intent}")
match = intent == expected_intent
print(f"\n1. INTENT DETECTION: [{'' if match else ''}]")
print(f" Erkannt: {intent} (Erwartet: {expected_intent})")
# 2. Source Check (Strategic Retrieval)
sources = data.get("sources", [])
@ -52,11 +53,10 @@ def test_decision_engine(query: str, port: int):
# Marker für Ausgabe
marker = " "
if node_type in ["value", "principle", "goal"]:
# Wir prüfen hier generisch auf alle strategischen Typen
if node_type in ["value", "principle", "goal", "experience", "belief", "profile"]:
marker = "🎯" # Strategischer Treffer
strategic_hits.append(title)
elif node_type in ["decision", "experience"]:
marker = "🧠"
else:
marker = "📄"
fact_hits.append(title)
@ -67,7 +67,7 @@ def test_decision_engine(query: str, port: int):
if strategic_hits:
print(f"\n ✅ ERFOLG: Strategische Quellen geladen: {strategic_hits}")
else:
print(f"\n ⚠️ WARNUNG: Keine strategischen Quellen (Value/Principle/Goal) gefunden.")
print(f"\n INFO: Keine strategischen Quellen (Value/Experience/etc.) gefunden.")
# 3. Reasoning Check (LLM Antwort)
answer = data.get("answer", "")
@ -91,7 +91,10 @@ if __name__ == "__main__":
parser.add_argument("--port", "-p", type=int,
default=8002,
help="Der Port der API (Default: 8002 für Dev).")
parser.add_argument("--expect", "-e", type=str,
default="DECISION",
help="Der erwartete Intent (z.B. DECISION, EMPATHY).")
args = parser.parse_args()
test_decision_engine(args.query, args.port)
test_decision_engine(args.query, args.port, args.expect)