|
import gradio as gr |
|
from tool import LinkupSearchTool |
|
|
|
def run_search(query, depth, api_key): |
|
if not query or not depth or not api_key: |
|
return "β All fields are required." |
|
|
|
try: |
|
|
|
tool = LinkupSearchTool(linkup_api_key=api_key) |
|
return tool.forward(query=query, depth=depth) |
|
except Exception as e: |
|
return f"β Error: {str(e)}" |
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("## π Linkup Web Search Tool") |
|
|
|
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"], value="standard") |
|
api_key_input = gr.Textbox(label="Linkup API Key", type="password") |
|
|
|
output = gr.Markdown() |
|
btn = gr.Button("Search", interactive=True) |
|
|
|
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.strip() and d and k.strip())) |
|
|
|
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]) |
|
|
|
demo.launch() |