Spaces:
Runtime error
Runtime error
import streamlit as st | |
from crewai import Crew, Agent, Process | |
from tools import tool | |
from dotenv import load_dotenv | |
import os | |
# Load environment variables | |
load_dotenv() | |
# Initialize Google Generative AI model | |
from langchain_google_genai import ChatGoogleGenerativeAI | |
llm = ChatGoogleGenerativeAI( | |
model="gemini-1.5-flash", | |
verbose=True, | |
temperature=0.5, | |
google_api_key= "AIzaSyDy02GtpV6-VcdeCZNLJT-c4kWuPxBRbrI" | |
) | |
# Define agents | |
news_researcher = Agent( | |
role="Senior Researcher", | |
goal='Uncover groundbreaking technologies in {topic}', | |
verbose=True, | |
memory=True, | |
backstory=( | |
"Driven by curiosity, you're at the forefront of" | |
"innovation, eager to explore and share knowledge that could change" | |
"the world." | |
), | |
tools=[tool], | |
llm=llm, | |
allow_delegation=True | |
) | |
news_writer = Agent( | |
role='Writer', | |
goal='Narrate compelling tech stories about {topic}', | |
verbose=True, | |
memory=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=[tool], | |
llm=llm, | |
allow_delegation=False | |
) | |
# Define tasks | |
research_task = Task( | |
description=( | |
"Identify the next big trend in {topic}." | |
"Focus on identifying pros and cons and the overall narrative." | |
"Your final report should clearly articulate the key points," | |
"its market opportunities, and potential risks." | |
), | |
expected_output='A comprehensive 3 paragraphs long report on the latest AI trends.', | |
tools=[tool], | |
agent=news_researcher, | |
) | |
write_task = Task( | |
description=( | |
"Compose an insightful article on {topic}." | |
"Focus on the latest trends and how it's impacting the industry." | |
"This article should be easy to understand, engaging, and positive." | |
), | |
expected_output='A 4 paragraph article on {topic} advancements formatted as markdown.', | |
tools=[tool], | |
agent=news_writer, | |
async_execution=False, | |
output_file='new-blog-post.md' # Example of output customization | |
) | |
# Define Crew | |
crew = Crew( | |
agents=[news_researcher, news_writer], | |
tasks=[research_task, write_task], | |
process=Process.sequential, | |
) | |
# Streamlit UI | |
st.set_page_config( | |
page_title="Tech Research and Writing", | |
page_icon="🔬", | |
layout="wide", | |
menu_items={"About": "# Made by Prathamesh Khade"} | |
) | |
st.title("Tech Research and Writing") | |
topic = st.text_input("Enter a topic to research and write about:") | |
if st.button("Start Task"): | |
if topic: | |
result = crew.kickoff(inputs={'topic': topic}) | |
st.write("Task Results:") | |
st.write(result) | |
else: | |
st.error("Please enter a topic.") | |