Spaces:
Sleeping
Sleeping
| 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() |