# 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() # Importieren von erforderlichen Bibliotheken für Windows import asyncio import platform if platform.system() == 'Windows': asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) # CrewAI importieren from crewai import Agent, Task, Crew, Process # Tools importieren from langchain.agents import load_tools # DuckDuckGo # from langchain_community.tools import DuckDuckGoSearchRun # search_tool = DuckDuckGoSearchRun() from langchain_community.utilities import DuckDuckGoSearchAPIWrapper from langchain_community.tools import DuckDuckGoSearchResults wrapper = DuckDuckGoSearchAPIWrapper(region="de-de", time="d", max_results=10) search_tool = DuckDuckGoSearchResults(api_wrapper=wrapper, source="text") # 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"]) wikipedia = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper()) # Agenten definieren wissenspruefer = Agent( role='Wissensprüfer', goal='Ermittelt die Fragestellung des Benutzers.', error_handling='Bei unklaren Fragen um Präzisierung bitten.', backstory='Als Wissensprüfer bin ich darauf spezialisiert, Fragen der Menschen so zu formulieren, 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, in Online-Werken, Wissensammlungen und auf Wikipedia.', error_handling='Bei fehlenden Informationen um spezifischere Themen bitten.', backstory='Ich nutze das Web 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=[search_tool, wikipedia], ) 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)