MonicaChen0330's picture
fix share button
209ee45 verified
import pandas as pd
import gradio as gr
def check_csv(file):
if file is None:
return "請上傳檔案!"
try:
df = pd.read_csv(file.name, encoding="utf-8-sig")
df.columns = [col.strip() for col in df.columns]
required_columns = {"Question", "Context", "Answer"}
actual_columns = set(df.columns)
if actual_columns != required_columns:
return f"欄位錯誤:應包含欄位 {required_columns},實際為 {actual_columns}"
if df.shape[0] == 0:
return "檔案中沒有資料列!"
invalid_rows = df[df["Question"].notnull() & (df["Answer"].isnull() | df["Context"].isnull())]
if len(invalid_rows) > 0:
missing_questions = "\n".join(f"- 問題:{q}" for q in invalid_rows["Question"].tolist())
return f"發現 {len(invalid_rows)} 筆資料中 Answer 或 Context 為空:\n{missing_questions}"
return "檔案格式正確,資料內容完整"
except Exception as e:
return f"發生錯誤:{str(e)}"
demo = gr.Interface(
fn=check_csv,
inputs=gr.File(label="上傳 CSV 檔案"),
outputs=gr.Textbox(label="檢查結果"),
title="繳交檔案 (Evaluation_Dataset.csv) 檢查工具",
description="請上傳一個包含`Question`, `Context`, `Answer`欄位的 CSV 檔案,以檢查您的檔案格式是否正確。",
flagging_mode="never"
)
demo.launch()