import requests import json import sys import time # Konfiguration BASE_URL = "http://localhost:8001" QUERY_URL = f"{BASE_URL}/query" FEEDBACK_URL = f"{BASE_URL}/feedback" def run_test(): print(f"--- 1. Sende Suchanfrage an {QUERY_URL} ---") query_payload = { "query": "mindnet architecture", "mode": "hybrid", "top_k": 2, "explain": True # Wir wollen auch Breakdown loggen } try: r = requests.post(QUERY_URL, json=query_payload) r.raise_for_status() res_data = r.json() except Exception as e: print(f"ERROR bei Suche: {e}") sys.exit(1) query_id = res_data.get("query_id") results = res_data.get("results", []) if not query_id: print("FAIL: Keine query_id in der Antwort erhalten!") sys.exit(1) if not results: print("WARNUNG: Keine Treffer gefunden, Test kann Feedback nur simuliert senden.") target_node_id = "fake-node-id" else: target_node_id = results[0].get("node_id") print(f"SUCCESS: Suche OK. Erhaltene Query-ID: {query_id}") print(f"Target Node für Feedback: {target_node_id}") # Kurze Pause, damit Background-Task Zeit hat zu schreiben (nur für Log-Check relevant) time.sleep(0.5) print(f"\n--- 2. Sende Feedback an {FEEDBACK_URL} ---") feedback_payload = { "query_id": query_id, "node_id": target_node_id, "score": 1, "comment": "Automatisierter Smoke-Test: Dieser Treffer war hilfreich." } try: r_fb = requests.post(FEEDBACK_URL, json=feedback_payload) r_fb.raise_for_status() print(f"SUCCESS: Feedback gesendet. Status: {r_fb.status_code}") print(f"Response: {r_fb.json()}") except Exception as e: print(f"ERROR bei Feedback: {e}") sys.exit(1) if __name__ == "__main__": run_test()