Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from transformers import AutoTokenizer, AutoModelForSequenceClassification | |
| import torch | |
| from deep_translator import GoogleTranslator | |
| # 1. ๋ชจ๋ธ ๋ฐ ํ ํฌ๋์ด์ ๋ก๋ | |
| model_name = "SAVSNET/PetBERT_ICD" | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| model = AutoModelForSequenceClassification.from_pretrained(model_name) | |
| # 2. ๋ผ๋ฒจ ๋ชฉ๋ก (ICD 0~19 โ ํ๊ธ ๋ฒ์ญ) | |
| LABELS = { | |
| 0: "๊ท ๋๋ ์ ์๋๊ธฐ ์งํ", | |
| 1: "์ ์ , ํ๋ ๋๋ ์ ๊ฒฝ๋ฐ๋ฌ ์ฅ์ ", | |
| 2: "ํ์ก ๋๋ ์กฐํ๊ธฐ๊ด ์งํ", | |
| 3: "์ํ๊ธฐ๊ณ ์งํ", | |
| 4: "์น๊ณผ ์งํ", | |
| 5: "๋ฐ๋ฌ ์ด์", | |
| 6: "์ํ๊ธฐ๊ณ ์งํ", | |
| 7: "๋ด๋ถ๋น, ์์ ๋๋ ๋์ฌ ์งํ", | |
| 8: "๋ฉด์ญ๊ณ ์งํ", | |
| 9: "ํน์ ๊ฐ์ผ์ฑ ๋๋ ๊ธฐ์์ถฉ ์งํ", | |
| 10: "ํผ๋ถ ์งํ", | |
| 11: "๊ทผ๊ณจ๊ฒฉ๊ณ ๋๋ ๊ฒฐํฉ์กฐ์ง ์งํ", | |
| 12: "์ ์๋ฌผ(์ข ์)", | |
| 13: "์ ๊ฒฝ๊ณ ์งํ", | |
| 14: "์๊ฐ๊ณ ์งํ", | |
| 15: "์ฃผ์ฐ๊ธฐ ๊ธฐ์์ ํน์ ์ํ", | |
| 16: "์์ , ์ถ์ฐ ๋๋ ์ฐํ๊ธฐ ์ํ", | |
| 17: "ํธํก๊ธฐ๊ณ ์งํ", | |
| 18: "์ธ์, ์ค๋ ๋๋ ์ธ๋ถ ์์ธ ๊ฒฐ๊ณผ", | |
| 19: "๋น๋จ์์๊ธฐ๊ณ ์งํ" | |
| } | |
| # 3. ์์ธก ํจ์ ์ ์ | |
| def predict(text): | |
| try: | |
| # ๋ฒ์ญ (ํ๊ธ -> ์์ด) | |
| translated = GoogleTranslator(source='auto', target='en').translate(text) | |
| # ํ ํฐํ ๋ฐ ๋ชจ๋ธ ์์ธก | |
| inputs = tokenizer(translated, return_tensors="pt", truncation=True, padding=True) | |
| with torch.no_grad(): | |
| outputs = model(**inputs) | |
| logits = outputs.logits | |
| probs = torch.softmax(logits, dim=1).squeeze() | |
| # ์์ธก ๊ฒฐ๊ณผ ์์ 3๊ฐ ์ถ์ถ | |
| topk = torch.topk(probs, 3) | |
| results = [ | |
| f"{LABELS.get(int(idx), f'Label {idx}')} ({prob:.1%})" | |
| for idx, prob in zip(topk.indices, topk.values) | |
| if float(prob) > 0.1 | |
| ] | |
| if results: | |
| summary_text = "์์ธก๋ ์ง๋ณ:\n" + "\n".join(results) | |
| else: | |
| summary_text = "์์ธก๋ ์ง๋ณ ์์ ๐ซฅ" | |
| return summary_text | |
| except Exception as e: | |
| return f"์ค๋ฅ ๋ฐ์: {str(e)}" | |
| # 4. Gradio UI ๊ตฌ์ฑ | |
| demo = gr.Interface( | |
| fn=predict, | |
| inputs=gr.Textbox(label="๋ฐ๋ ค๋๋ฌผ ์ฆ์ ์ ๋ ฅ", placeholder="์: ๊ฐ์์ง๊ฐ ์์ฃผ ๊ธฐ์นจํด"), | |
| outputs=gr.Textbox(label="์์ธก ๊ฒฐ๊ณผ"), | |
| title="๐พ PetBERT ICD ์์์ฌ ์์ธก๊ธฐ", | |
| description="๋ฐ๋ ค๋๋ฌผ์ ์ฆ์ ๋ฌธ์ฅ์ ์ ๋ ฅํ๋ฉด AI๊ฐ ์ง๋ณ ๊ฐ๋ฅ์ฑ์ ์์ธกํด๋๋ฆฝ๋๋ค." | |
| ) | |
| # 5. ์ฑ ์คํ | |
| demo.launch() | |