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!
|
||||
](https://www.youtube.com/watch?v=6NbJQsCg1VQ)
|
||||
|
||||
## Open Source Repositorium
|
||||
https://github.com/joaomdmoura/crewAI
|
||||
|
||||
# Installation
|
||||
|
||||
```shell
|
||||
py -m venv venv
|
||||
|
||||
|
@ -13,4 +19,21 @@ Anleitungsvideo:
|
|||
#linux
|
||||
python -m venv venv
|
||||
./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