example added
This commit is contained in:
parent
0527fcb015
commit
5a31c360b0
25
README.md
25
README.md
|
@ -1,9 +1,15 @@
|
||||||
Anleitungsvideo:
|
# crewAI
|
||||||
|
|
||||||
|
## Anleitungsvideo
|
||||||
|
|
||||||
[Youtube: CrewAI Python Tutorial for Beginners - Let's Build an AI Crew!
|
[Youtube: CrewAI Python Tutorial for Beginners - Let's Build an AI Crew!
|
||||||
](https://www.youtube.com/watch?v=6NbJQsCg1VQ)
|
](https://www.youtube.com/watch?v=6NbJQsCg1VQ)
|
||||||
|
|
||||||
|
## Open Source Repositorium
|
||||||
|
https://github.com/joaomdmoura/crewAI
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
py -m venv venv
|
py -m venv venv
|
||||||
|
|
||||||
|
@ -13,4 +19,21 @@ Anleitungsvideo:
|
||||||
#linux
|
#linux
|
||||||
python -m venv venv
|
python -m venv venv
|
||||||
./venv/bin/activate)
|
./venv/bin/activate)
|
||||||
|
|
||||||
|
|
||||||
|
pip install python-dotenv crewai langchain langchain-community setuptools wikipedia duckduckgo-search openai
|
||||||
|
|
||||||
|
|
||||||
|
## Mit localen Large Language Modulen (LLM)
|
||||||
|
|
||||||
|
## Install Ollama
|
||||||
|
## https://ollama.com/
|
||||||
|
|
||||||
|
pip install ollama
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Alle Beispiele lassen sich wie folgt starten mit:
|
||||||
|
|
||||||
|
`python beispieldatei.py`
|
||||||
|
|
95
crew-news-post-mistral.py
Normal file
95
crew-news-post-mistral.py
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
# 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-Agenten initialisieren
|
||||||
|
blogschreiber_agent = Agent(
|
||||||
|
role='Blogschreiber',
|
||||||
|
goal='Erstelle einen Blogbeitrag in deutscher Sprache basierend auf den neuesten Nachrichten zum Thema Bildung und KI',
|
||||||
|
backstory='Ein Agent, der fähig ist, informative und ansprechende Blogbeiträge zu schreiben.',
|
||||||
|
llm=mistral,
|
||||||
|
verbose=True,
|
||||||
|
allow_delegation=False
|
||||||
|
)
|
||||||
|
|
||||||
|
# Aufgabe für den Blogschreiber
|
||||||
|
blog_beitrag_schreiben_task = Task(
|
||||||
|
description='Schreibe einen deutschsprachigen Blogbeitrag zum den neuesten Entwicklungen, in dem du eine gelungene Einleitung verfasst und danach die Ergebnisse deines Co-Workers kommentierst und die die Links zu den Beiträgen setzt',
|
||||||
|
agent=blogschreiber_agent,
|
||||||
|
context=[nachrichten_suchen_task], # Der Blogschreiber verwendet die Ergebnisse des Nachrichtenagenten
|
||||||
|
expected_output='Ein fertiger Blogbeitrag zum Thema Bildung und KI 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)
|
Reference in a new issue