import streamlit as st from phi.agent import Agent from phi.model.groq import Groq from phi.tools.duckduckgo import DuckDuckGo from dotenv import load_dotenv # Load environment variables load_dotenv() # Groq API Key (Replace with your actual API key) GROQ_API_KEY = "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" # Web agent to fetch and summarize news web_agent = Agent( name="Web Agent", model=Groq(id="llama-3.3-70b-versatile", api_key=GROQ_API_KEY), tools=[DuckDuckGo()], # Use DuckDuckGo for web searches instructions=[ "Search for the latest AI news.", "Summarize the main points clearly and concisely.", "Always include sources for all information.", "Format the response in Markdown for clarity." ], show_tool_calls=True, # Enable logging of tool usage markdown=True # Format the output in Markdown ) # Function to fetch news based on user query def fetch_news(query): response = web_agent.execute(query) # Fetch and summarize news using 'execute' method return response # Streamlit App st.title("AI News Fetcher") st.markdown(""" Welcome to the **AI News Fetcher** app! Enter your query to find the latest summaries of AI-related news or any topic of interest. --- """) # User input for query user_query = st.text_input("Enter your query:", placeholder="Find the latest news about AI, summarize advancements in robotics, etc.") if st.button("Fetch News"): if user_query.strip(): st.info("Fetching the news. This may take a few seconds...") try: news_summary = fetch_news(user_query) st.markdown(news_summary) # Display the news summary in Markdown format except Exception as e: st.error(f"An error occurred: {str(e)}") else: st.warning("Please enter a valid query.") else: st.write("Enter a query and click the button to fetch news.")