nischaypar's picture
update app
b02669d
raw
history blame
1.4 kB
import gradio as gr
from tool import LinkupSearchTool
tool = LinkupSearchTool()
def run_search(query, depth, api_key):
if not query or not depth or not api_key:
return "❌ All fields are required."
try:
return tool.forward(query=query, depth=depth, api_key=api_key)
except Exception as e:
return f"❌ Error: {str(e)}"
with gr.Blocks() as demo:
gr.Markdown("## πŸ” Linkup Web Search Tool\nEnter your query and API key below.")
with gr.Row():
query_input = gr.Textbox(label="Search Query", placeholder="e.g. AI trends in 2024")
depth_input = gr.Dropdown(label="Search Depth", choices=["standard", "deep"])
api_key_input = gr.Textbox(label="Linkup API Key", type="password")
output = gr.Markdown()
btn = gr.Button("Search") # βœ… Keep the label here
btn.click(
fn=run_search,
inputs=[query_input, depth_input, api_key_input],
outputs=output
)
def enable_submit(q, d, k):
return gr.Button.update(interactive=bool(q and d and k)) # βœ… fix
query_input.change(enable_submit, [query_input, depth_input, api_key_input], [btn])
depth_input.change(enable_submit, [query_input, depth_input, api_key_input], [btn])
api_key_input.change(enable_submit, [query_input, depth_input, api_key_input], [btn])
btn.interactive = False # Disabled by default
demo.launch()