This repository has been archived on 2024-08-28. You can view files and clone it, but cannot push or open issues or pull requests.
crew-ai-codecollection/crew-news-post-mistral.py
2024-03-25 23:19:17 +01:00

95 lines
3.5 KiB
Python

# Beschreibung: GPT Team aus OpenAI und Ollama
# Vorbereitung: pip install ollama openai
# Importieren Sie die erforderlichen Bibliotheken
import asyncio
import platform
if platform.system() == 'Windows':
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
# Environment Variablen importieren
from dotenv import load_dotenv
load_dotenv()
# CrewAI importieren
from crewai import Agent, Task, Crew, Process
# Suche-Tool importieren
from langchain_community.tools import DuckDuckGoSearchRun
# LLMs von OpenAI und Ollama importieren
from langchain_community.llms import OpenAI, Ollama
from langchain_openai import ChatOpenAI
mistral = Ollama(model="mistral");
phi = Ollama(model="phi");
turbo35 = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7)
chatgpt4 = ChatOpenAI(model_name="gpt-4", temperature=0.8)
# Tools importieren
from langchain.agents import load_tools
from langchain.tools import tool
@tool('DuckDuckGoSearch')
def search(search_query: str):
"""Suche im Internet nach Informationen zu einem bestimmten Thema"""
return DuckDuckGoSearchRun().run(search_query)
# Nachrichtenagenten initialisieren
nachrichten_agent = Agent(
role='Nachrichtenagent',
goal='Finde die neuesten Nachrichten zum Thema Bildung und KI im deutschsprachigen Internet',
backstory='Ein Agent, der im Internet nach den neuesten Entwicklungen im Bereich Bildung und Künstliche Intelligenz sucht.',
tools=[DuckDuckGoSearchRun()],
llm=mistral,
deligate_tools=False,
verbose=True
)
# Aufgabe für den Nachrichtenagenten
nachrichten_suchen_task = Task(
description='Suche nach den neuesten Meldungen zum Thema Theologie und KI mit DuckDuckGo. ',
agent=nachrichten_agent,
expected_output='Eine Liste der neuesten Nachrichten zum Thema Bildung und KI'
)
# Blogschreiber-Agent für Theologie und KI initialisieren
blogschreiber_agent = Agent(
role='Wissenschaftsjournalist und Influencer',
goal='Erstelle einen Blogbeitrag, der die neuesten Beiträge im Schnittbereich von Ethik, Theologie und KI-Forschung kommentiert und analysiert',
backstory='Ein Agent, der sich auf der Schnittstelle zwischen Theologie und KI-Forschung bewegt und regelmäßig Beiträge zu Ethik, Bildung und der Bedeutung dieser Themen im Kontext von KI schreibt.',
llm=mistral,
verbose=True,
allow_delegation=False
)
# Aufgabe für den Blogschreiber spezifiziert für Theologie und KI
blog_beitrag_schreiben_task = Task(
description='Recherchiere die neuesten Beiträge im Bereich Theologie und KI, Finde einen passenenden Titel für deinen Beitrag und schreibe eine einleitende Analyse und diskutiere die ethischen, theologischen sowie bildungsrelevanten Implikationen. Verlinke die recherchierten Beiträge und integriere sie in eine umfassende Diskussion.',
agent=blogschreiber_agent,
context=[nachrichten_suchen_task], # Der Blogschreiber nutzt die Ergebnisse des Nachrichtenagenten
expected_output='Ein tiefgründiger Blogbeitrag mit wervollen Links zum aktuellen Diskurs, der die Verbindung zwischen Theologie, Ethik und KI-Forschung beleuchtet, mit Bezug auf aktuelle Forschung und Diskussionen. Der Beitrag ist in Mardown und auf deutsch'
)
# Crew mit beiden Agenten und Aufgaben initialisieren
crew = Crew(
agents=[nachrichten_agent, blogschreiber_agent],
tasks=[nachrichten_suchen_task, blog_beitrag_schreiben_task],
process=Process.sequential,
verbose=2
)
# Crew-Aktion starten
result = crew.kickoff()
print(result)