Spaces:
Runtime error
Runtime error
File size: 2,360 Bytes
b34f0d5 4896bd4 b34f0d5 4896bd4 b34f0d5 4896bd4 f1d1009 c56361e 4f96c65 c56361e 4f96c65 7dcc8af 4896bd4 7dcc8af c753d25 4f96c65 b34f0d5 c56361e c753d25 c56361e 4f96c65 c56361e 958e155 58c9ca2 958e155 58c9ca2 958e155 58c9ca2 c56361e 4f96c65 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() |