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.")