AnswerText / app.py
Hellowish's picture
Update app.py
7626438 verified
raw
history blame
1.11 kB
import gradio as gr
from transformers import pipeline
# 1. 載入 SQuAD v2.0 預訓練模型
qa_model = pipeline("question-answering", model="deepset/roberta-base-squad2")
# 2. 定義處理邏輯
def predict(context, question):
if not context or not question:
return "請輸入文件內容與問題。"
# 執行問答
result = qa_model(question=question, context=context)
# 如果信心分數太低,回傳無法回答(SQuAD v2.0 特色)
if result['score'] < 0.05:
return "抱歉,在文件中找不到相關答案。"
return result['answer']
# 3. 建立 Gradio 網頁介面
demo = gr.Interface(
fn=predict,
inputs=[
gr.Textbox(lines=10, label="Context (文件內容)", placeholder="請貼上文件內容..."),
gr.Textbox(lines=2, label="Question (提問)", placeholder="請問這份文件關於什麼?")
],
outputs=gr.Textbox(label="Model Answer (模型回答)"),
title="Case Study: Document QA System",
description="根據提供的文本回答問題。"
)
if __name__ == "__main__":
demo.launch()