Chandranshu Jain
Update app.py
2b10654 verified
from langchain.tools import DuckDuckGoSearchRun
from crewai_tools import tool
import streamlit as st
@tool('DuckDuckGoSearch')
def search(search_query:str):
"""Search the web for the topic"""
return DuckDuckGoSearchRun().run(search_query)
import os
from crewai import Agent,Task,Crew,Process
import google.generativeai as genai
from langchain_google_genai import ChatGoogleGenerativeAI
GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
llm=ChatGoogleGenerativeAI(model="gemini-pro",
verbose = True,
temperature = 0.2,
google_api_key=GOOGLE_API_KEY)
researcher = Agent(
role='Senior AI Researcher',
goal='Uncover groundbreaking technologies in field of AI Agents and their different frameworks and AGI',
verbose=False,
backstory=(
"Driven by curiosity, you're at the forefront of AI Agents and AGI and the"
"innovation, eager to explore and share knowledge that could change"
"the world."
"You are extremly curious of AI agent building and want to explore"
"the research done in Agent buiding and frameworks available like AutoGen and CrewAI."
),
tools=[search],
allow_delegation=False,
llm = llm
)
# Creating a writer agent with custom tools and delegation capability
writer = Agent(
role='Research Paper writer and AI influencer blog writer',
goal='Narrate compelling frameworks and latest updates about AI Agents and the research and their different frameworks and AGI',
verbose=True,
backstory=(
"With a flair for simplifying complex topics, you craft"
"engaging narratives that captivate and educate, bringing new"
"discoveries to light in an accessible manner."
),
tools=[search],
allow_delegation=True,
llm = llm)
# Research task
research_task = Task(
description=(
"Focus on identifying frameworks in Agents and how can we use them in building gen ai powered apps."
"Your final report should clearly articulate the key points like top options available with links to access them,"
"its learning opportunities, and free research papers with links."
"Use limkenin posts, research paper websites and google searches to identify the required information."
),
expected_output='A comprehensive 3 paragraphs long report on the latest Agents trends and frameworks and research paper links.',
tools=[search],
agent=researcher,
)
# Writing task with language model configuration
write_task = Task(
description=(
"Compose an insightful article on AI Agents and the research and their different frameworks and AGI."
"Focus on the latest AI agents and the frameworks and how it can be used to build ai apps."
"This article should be easy to understand, engaging, and positive."
"It should include points with links to access the resources."
),
expected_output='A short article on AI Agents and the research and their different frameworks and AGI advancements formatted as markdown.Try to include a research paper name.',
tools=[search],
agent=writer
)
# Forming the tech-focused crew with some enhanced configurations
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential # Optional: Sequential task execution is default
)
#results=crew.kickoff()
#App making
# Streamlit app layout
st.title("AI Research Agent")
#question<-"What are AI Agents and what are the latest trends and research related to them?"
st.write("Question: What are AI Agents and what are the latest trends and research related to them?")
# Run Crew button
if st.button("Run"):
with st.spinner("Running the crew..."):
results=crew.kickoff()
st.success("Crew execution finished!")
st.write(results)