File size: 1,467 Bytes
04e0688
 
 
 
 
 
e2a656c
04e0688
 
 
 
e2a656c
04e0688
 
 
 
 
 
 
 
 
e2a656c
 
 
 
04e0688
 
e2a656c
04e0688
 
 
e2a656c
04e0688
 
 
 
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 os
import requests
import gradio as gr

HF_TOKEN = os.environ.get("HF_TOKEN")
if not HF_TOKEN:
    raise Exception("HF_TOKEN is missing.")

API_URL = "https://api-inference.huggingface.co/models/castorini/t5-base-canard"
HEADERS = {"Authorization": f"Bearer {HF_TOKEN}"}

def rewrite(queries_text):
    if not queries_text.strip():
        return "Enter queries (one per line)."
    queries = [q.strip() for q in queries_text.split("\n") if q.strip()]
    results = []
    for q in queries:
        payload = {"inputs": q}
        try:
            r = requests.post(API_URL, headers=HEADERS, json=payload, timeout=30)
            output = r.json()
            results.append(output[0]["generated_text"] if isinstance(output, list) and len(output) > 0 and "generated_text" in output[0] else f"Error: {output}")
        except Exception as e:
            results.append(f"Error: {str(e)}")
    return "\n\n".join([f"Original: {q}\nRewritten: {r}\n---" for q, r in zip(queries, results)])

demo = gr.Interface(
    fn=rewrite,
    inputs=gr.Textbox(label="Queries (one per line)", lines=5, placeholder="What is AI?\nHow does it work?"),
    outputs=gr.Textbox(label="Rewritten Results", lines=10),
    title="CANARD Rewrite API",
    description="Rewrites queries using T5-base-canard. API: POST /api/rewrite/ with {'data': ['query1', ...]}"
)

if __name__ == "__main__":
    demo.launch(server_name="0.0.0.0", server_port=7860)