File size: 1,235 Bytes
04ea0e7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import requests

def brave_search(query, api_key):
    url = "https://api.search.brave.com/res/v1/web/search"
    headers = {
        "Accept": "application/json",
        "X-Subscription-Token": api_key
    }
    params = {
        "q": query,
        "count": 5
    }
    response = requests.get(url, headers=headers, params=params)
    if response.status_code == 200:
        results = response.json().get("web", {}).get("results", [])
        if not results:
            return "ζ€œη΄’η΅ζžœγŒθ¦‹γ€γ‹γ‚ŠγΎγ›γ‚“γ§γ—γŸγ€‚"
        output = ""
        for r in results:
            output += f"【{r.get('title','No Title')}】\n{r.get('url','')}\n{r.get('description','')}\n\n"
        return output
    else:
        return f"γ‚¨γƒ©γƒΌγŒη™Ίη”Ÿγ—γΎγ—γŸ: {response.status_code}"

with gr.Blocks() as demo:
    gr.Markdown("# Brave API ζ€œη΄’γ‚’γƒ—γƒͺ")
    api_key = gr.Textbox(label="Brave APIγ‚­γƒΌ", type="password")
    query = gr.Textbox(label="ζ€œη΄’γ‚―γ‚¨γƒͺ")
    output = gr.Textbox(label="怜紒硐果", lines=10)
    search_btn = gr.Button("怜紒")
    search_btn.click(fn=brave_search, inputs=[query, api_key], outputs=output)

if __name__ == "__main__":
    demo.launch(mcp_server=True)