from gradio_client import Client import gradio as gr import time def search_web(query): try: start_time = time.time() # Initialize client with increased timeout client = Client( "Ifeanyi/Web-Search-MCP", ) # Make the API call (using positional argument as in working examples) result = client.predict( prompt=query, # Positional argument api_name="/webSearch" ) response_time = (time.time() - start_time) * 1000 return ( {"result": result}, f"{response_time:.2f} ms", "✅ Success" ) except Exception as e: return ( {"error": str(e)}, "0 ms", "❌ Failed" ) with gr.Blocks() as demo: gr.Markdown("## Web Search Interface") with gr.Row(): with gr.Column(): query_input = gr.Textbox( label="Enter your search query", placeholder="Type your question here...", lines=10 ) search_btn = gr.Button("Search", variant="primary") with gr.Column(): output_json = gr.JSON(label="Search Results") response_time = gr.Textbox(label="Response Time") status = gr.Textbox(label="Status") search_btn.click( fn=search_web, inputs=query_input, outputs=[output_json, response_time, status] ) if __name__ == "__main__": demo.launch()