web_agent / app.py
yacine-yss's picture
Upload app.py
ad9e593 verified
# ai_web_agent.py
from duckduckgo_search import DDGS
from transformers import pipeline
import gradio as gr
# Load Hugging Face summarization pipeline
print("Loading model...")
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
print("Model loaded.")
# Function to search the web
def search_web(query, max_results=5):
results = []
with DDGS() as ddgs:
for r in ddgs.text(query, region='wt-wt', safesearch='Moderate', max_results=max_results):
snippet = f"{r['title']}: {r['body']} ({r['href']})"
results.append(snippet)
return results
# Function to summarize search results
def summarize_results(results):
if not results:
return "No relevant information found."
combined = "\n".join(results)
# Truncate if input is too long
max_input_length = 1024
input_text = combined[:max_input_length]
summary = summarizer(input_text)[0]['summary_text']
return summary
# Full agent workflow
def ai_agent(question):
try:
search_results = search_web(question)
summary = summarize_results(search_results)
return summary
except Exception as e:
return f"Error: {str(e)}"
# Optional: Web UI
interface = gr.Interface(
fn=ai_agent,
inputs=gr.Textbox(lines=2, placeholder="Ask me anything..."),
outputs="text",
title="🧠 AI Web Search Agent",
description="This agent searches the web and summarizes the best answer for you."
)
if __name__ == "__main__":
interface.launch()