Spaces:
Runtime error
Runtime error
File size: 2,339 Bytes
b34f0d5 58c9ca2 b34f0d5 58c9ca2 b34f0d5 58c9ca2 f1d1009 7f46e0a c753d25 7f46e0a c753d25 7dcc8af b93a2da 58c9ca2 b93a2da 58c9ca2 b93a2da 58c9ca2 7dcc8af c753d25 d7fa504 b34f0d5 7f46e0a f1d1009 58c9ca2 c753d25 58c9ca2 958e155 58c9ca2 958e155 58c9ca2 958e155 58c9ca2 958e155 f9b088b b34f0d5 0a81da5 |
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
import gradio as gr
from transformers import MarianMTModel, MarianTokenizer
# 한국어 -> 영어 모델 로드
model_name_ko_en = "Helsinki-NLP/opus-mt-ko-en"
tokenizer_ko_en = MarianTokenizer.from_pretrained(model_name_ko_en)
model_ko_en = MarianMTModel.from_pretrained(model_name_ko_en)
# 영어 -> 한국어 모델 로드
model_name_en_ko = "Helsinki-NLP/opus-mt-en-ko"
tokenizer_en_ko = MarianTokenizer.from_pretrained(model_name_en_ko)
model_en_ko = MarianMTModel.from_pretrained(model_name_en_ko)
def translate_text(text, source_lang, target_lang):
"""
텍스트를 번역하는 함수.
"""
try:
if source_lang == "한국어" and target_lang == "영어":
# 한국어 -> 영어 번역
tokenized = tokenizer_ko_en(text, return_tensors="pt", padding=True)
translated = model_ko_en.generate(**tokenized)
result = tokenizer_ko_en.decode(translated[0], skip_special_tokens=True)
elif source_lang == "영어" and target_lang == "한국어":
# 영어 -> 한국어 번역
tokenized = tokenizer_en_ko(text, return_tensors="pt", padding=True)
translated = model_en_ko.generate(**tokenized)
result = tokenizer_en_ko.decode(translated[0], skip_special_tokens=True)
else:
return "지원하지 않는 언어 조합입니다."
return result
except Exception as e:
return f"오류가 발생했습니다: {str(e)}"
# Gradio UI 구성
with gr.Blocks() as demo:
gr.Markdown("# 번역기")
# 언어 선택
source_lang = gr.Radio(
choices=["한국어", "영어"],
label="원본 언어",
value="한국어"
)
target_lang = gr.Radio(
choices=["한국어", "영어"],
label="목표 언어",
value="영어"
)
# 입력 텍스트
input_text = gr.Textbox(label="번역할 텍스트", lines=5)
# 번역 결과
translation_output = gr.Textbox(label="번역 결과", lines=5, interactive=False)
# 번역 버튼
translate_button = gr.Button("번역")
# 번역 함수 연결
translate_button.click(
fn=translate_text,
inputs=[input_text, source_lang, target_lang],
outputs=translation_output
)
# 메인 실행부
if __name__ == "__main__":
demo.launch() |