# Beschreibung: GPT Team für Wissen # Vorbereitung: pip install python-dotenv crewai langchain langchain-community setuptools wikipedia # pip install -U duckduckgo-search # Importieren Sie die erforderlichen Bibliotheken # Environment Variablen importieren from dotenv import load_dotenv load_dotenv() # CrewAI importieren from crewai import Agent, Task, Crew, Process # Tools importieren from langchain.agents import load_tools # DuckDuckGo importieren from langchain_community.tools import DuckDuckGoSearchRun # Wikipedia Suche importieren from langchain_community.tools.wikipedia.tool import WikipediaQueryRun from langchain_community.utilities.wikipedia import WikipediaAPIWrapper # Tools definieren human_tools = load_tools(["human"]) search_tool = DuckDuckGoSearchRun() wikipedia = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper()) # Agenten definieren wissenspruefer = Agent( role='Wissensprüfer', goal='Fokusiere die Fragestellung des Benutzers.', error_handling='Bei unklaren Fragen um Präzisierung bitten.', backstory='Als Wissensprüfer bin ich darauf spezialisiert, Fragen so zu stellen, dass sie Präzise beantwortet werden können.', verbose=True, allow_delegation=False, tools=human_tools ) wikipedia_recherche = Agent( role='Wikipedia-Recherche', goal='Finde verlässliche Informationen über Websuche und auf Wikipedia.', error_handling='Bei fehlenden Informationen um spezifischere Themen bitten.', backstory='Ich nutze Suchmaschinen und Wikipedia als Prüfinstanz, um verlässliche und genaue Informationen zu sammeln, die helfen, Wissensfragen zu beantworten und zu präzisieren.', verbose=True, allow_delegation=False, tools=[wikipedia,search_tool], ) korrektur_synthese = Agent( role='Korrektur und Synthese', goal='Erstelle eine korrigierte und informative Antwort.', error_handling='Bei unzureichenden Zusatzinformationen die ursprüngliche Antwort zurückgeben.', backstory='Mit einem Auge fürs Detail und einer Leidenschaft für Genauigkeit nehme ich Antworten unter die Lupe und verbessere sie mithilfe von verifizierten Informationen.', verbose=True, allow_delegation=False, ) # Tasks definieren (wie vorher) fragenanalyse_task = Task( description='Analysiere die Frage, um Kernthemen zu identifizieren.', expected_output='Liste von Kernthemen oder Schlüsselkonzepten.', agent=wissenspruefer, ) wikipedia_recherche_task = Task( description='Suche auf Wikipedia nach relevanten Informationen.', expected_output='Zusammengefasste Informationen aus Wikipedia.', agent=wikipedia_recherche, ) korrektur_synthese_task = Task( description='Synthetisiere eine korrigierte Antwort.', expected_output='Eine überarbeitete und korrigierte Antwort.', agent=korrektur_synthese, ) # Crew zusammenstellen wissens_crew = Crew( agents=[wissenspruefer, wikipedia_recherche, korrektur_synthese], tasks=[fragenanalyse_task, wikipedia_recherche_task, korrektur_synthese_task], ) # Crew-Aktion starten result = wissens_crew.kickoff() # Ergebnis ausgeben print(result)