add google search
This commit is contained in:
parent
ad96cf315e
commit
33e6acafe4
|
@ -13,7 +13,7 @@ turbo35 = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7)
|
||||||
|
|
||||||
# erforderlichen Bibliotheken
|
# erforderlichen Bibliotheken
|
||||||
from crewai import Agent, Task, Crew
|
from crewai import Agent, Task, Crew
|
||||||
from crewai_tools import DirectoryReadTool, FileReadTool, WebsiteSearchTool
|
from crewai_tools import DirectoryReadTool, FileReadTool, WebsiteSearchTool, ScrapeWebsiteTool
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
# Set date
|
# Set date
|
||||||
|
@ -22,20 +22,20 @@ date_today = datetime.now().strftime("%Y-%m-%d")
|
||||||
# Instantiate tools
|
# Instantiate tools
|
||||||
docs_tools = DirectoryReadTool(directory='F:\\blog-posts')
|
docs_tools = DirectoryReadTool(directory='F:\\blog-posts')
|
||||||
file_read_tool = FileReadTool()
|
file_read_tool = FileReadTool()
|
||||||
website_rag = WebsiteSearchTool()
|
website_rag = ScrapeWebsiteTool()
|
||||||
|
|
||||||
# Create agents
|
# Create agents
|
||||||
researcher = Agent(
|
researcher = Agent(
|
||||||
role='OER Analyst',
|
role='Reseacher',
|
||||||
goal='Finde neue Beiträge auf https://www.theology.de/service/neuesaufeinenblick.php für den Blogpost',
|
goal='Finde neue Beiträge auf https://www.theo-web.de/ für den Blogpost',
|
||||||
backstory='Ein Agent, der im Internet nach den neuesten Entwicklungen im Bereich OER sucht.',
|
backstory='Ein Agent, der im Internet nach den neuesten Entwicklungen im Bereich Theologie, KI und Bildung sucht.',
|
||||||
llm=turbo35,
|
llm=turbo35,
|
||||||
tools=[website_rag]
|
tools=[website_rag]
|
||||||
)
|
)
|
||||||
|
|
||||||
writer = Agent(
|
writer = Agent(
|
||||||
role='Content Writer',
|
role='Content Writer',
|
||||||
goal='Schreibe einen Blogpost über die neuesten Beiträge auf https://www.theology.de/service/neuesaufeinenblick.php',
|
goal='Schreibe einen Blogpost über dein Beitrag auf https://www.theo-web.de/fileadmin/user_upload/TW_pdfs2_2020/005.pdf',
|
||||||
backstory='Ein Agent, der Blogposts schreibt.',
|
backstory='Ein Agent, der Blogposts schreibt.',
|
||||||
llm=turbo35,
|
llm=turbo35,
|
||||||
tools=[docs_tools, file_read_tool]
|
tools=[docs_tools, file_read_tool]
|
||||||
|
@ -52,7 +52,7 @@ write = Task(
|
||||||
description='Schreibe für heute einen ansprechenden Blogbeitrag finde eineÜberschrift unter Verwendung der Zusammenfassung in deutsch. Versichere dass es keine Dopplungen mit ihnalten aus anderen Dateien gibt.',
|
description='Schreibe für heute einen ansprechenden Blogbeitrag finde eineÜberschrift unter Verwendung der Zusammenfassung in deutsch. Versichere dass es keine Dopplungen mit ihnalten aus anderen Dateien gibt.',
|
||||||
expected_output='Ein deutschprachiger Blogbeitrag markdown in 4 Absätzen über neue Inhalten. Charset: UTF8',
|
expected_output='Ein deutschprachiger Blogbeitrag markdown in 4 Absätzen über neue Inhalten. Charset: UTF8',
|
||||||
agent=writer,
|
agent=writer,
|
||||||
output_file='F:\\blog-posts\\post_theology_{date_today}.md'
|
output_file=f"F:\\blog-posts\\post_theoweb_{date_today}.md"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create and execute crew tasks
|
# Create and execute crew tasks
|
||||||
|
|
96
crew-google-srap-analyze-translate-post.py
Normal file
96
crew-google-srap-analyze-translate-post.py
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
# need env SERPER_API_KEY: https://serper.dev/api-key
|
||||||
|
|
||||||
|
# Environment Variablen importieren
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
# Importieren von erforderlichen Bibliotheken für Windows
|
||||||
|
import asyncio
|
||||||
|
import platform
|
||||||
|
if platform.system() == 'Windows':
|
||||||
|
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Import the necessary libraries
|
||||||
|
from crewai import Agent,Crew, Task
|
||||||
|
from langchain.agents import Tool
|
||||||
|
from langchain_community.utilities import GoogleSerperAPIWrapper
|
||||||
|
from crewai_tools import WebsiteSearchTool, ScrapeWebsiteTool
|
||||||
|
|
||||||
|
# Create a search tool
|
||||||
|
search = GoogleSerperAPIWrapper(gl='de', hl='de', num=5, tbs="qdr:m") # search only for the last month
|
||||||
|
|
||||||
|
# Create a tool
|
||||||
|
serper_tool = Tool(
|
||||||
|
name="Google",
|
||||||
|
func=search.run,
|
||||||
|
description="Internetsuche",
|
||||||
|
)
|
||||||
|
readpage = ScrapeWebsiteTool()
|
||||||
|
|
||||||
|
|
||||||
|
web_rag_tool = WebsiteSearchTool()
|
||||||
|
|
||||||
|
# Create an agent
|
||||||
|
researcher = Agent(
|
||||||
|
role='OER Searcher',
|
||||||
|
goal='OER für die Religiöse Bildung finden.',
|
||||||
|
backstory='Ein Agent, der gute Links zu OER für die religiöse Bildung sucht.',
|
||||||
|
tools=[serper_tool,web_rag_tool]
|
||||||
|
)
|
||||||
|
|
||||||
|
redakteur = Agent(
|
||||||
|
role='OER Redakteur',
|
||||||
|
goal='geht den Links nach, die er vom OER Searcher bekommt und prüft die Qualität der OER.',
|
||||||
|
backstory='Eine evangelische Religionslehrkraft, die OER für den Unterricht sucht und prüft.',
|
||||||
|
tools=[readpage]
|
||||||
|
)
|
||||||
|
writer = Agent(
|
||||||
|
role='OER Blog Schreiber',
|
||||||
|
goal='Stellt regelmäßig neue OER, die er vom OER Redakteur bekommt auf seinem Blog kritisch vor.',
|
||||||
|
backstory='Eine evangelischer Theologe, dem guter Reigionsunterricht besonders am Herzen liegt.',
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Create tasks
|
||||||
|
research = Task(
|
||||||
|
description='Suche nach religions- und ethikrelvanten Materialien, die als OER gekennzeichnet sind oder eine entsprechende Lizenz haben.',
|
||||||
|
expected_output='Eine Liste der Suchergebnisse und der dazugehörenden URL.',
|
||||||
|
agent=researcher
|
||||||
|
)
|
||||||
|
|
||||||
|
proof = Task(
|
||||||
|
description='Suche nach religions- und ethikrelvanten Materialien, die als OER gekennzeichnet sind oder eine entsprechende Lizenz haben.',
|
||||||
|
expected_output='Eine Liste der geprüften Materialien inklusive der URLs.',
|
||||||
|
context=[research],
|
||||||
|
agent=redakteur
|
||||||
|
)
|
||||||
|
|
||||||
|
write = Task(
|
||||||
|
description='Stelle eine Liste alle neuen materialien zusammen.',
|
||||||
|
expected_output='Ein Artikel der alle geprüften Inhalte in Form eines Blogartikels präsentiert.',
|
||||||
|
context=[proof],
|
||||||
|
agent=writer
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create tasks
|
||||||
|
research = Task(
|
||||||
|
description='Suche nach religions- und ethikrelvanten Materialien, die als OER gekennzeichnet sind oder eine entsprechende Lizenz haben.',
|
||||||
|
expected_output='Eine Liste der Suchergebnisse und der dazugehörenden URL.',
|
||||||
|
agent=researcher
|
||||||
|
)
|
||||||
|
|
||||||
|
# Crew mit beiden Agenten und Aufgaben initialisieren
|
||||||
|
crew = Crew(
|
||||||
|
agents=[researcher,redakteur,writer],
|
||||||
|
tasks=[research,proof, write],
|
||||||
|
verbose=2
|
||||||
|
)
|
||||||
|
# Crew-Aktion starten
|
||||||
|
result = crew.kickoff()
|
||||||
|
|
||||||
|
|
||||||
|
# Ergebnis ausgeben
|
||||||
|
print(result)
|
Binary file not shown.
Binary file not shown.
Reference in a new issue