Spaces:
Sleeping
Sleeping
Update application file
Browse files- app.py +48 -7
- requirements.txt +2 -0
app.py
CHANGED
|
@@ -1,12 +1,53 @@
|
|
| 1 |
import gradio as gr
|
| 2 |
from transformers import pipeline
|
| 3 |
|
| 4 |
-
|
|
|
|
|
|
|
| 5 |
|
| 6 |
-
|
| 7 |
-
|
| 8 |
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import gradio as gr
|
| 2 |
from transformers import pipeline
|
| 3 |
|
| 4 |
+
# 3. 번역 파이프라인 생성
|
| 5 |
+
print("한국어->영어 번역 모델(NHNDQ/nllb-finetuned-ko2en)을 로딩합니다...")
|
| 6 |
+
ko_to_en_translator = pipeline('translation', model='NHNDQ/nllb-finetuned-ko2en')
|
| 7 |
|
| 8 |
+
print("영어->한국어 번역 모델(NHNDQ/nllb-finetuned-en2ko)을 로딩합니다...")
|
| 9 |
+
en_to_ko_translator = pipeline('translation', model='NHNDQ/nllb-finetuned-en2ko')
|
| 10 |
|
| 11 |
+
print("\n모든 모델 로딩 완료!")
|
| 12 |
+
|
| 13 |
+
# 4. 번역을 수행하는 메인 함수 정의
|
| 14 |
+
def translate_text(text, direction):
|
| 15 |
+
"""
|
| 16 |
+
선택된 번역 방향에 따라 적절한 NLLB 파이프라인을 사용하여 텍스트를 번역합니다.
|
| 17 |
+
"""
|
| 18 |
+
try:
|
| 19 |
+
# 입력 텍스트가 비어있는 경우, 빈 문자열 반환
|
| 20 |
+
if not text.strip():
|
| 21 |
+
return ""
|
| 22 |
+
|
| 23 |
+
if direction == "한국어 → 영어":
|
| 24 |
+
# [수정] src_lang과 tgt_lang을 명시적으로 지정합니다.
|
| 25 |
+
result = ko_to_en_translator(text, src_lang="kor_Hang", tgt_lang="eng_Latn")
|
| 26 |
+
else: # "영어 → 한국어"
|
| 27 |
+
# [수정] src_lang과 tgt_lang을 명시적으로 지정합니다.
|
| 28 |
+
result = en_to_ko_translator(text, src_lang="eng_Latn", tgt_lang="kor_Hang")
|
| 29 |
+
|
| 30 |
+
# 파이프라인 결과는 리스트 안의 딕셔너리 형태 [{'translation_text': '...'}] 입니다.
|
| 31 |
+
return result[0]['translation_text']
|
| 32 |
+
except Exception as e:
|
| 33 |
+
return f"번역 중 오류가 발생했습니다: {e}"
|
| 34 |
+
|
| 35 |
+
# 5. Gradio 인터페이스 생성 및 실행
|
| 36 |
+
demo = gr.Interface(
|
| 37 |
+
fn=translate_text,
|
| 38 |
+
inputs=[
|
| 39 |
+
gr.Textbox(lines=7, label="입력 텍스트", placeholder="번역할 내용을 입력하세요..."),
|
| 40 |
+
gr.Radio(
|
| 41 |
+
choices=["한국어 → 영어", "영어 → 한국어"],
|
| 42 |
+
value="한국어 → 영어",
|
| 43 |
+
label="번역 방향 선택"
|
| 44 |
+
)
|
| 45 |
+
],
|
| 46 |
+
outputs=gr.Textbox(lines=7, label="번역 결과"),
|
| 47 |
+
title="NHN NLLB 기반 한국어-영어 번역기 🇰🇷↔️🇬🇧",
|
| 48 |
+
description="NHN의 NLLB 미세 조정 모델을 사용합니다. 번역할 내용과 방향을 선택해 주세요.",
|
| 49 |
+
allow_flagging="never"
|
| 50 |
+
)
|
| 51 |
+
|
| 52 |
+
# Colab에서 외부 공유 링크를 생성하기 위해 share=True 옵션 사용
|
| 53 |
+
demo.launch(share=True)
|
requirements.txt
CHANGED
|
@@ -1,3 +1,5 @@
|
|
| 1 |
gradio
|
| 2 |
transformers
|
| 3 |
torch
|
|
|
|
|
|
|
|
|
| 1 |
gradio
|
| 2 |
transformers
|
| 3 |
torch
|
| 4 |
+
sentencepiece
|
| 5 |
+
accelerate
|