This commit is contained in:
Joachim Happel 2024-03-25 13:05:23 +01:00
parent e5ff13fea6
commit d850577d58

View file

@ -0,0 +1,92 @@
# 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)