Spaces:
Sleeping
Sleeping
File size: 1,723 Bytes
e80fffd d52d94b e80fffd d52d94b e80fffd d52d94b e80fffd d52d94b e80fffd d52d94b e80fffd d52d94b e80fffd d52d94b e80fffd d52d94b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# 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()
|