Spaces:
Runtime error
Runtime error
from utils import * | |
import gradio as gr | |
from sentence_transformers import SentenceTransformer | |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
def download_model(): | |
# 下載並快取SentenceTransformer所需的模型和tokenizer | |
SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2") | |
# 下載並快取AutoTokenizer所需的模型 | |
biobart_model = "fuhsiao/BioBART-PMC-EXT-Section" | |
AutoTokenizer.from_pretrained(biobart_model) | |
AutoModelForSeq2SeqLM.from_pretrained(biobart_model) | |
# 下載並快取AutoModelForSeq2SeqLM所需的模型 | |
bart_model = "fuhsiao/BART-PMC-EXT-Section" | |
AutoTokenizer.from_pretrained(bart_model) | |
AutoModelForSeq2SeqLM.from_pretrained(bart_model) | |
return True | |
def main(file, ext_threshold, article_type): | |
if file is None or ext_threshold is None or article_type is None: | |
return 'Please confirm that the file and settings are correct.' | |
paper = read_text_to_json(file.name) | |
if not is_valid_format(paper): | |
return "invalid_format" | |
sentJson = convert_to_sentence_json(paper) | |
sentFeat = extract_sentence_features(sentJson) | |
ExtModel = load_ExtModel('model/LGB_model_F10_S.pkl') | |
ext = extractive_method(sentJson, sentFeat, ExtModel, threshold=ext_threshold, TGB=False) | |
abstr_model_path = '' | |
if article_type == 'non-specialized field': | |
abstr_model_path = 'fuhsiao/BART-PMC-EXT-Section' | |
elif article_type == 'biomedical field': | |
abstr_model_path = 'fuhsiao/BioBART-PMC-EXT-Section' | |
TOKENIZER, ABSTRMODEL = load_AbstrModel(abstr_model_path) | |
abstr = abstractive_method(ext, tokenizer=TOKENIZER, model=ABSTRMODEL) | |
result = '' | |
for key, sec in zip(['I','M','R','D'], ['Introduction', 'Methods', 'Results', 'Discussion/Conclusion']): | |
result += f"{sec}\n{abstr[key]}\n\n" | |
return result | |
if __name__ == '__main__': | |
download_model() | |
# 定義Gradio介面 | |
iface = gr.Interface( | |
fn=main, | |
inputs=[ | |
gr.inputs.File(), | |
gr.inputs.Slider(minimum=0.5, maximum=0.9, default=0.5, step=0.01, label="Extractive - Threshold"), | |
gr.inputs.Dropdown(["non-specialized field", "biomedical field"],default="non-specialized field", label="Abstractive - Field") | |
], | |
outputs=gr.outputs.Textbox(label="Output - Structured Abstract"), | |
title="Ext-Abs-StructuredSum", | |
description="please upload a .txt file formatted in the form of the example.", | |
examples=[['sample/sample_format.txt']], | |
allow_flagging='never' | |
) | |
# 啟動Gradio介面 | |
iface.launch(share=False) # share=False 用於停用分享模式 | |