Spaces:
Sleeping
Sleeping
| # app.py | |
| import os | |
| from fastai.text.all import load_learner | |
| import gradio as gr | |
| # ๋ชจ๋ธ ํ์ผ ๊ฒฝ๋ก ์ค์ (ํ๊ฒฝ ๋ณ์ ๋๋ ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ) | |
| MODEL_PATH = os.getenv('MODEL_PATH', 'model.pkl') | |
| try: | |
| # ๋ชจ๋ธ ๋ก๋ | |
| learn = load_learner(MODEL_PATH) | |
| except Exception as e: | |
| raise RuntimeError(f"๋ชจ๋ธ ๋ก๋ ์ค๋ฅ: {e}") | |
| # ํ๊ตญ์ด ์ง๋ณ ๋ชฉ๋ก (๋ชจ๋ธ ์ถ๋ ฅ ์์์ ๋ง์ถฐ ์ค์ ) | |
| categories = [ | |
| '์๋ ๋ฅด๊ธฐ', '๋นํ', '๊ธฐ๊ด์ง์ผ', '๋น๋จ๋ณ', | |
| '์ค์ฌ', 'ํผ๋ก', '๋ ๊ฐ', '๋ง๋ผ๋ฆฌ์', '์คํธ๋ ์ค' | |
| ] | |
| def classify_korean(txt): | |
| """ | |
| ์ ๋ ฅ๋ ํ๊ตญ์ด ์ฆ์์ ๋ฐ์ ๊ฐ ์ง๋ณ๋ณ ํ๋ฅ ์ ๋ฐํํฉ๋๋ค. | |
| ํ ์คํธ๊ฐ ๋น ๋ฌธ์์ด์ผ ๊ฒฝ์ฐ ํ๋ฅ 0.0์ ๋ฐํํฉ๋๋ค. | |
| """ | |
| if not txt.strip(): | |
| return {cat: 0.0 for cat in categories} | |
| # ์์ธก ์ํ | |
| _, _, probs = learn.predict(txt) | |
| # ๊ฒฐ๊ณผ๋ฅผ ๋์ ๋๋ฆฌ ํํ๋ก ๋ฐํ | |
| return {cat: float(probs[i]) for i, cat in enumerate(categories)} | |
| # Gradio ์ธํฐํ์ด์ค ์ค์ | |
| def create_interface(): | |
| return gr.Interface( | |
| fn=classify_korean, | |
| inputs=gr.Textbox(lines=3, label='์ฆ์์ ์์ธํ ์ ๋ ฅํ์ธ์'), | |
| outputs=gr.Label(label='์ง๋ณ๋ณ ํ๋ฅ '), | |
| examples=[ | |
| '๋ชฉ์ด ์ํ๊ณ ๊ธฐ์นจ์ด ๋์', | |
| '์ด์ด ๋๊ณ ๋ชธ์ด ๊ธฐ์ด์ด ์์ด์', | |
| '์์ด ๋ถํธํ๊ณ ์ค์ฌ๋ฅผ ํฉ๋๋ค' | |
| ], | |
| title='ํ๊ตญ์ด ์๋ฃ ์ง๋จ ํ๋ฅ ์์ธก๊ธฐ', | |
| description='์ฆ์์ ์ ๋ ฅํ๋ฉด ํด๋น ์ง๋ณ๋ณ ํ๋ฅ ์ ํ๊ตญ์ด๋ก ๋ณด์ฌ์ค๋๋ค.' | |
| ) | |
| if __name__ == '__main__': | |
| # ์ธํฐํ์ด์ค ์คํ (์ธ๋ถ ์ ์ ํ์ ์ share=True ์ค์ ) | |
| create_interface().launch() | |