Update app.py
Browse files
app.py
CHANGED
|
@@ -524,7 +524,7 @@ def create_blog_generator_workflow():
|
|
| 524 |
|
| 525 |
return workflow.compile()
|
| 526 |
|
| 527 |
-
def generate_ai_news_blog(groq_api_key=None, tavily_api_key=None, date=None):
|
| 528 |
"""Main function to generate AI news blog"""
|
| 529 |
# Set API keys if provided
|
| 530 |
if groq_api_key:
|
|
@@ -542,9 +542,14 @@ def generate_ai_news_blog(groq_api_key=None, tavily_api_key=None, date=None):
|
|
| 542 |
else:
|
| 543 |
today = date
|
| 544 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 545 |
# Step 1: Search for AI news
|
| 546 |
news_search = create_news_search_workflow()
|
| 547 |
-
news_results = news_search.invoke({"query":
|
| 548 |
|
| 549 |
print(f"Found {len(news_results['news_items'])} AI news items")
|
| 550 |
|
|
@@ -592,12 +597,12 @@ def generate_ai_news_blog(groq_api_key=None, tavily_api_key=None, date=None):
|
|
| 592 |
def create_gradio_interface():
|
| 593 |
"""Create a Gradio interface for the AI News Blog Generator"""
|
| 594 |
|
| 595 |
-
def run_generation(groq_key, tavily_key, selected_date):
|
| 596 |
if not groq_key or not tavily_key:
|
| 597 |
return "Please provide both API keys."
|
| 598 |
|
| 599 |
try:
|
| 600 |
-
result = generate_ai_news_blog(groq_key, tavily_key, selected_date)
|
| 601 |
return result
|
| 602 |
except Exception as e:
|
| 603 |
return f"Error generating blog: {str(e)}"
|
|
@@ -613,6 +618,7 @@ def create_gradio_interface():
|
|
| 613 |
tavily_key = gr.Textbox(label="Tavily API Key", placeholder="Enter your Tavily API key", type="password")
|
| 614 |
date_picker = gr.Textbox(label="Date (YYYY-MM-DD)", placeholder="Leave empty for today's date",
|
| 615 |
value=datetime.now().strftime("%Y-%m-%d"))
|
|
|
|
| 616 |
with gr.Row():
|
| 617 |
generate_button = gr.Button("Generate AI News Blog", variant="primary")
|
| 618 |
clear_button = gr.Button("Clear Output")
|
|
@@ -629,7 +635,7 @@ def create_gradio_interface():
|
|
| 629 |
queue=False
|
| 630 |
).then(
|
| 631 |
fn=run_generation,
|
| 632 |
-
inputs=[groq_key, tavily_key, date_picker],
|
| 633 |
outputs=output_md
|
| 634 |
).then(
|
| 635 |
fn=lambda: "Blog generation complete!",
|
|
|
|
| 524 |
|
| 525 |
return workflow.compile()
|
| 526 |
|
| 527 |
+
def generate_ai_news_blog(groq_api_key=None, tavily_api_key=None, date=None, topic=None):
|
| 528 |
"""Main function to generate AI news blog"""
|
| 529 |
# Set API keys if provided
|
| 530 |
if groq_api_key:
|
|
|
|
| 542 |
else:
|
| 543 |
today = date
|
| 544 |
|
| 545 |
+
# Create search query with date and topic to get recent news
|
| 546 |
+
query = f"latest artificial intelligence news {today} english"
|
| 547 |
+
if topic:
|
| 548 |
+
query = f"latest {topic} news {today} english" # Update query to include user-defined topic
|
| 549 |
+
|
| 550 |
# Step 1: Search for AI news
|
| 551 |
news_search = create_news_search_workflow()
|
| 552 |
+
news_results = news_search.invoke({"query": query, "date": today})
|
| 553 |
|
| 554 |
print(f"Found {len(news_results['news_items'])} AI news items")
|
| 555 |
|
|
|
|
| 597 |
def create_gradio_interface():
|
| 598 |
"""Create a Gradio interface for the AI News Blog Generator"""
|
| 599 |
|
| 600 |
+
def run_generation(groq_key, tavily_key, selected_date, topic):
|
| 601 |
if not groq_key or not tavily_key:
|
| 602 |
return "Please provide both API keys."
|
| 603 |
|
| 604 |
try:
|
| 605 |
+
result = generate_ai_news_blog(groq_key, tavily_key, selected_date, topic) # Pass topic to the function
|
| 606 |
return result
|
| 607 |
except Exception as e:
|
| 608 |
return f"Error generating blog: {str(e)}"
|
|
|
|
| 618 |
tavily_key = gr.Textbox(label="Tavily API Key", placeholder="Enter your Tavily API key", type="password")
|
| 619 |
date_picker = gr.Textbox(label="Date (YYYY-MM-DD)", placeholder="Leave empty for today's date",
|
| 620 |
value=datetime.now().strftime("%Y-%m-%d"))
|
| 621 |
+
topic_input = gr.Textbox(label="Topic", placeholder="Enter a topic for news generation") # New input for topic
|
| 622 |
with gr.Row():
|
| 623 |
generate_button = gr.Button("Generate AI News Blog", variant="primary")
|
| 624 |
clear_button = gr.Button("Clear Output")
|
|
|
|
| 635 |
queue=False
|
| 636 |
).then(
|
| 637 |
fn=run_generation,
|
| 638 |
+
inputs=[groq_key, tavily_key, date_picker, topic_input], # Include topic in inputs
|
| 639 |
outputs=output_md
|
| 640 |
).then(
|
| 641 |
fn=lambda: "Blog generation complete!",
|