import json,urllib.request,urllib.error,datetime
qs={
'A':'Was haben wir aus unseren verschiedenen Quellen über den sinnvollen Aufbau eines autonomen Agentensystems gelernt, und welche Architektur ergibt sich daraus?',
'B':'Welche wiederkehrenden Ursachen führen bei KI-Agentensystemen zu Ausfällen, Fehlverhalten oder unnötig hohen Kosten, und welche Gegenmaßnahmen lassen sich aus unseren vorhandenen Quellen ableiten?',
'C':'Welche praktischen Empfehlungen ergeben sich aus unseren vorhandenen Quellen dafür, KI-Agenten zuverlässig über längere Zeit autonom arbeiten zu lassen, ohne dass Qualität, Kostenkontrolle oder Nachvollziehbarkeit verloren gehen?',
'D':'Wie viele Lüftungsgeräte haben wir im Projekt Heinz Eisen verkauft, und aus welchen Unterlagen ergibt sich diese Zahl?',
'Y':'Welche konkreten Funktionen nennt die Quelle zum SmartFan Pro BT?',
'K':'Wie lautet die Menge in der Projekt-Eisen-Auftragsbestätigung?',
'N':'Welche exakte durchschnittliche Lebensdauer hat ein unbekanntes Gerät in einer nicht dokumentierten Marsstation?'}
out={}
for label,q in qs.items():
body=json.dumps({'question':q},ensure_ascii=False).encode(); req=urllib.request.Request('http://127.0.0.1:8655/api/knowledge/ask',body,{'Content-Type':'application/json'},method='POST')
try:
r=urllib.request.urlopen(req,timeout=180); d=json.load(r); out[label]={'question':q,'http':r.status,'content_type':r.headers.get('Content-Type'),'answer':d.get('answer'),'confidence':d.get('confidence'),'warning':d.get('warning'),'retrieval':d.get('retrieval'),'sources':d.get('sources')}
except urllib.error.HTTPError as e:
out[label]={'question':q,'http':e.code,'content_type':e.headers.get('Content-Type'),'error_body':e.read().decode('utf8','replace')[:500]}
except Exception as e:out[label]={'question':q,'error':type(e).__name__+': '+str(e)}
print(label,{'http':out[label].get('http'),'confidence':out[label].get('confidence'),'warning':out[label].get('warning'),'retrieval':out[label].get('retrieval')},flush=True)
open('/tmp/retrieval_repair_api_results.json','w').write(json.dumps(out,ensure_ascii=False,indent=2,default=str))