File size: 1,485 Bytes
9af61ac 92c55b6 2a05c69 92c55b6 4639906 92c55b6 2a05c69 92c55b6 4639906 2a05c69 a0d8cc7 92c55b6 2a05c69 4e10e1e 92c55b6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import gradio as gr
from tool import LinkupSearchTool # Assuming this is your tool class
def run_search(query, depth, api_key):
if not query or not depth or not api_key:
return "β All fields are required."
try:
# Initialize tool ONLY when we have the API key
tool = LinkupSearchTool(linkup_api_key=api_key) # Pass API key to constructor
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() |