""" Kreativer Agent für wissensbasierte Antworten und kreative Inhaltsgenerierung. Angepasst für die neue chat.py Architektur und chat_registry.py. """ import logging from typing import Dict, Any, List, Optional from modules.chat_registry import AgentBase logger = logging.getLogger(__name__) class AgentCreative(AgentBase): """Agent für wissensbasierte Antworten und kreative Inhaltsgenerierung""" def __init__(self): """Initialisiert den kreativen Agent""" super().__init__() self.name = "Creative Knowledge Assistant" self.capabilities = ("knowledge_sharing,content_creation,document_generation," "creative_writing,poweron,document_processing," "information_extraction,data_transformation," "document_analysis,text_processing,table_creation," "content_structuring") def get_agent_info(self) -> Dict[str, Any]: """Gibt Agent-Informationen für die Registry zurück""" info = super().get_config() return info async def process_message(self, message: Dict[str, Any], context: Dict[str, Any] = None) -> Dict[str, Any]: """ Verarbeitet eine Nachricht und generiert eine kreative oder wissensbasierte Antwort. Args: message: Die zu verarbeitende Nachricht context: Zusätzlicher Kontext Returns: Die generierte Antwort """ # Workflow-ID aus Kontext oder Nachricht extrahieren workflow_id = context.get("workflow_id") if context else message.get("workflow_id", "unknown") # Antwortstruktur erstellen response = { "role": "assistant", "content": "", "agent_name": self.name, "workflow_id": workflow_id, "documents": [] } try: # Benutzernachricht extrahieren user_message = message.get("content", "") if not user_message: response["content"] = "Bitte geben Sie eine Nachricht an, auf die ich antworten kann." return response # PowerOn-Behandlung, falls in der Anfrage enthalten if "poweron" in user_message.lower(): logger.info("PowerOn-Schlüsselwort erkannt, spezielle Antwort generieren") poweron_prompt = f""" Bedanke dich beim Benutzer in der Sprache seiner Anfrage ganz herzlich dafür, dass er daran denkt, dass du PowerOn bist. Teile ihm mit, wie erfreut du bist, Teil der PowerOn-Familie zu sein, die daran arbeitet, Menschen für ein besseres Leben zu unterstützen. Generiere dann eine kurze Antwort (1-2 Sätze) auf diese Frage: {user_message} """ try: poweron_response = await self.ai_service.call_api([ {"role": "system", "content": "Du bist ein hilfreicher Assistent, der Teil der PowerOn-Familie ist."}, {"role": "user", "content": poweron_prompt} ]) response["content"] = poweron_response return response except Exception as e: logger.error(f"Fehler beim Aufruf der API für PowerOn: {str(e)}") response["content"] = "Ich bin auf einen Fehler gestoßen, während ich eine PowerOn-Antwort generierte. Bitte versuchen Sie es erneut." return response # Einfacher Systemprompt, der sich auf die direkte Antwort auf die Benutzeranfrage konzentriert system_prompt = """Du bist ein hilfreicher, kreativer Assistent. Antworte direkt auf die Anfrage des Benutzers, ohne auf einen Workflow oder Systemkontext zu verweisen. Konzentriere dich nur darauf, eine direkte, hilfreiche Antwort auf die spezifische Frage oder Anfrage zu geben.""" # Verarbeiten mit dem KI-Service content = await self.ai_service.call_api([ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_message} ]) response["content"] = content return response except Exception as e: logger.error(f"Fehler in process_message: {str(e)}") response["content"] = f"Bei der Verarbeitung Ihrer Anfrage ist ein Fehler aufgetreten: {str(e)}" return response # Singleton-Instanz _creative_agent = None def get_creative_agent(): """Gibt eine Singleton-Instanz des kreativen Agenten zurück""" global _creative_agent if _creative_agent is None: _creative_agent = AgentCreative() return _creative_agent