article_writer / app.py
Manasa1's picture
Create app.py
bb74076 verified
raw
history blame
1.72 kB
import gradio as gr
from phi.agent import Agent
from phi.model.groq import Groq
from phi.tools.duckduckgo import DuckDuckGo
from phi.tools.newspaper4k import Newspaper4k
import os
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Access the Groq API key
groq_api_key = os.getenv("GROQ_API_KEY")
# Create the agent
agent = Agent(
model=Groq(id="llama-3.3-70b-versatile", api_key=groq_api_key),
tools=[DuckDuckGo(), Newspaper4k()],
description="You are a senior NYT researcher writing an article on a topic.",
instructions=[
"For a given topic, search for the top 5 links.",
"Then read each URL and extract the article text, if a URL isn't available, ignore it.",
"Analyse and prepare an NYT worthy article based on the information.",
],
markdown=True,
show_tool_calls=True,
add_datetime_to_instructions=True,
)
# Function to process input and generate an article
def generate_article(topic):
response = agent.get_response(topic)
return response
# Gradio interface
with gr.Blocks() as app:
gr.Markdown("# πŸ“° NYT-Style Article Generator")
gr.Markdown(
"Enter a topic below, and the app will generate an NYT-style article by searching, extracting, and summarizing information from the web."
)
with gr.Row():
topic_input = gr.Textbox(
label="Enter Topic", placeholder="e.g., Simulation Theory", lines=1
)
generate_button = gr.Button("Generate Article")
output_text = gr.Markdown(label="Generated Article")
generate_button.click(fn=generate_article, inputs=topic_input, outputs=output_text)
# Run the app
if __name__ == "__main__":
app.launch()