import asyncio import sys import os import json import uuid from pprint import pprint # Stelle sicher, dass das Verzeichnis mit den Modulen im Pfad ist sys.path.append(os.path.abspath(os.path.dirname(__file__))) # Importiere das Hauptmodul import modules.agentservice_interface as agi async def test_agentservice(): """ Einfacher Test für den AgentService mit Beispieldaten. Führt einen Workflow mit einem einfachen Text-Prompt und optionalen Dateien aus. """ print("Starte Test des AgentService...") # Erstelle einen neuen AgentService service = agi.get_agentservice_interface(mandate_id=1, user_id=1) # Erstelle eine Test-Workflow-ID workflow_id = f"test_{uuid.uuid4()}" # Beispiel-Prompt prompt = "Erstelle eine Zusammenfassung der wichtigsten Punkte aus den verfügbaren Dateien." # Beispiel-Agenten agents = [ { "id": "analyzer_1", "name": "Datenanalyst", "type": "analyzer", "capabilities": "Analysiert Daten, erstellt Statistiken und erkennt Muster." }, { "id": "writer_1", "name": "Zusammenfasser", "type": "writer", "capabilities": "Erstellt klare, prägnante Zusammenfassungen komplexer Inhalte." }, { "id": "init_1", "name": "Initialisierer", "type": "initialisierung", "capabilities": "Gibt einen ersten Überblick und strukturiert die Aufgabe." } ] # Optional: Beispiel-Dateien # Wenn du Dateien testen möchtest, passe diese Pfade an und setze use_files=True files = [] use_files = False if use_files: files = [ { "id": "text_1", "name": "beispiel.txt", "type": "document", "path": "pfad/zu/beispiel.txt", # Passe diesen Pfad an "size": "1KB" }, # Weitere Dateien hier hinzufügen ] # Führe den Workflow aus try: print(f"Starte Workflow {workflow_id}...") result_workflow_id = await service.execute_workflow(workflow_id, prompt, agents, files) print(f"Workflow {result_workflow_id} gestartet.") # Warte und hole regelmäßig den Status ab MAX_CHECKS = 30 check_interval = 2 # Sekunden for i in range(MAX_CHECKS): status = service.get_workflow_status(workflow_id) print(f"Status nach {i*check_interval}s: {status['status']}, Fortschritt: {status['progress']*100:.1f}%") if status['status'] in ['completed', 'failed']: print("Workflow beendet!") break await asyncio.sleep(check_interval) # Hole die Logs logs = service.get_workflow_logs(workflow_id) print("\n=== Logs ===") for log in logs: print(f"{log['timestamp'][:19]} [{log['type']}] {log['message']}") # Hole die Ergebnisse results = service.get_workflow_results(workflow_id) print("\n=== Ergebnisse ===") for result in results: print(f"\nErgebnis von {result['agent_name']} ({result['agent_id']}):") print(f"Titel: {result['title']}") print("-" * 50) print(result['content'][:500] + ("..." if len(result['content']) > 500 else "")) print("-" * 50) except Exception as e: print(f"Fehler bei der Ausführung des Workflows: {str(e)}") finally: # Schließe den Service await service.close() print("Test abgeschlossen.") if __name__ == "__main__": # Führe den Test aus asyncio.run(test_agentservice())