Spaces:
Running
Running
from langchain.utilities import SearxSearchWrapper | |
import gradio as gr | |
# Initialize the SearxNG search wrapper | |
# You can replace this URL with any SearXNG instance you prefer | |
searx = SearxSearchWrapper(searx_host="https://searx.thegpm.org") | |
def search_news(query, num_results=5): | |
try: | |
# Perform the search | |
search_results = searx.results(query, num_results=num_results) | |
# Format the output | |
formatted_results = "Search Results:\n\n" | |
for i, result in enumerate(search_results, 1): | |
formatted_results += f"{i}. {result['title']}\n" | |
formatted_results += f" URL: {result['link']}\n" | |
formatted_results += f" Snippet: {result['snippet']}\n\n" | |
return formatted_results | |
except Exception as e: | |
return f"An error occurred: {str(e)}" | |
# Create Gradio interface | |
iface = gr.Interface( | |
fn=search_news, | |
inputs=[ | |
gr.Textbox(label="Enter a news topic to search for"), | |
gr.Slider(minimum=1, maximum=10, value=5, step=1, label="Number of results") | |
], | |
outputs=gr.Textbox(label="Search Results", lines=20), | |
title="News Search with LangChain and SearXNG", | |
description="Search for news articles using SearXNG through LangChain." | |
) | |
iface.launch() |