|
|
@ -10,6 +10,7 @@ from langchain_community.tools import DuckDuckGoSearchRun
|
|
|
|
# ChatCPT 3.5 importieren
|
|
|
|
# ChatCPT 3.5 importieren
|
|
|
|
from langchain_openai import ChatOpenAI
|
|
|
|
from langchain_openai import ChatOpenAI
|
|
|
|
turbo35 = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7)
|
|
|
|
turbo35 = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7)
|
|
|
|
|
|
|
|
gpt4 = ChatOpenAI(model_name="gpt-4-0125-preview", temperature=0.7)
|
|
|
|
|
|
|
|
|
|
|
|
# Wikipedia Suche importieren
|
|
|
|
# Wikipedia Suche importieren
|
|
|
|
from langchain_community.tools.wikipedia.tool import WikipediaQueryRun
|
|
|
|
from langchain_community.tools.wikipedia.tool import WikipediaQueryRun
|
|
|
@ -20,7 +21,8 @@ from langchain_community.tools.arxiv.tool import ArxivQueryRun
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Initialisieren Sie die Tools
|
|
|
|
# Initialisieren Sie die Tools
|
|
|
|
ollama_llm = Ollama(model="mistral")
|
|
|
|
ollama_llm = Ollama(model="solar")
|
|
|
|
|
|
|
|
starcoder2 = Ollama(model="starcoder2")
|
|
|
|
search_tool = DuckDuckGoSearchRun()
|
|
|
|
search_tool = DuckDuckGoSearchRun()
|
|
|
|
wikipedia = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())
|
|
|
|
wikipedia = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())
|
|
|
|
arxiv = ArxivQueryRun()
|
|
|
|
arxiv = ArxivQueryRun()
|
|
|
@ -31,8 +33,9 @@ informations_sammler = Agent(
|
|
|
|
goal='Sammeln von Basisinformationen und Zitate zum Thema',
|
|
|
|
goal='Sammeln von Basisinformationen und Zitate zum Thema',
|
|
|
|
backstory="""Spezialisiert auf die Sammlung und Analyse von Grundinformationen und wichtiger Zitate.""",
|
|
|
|
backstory="""Spezialisiert auf die Sammlung und Analyse von Grundinformationen und wichtiger Zitate.""",
|
|
|
|
verbose=True,
|
|
|
|
verbose=True,
|
|
|
|
|
|
|
|
async_execution=True,
|
|
|
|
allow_delegation=False,
|
|
|
|
allow_delegation=False,
|
|
|
|
llm=ollama_llm
|
|
|
|
llm=gpt4
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
informations_verifizierer = Agent(
|
|
|
|
informations_verifizierer = Agent(
|
|
|
@ -40,40 +43,43 @@ informations_verifizierer = Agent(
|
|
|
|
goal='Verifizieren und Erweitern der Informationen durch Websuche. Füge Zitate und Urls als Belege hinzu. Entferne falsche Informationen aus den Ergebnissen. Suche nach weiteren Informationen und Zitaten gegebenenfalls über deutsche und englische Wikipedia. Nutze geignete Begriffe für die Suche in Arxiv.',
|
|
|
|
goal='Verifizieren und Erweitern der Informationen durch Websuche. Füge Zitate und Urls als Belege hinzu. Entferne falsche Informationen aus den Ergebnissen. Suche nach weiteren Informationen und Zitaten gegebenenfalls über deutsche und englische Wikipedia. Nutze geignete Begriffe für die Suche in Arxiv.',
|
|
|
|
backstory="""Experte in der Überprüfung von Informationen und der Erweiterung durch effektive Websuchen.""",
|
|
|
|
backstory="""Experte in der Überprüfung von Informationen und der Erweiterung durch effektive Websuchen.""",
|
|
|
|
verbose=True,
|
|
|
|
verbose=True,
|
|
|
|
allow_delegation=False,
|
|
|
|
allow_delegation=True,
|
|
|
|
tools=[search_tool,wikipedia,arxiv],
|
|
|
|
async_execution=False,
|
|
|
|
llm=ollama_llm
|
|
|
|
tools=[search_tool,wikipedia],
|
|
|
|
|
|
|
|
llm=gpt4
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
informations_organisator = Agent(
|
|
|
|
informations_organisator = Agent(
|
|
|
|
role='Inhaltsmanager',
|
|
|
|
role='Inhaltsmanager',
|
|
|
|
goal='Gliedern der Informationen, Zitate und Links nach Kategorien',
|
|
|
|
goal='Gliedern der korrekten Informationen, Zitate und Links nach Kategorien',
|
|
|
|
backstory="""Zuständig für die Organisation der gesammelten Informationen in einer strukturierten Form.""",
|
|
|
|
backstory="""Zuständig für die Organisation der korrekten Informationen in einer strukturierten Form.""",
|
|
|
|
verbose=True,
|
|
|
|
verbose=True,
|
|
|
|
allow_delegation=False,
|
|
|
|
allow_delegation=False,
|
|
|
|
llm=ollama_llm
|
|
|
|
async_execution=False,
|
|
|
|
|
|
|
|
llm=gpt4
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# Erstellen Sie Aufgaben für Ihre Agenten
|
|
|
|
# Erstellen Sie Aufgaben für Ihre Agenten
|
|
|
|
task1 = Task(
|
|
|
|
task1 = Task(
|
|
|
|
description="""Sammle grundlegende Informationen über eun Thema.""",
|
|
|
|
description="""Sammle grundlegende Informationen über eun Thema.""",
|
|
|
|
#agent=informations_sammler,
|
|
|
|
agent=informations_sammler,
|
|
|
|
expected_output="""Eine Zusammenfassung von Basisinformationen über das Thema,
|
|
|
|
expected_output="""Eine Zusammenfassung von Basisinformationen über das Thema,
|
|
|
|
einschließlich Definitionen, wichtigsten Fakten und allgemeinem Überblick."""
|
|
|
|
einschließlich Definitionen, wichtigsten Fakten und allgemeinem Überblick."""
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
task2 = Task(
|
|
|
|
task2 = Task(
|
|
|
|
description="""Verifiziere die gesammelten Informationen und erweitere sie durch zusätzliche Websuchen.""",
|
|
|
|
description="""Verifiziere die gesammelten Informationen, streiche falsche und erweitere sie durch zusätzliche Websuchen.""",
|
|
|
|
#agent=informations_verifizierer,
|
|
|
|
agent=informations_verifizierer,
|
|
|
|
expected_output="""Eine verifizierte und erweiterte Liste von Informationen zu Thema X,
|
|
|
|
expected_output="""Eine verifizierte und erweiterte Liste von Informationen zu Thema X,
|
|
|
|
inklusive zusätzlicher Quellen und tiefergehenden Einsichten."""
|
|
|
|
inklusive zusätzlicher Quellen und tiefergehenden Einsichten.""",
|
|
|
|
|
|
|
|
context=[task1]
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
task3 = Task(
|
|
|
|
task3 = Task(
|
|
|
|
description="""Erzeuge aus den gesammelten und verifizierten Informationen einegeliedertes Essay von 2000 Worten, dass die Zusammenstellung der recherchierten und verifizierten Informationen mit entsprechenden Quellenangaben berücksichtigt.""",
|
|
|
|
description="""Erzeuge aus den gesammelten und verifizierten Informationen eine Zusammenstellung mit entsprechenden Quellenangaben.""",
|
|
|
|
#agent=informations_organisator,
|
|
|
|
agent=informations_organisator,
|
|
|
|
expected_output="""Ein gut strukturiertes Dokument, das die Informationen zu Thema X
|
|
|
|
expected_output="""Eine Liste mit verifizierten Informationen.""",
|
|
|
|
klar gegliedert präsentiert, für einen umfassenden einblick in das Thema."""
|
|
|
|
context=[task2]
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# Instanziieren Sie Ihre Crew mit einem sequenziellen Prozess
|
|
|
|
# Instanziieren Sie Ihre Crew mit einem sequenziellen Prozess
|
|
|
@ -81,8 +87,8 @@ crew = Crew(
|
|
|
|
agents=[informations_sammler, informations_verifizierer, informations_organisator],
|
|
|
|
agents=[informations_sammler, informations_verifizierer, informations_organisator],
|
|
|
|
tasks=[task1, task2, task3],
|
|
|
|
tasks=[task1, task2, task3],
|
|
|
|
verbose=2,
|
|
|
|
verbose=2,
|
|
|
|
manager_llm=turbo35,
|
|
|
|
manager_llm=gpt4,
|
|
|
|
process=Process.hierarchical
|
|
|
|
process=Process.sequential
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# Starten Sie den Arbeitsprozess!
|
|
|
|
# Starten Sie den Arbeitsprozess!
|
|
|
|