Spaces:
Sleeping
Sleeping
File size: 1,566 Bytes
c3c0029 |
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import os
import gradio as gr
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer
MODEL_ID = os.getenv("MODEL_ID", "Pectics/vad-macbert")
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_ID).to(DEVICE)
model.eval()
def predict(text):
if not text or not text.strip():
return {"error": "Input text is empty."}
inputs = tokenizer(
text,
return_tensors="pt",
padding=True,
truncation=True,
max_length=128,
)
inputs = {key: value.to(DEVICE) for key, value in inputs.items()}
with torch.no_grad():
outputs = model(**inputs)
vad = outputs.logits.squeeze().tolist()
return {"vad": vad}
with gr.Blocks(title="Vad MacBERT Demo") as demo:
gr.Markdown(
"\n".join(
[
"# Pectics/vad-macbert Demo",
f"Model: `{MODEL_ID}`",
"中文输入,返回序列分类头的 VAD 分数。",
]
)
)
text_input = gr.Textbox(
label="Input text",
lines=4,
placeholder="请输入中文文本。",
)
run_btn = gr.Button("Run")
output = gr.JSON(label="VAD")
run_btn.click(fn=predict, inputs=text_input, outputs=output)
gr.Examples(
examples=[
"这部电影让我很感动。",
"我对这个结果很失望。",
],
inputs=text_input,
)
demo.launch()
|