Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -1,51 +1,55 @@
|
|
1 |
import gradio as gr
|
2 |
-
|
|
|
3 |
|
4 |
-
#
|
5 |
-
|
6 |
-
|
7 |
-
|
|
|
8 |
|
9 |
-
#
|
10 |
-
|
11 |
-
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
-
def translate_text(text, source_lang, target_lang):
|
15 |
-
"""
|
16 |
-
텍스트를 번역하는 함수.
|
17 |
-
"""
|
18 |
try:
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
tokenized = tokenizer_en_ko(text, return_tensors="pt", padding=True)
|
27 |
-
translated = model_en_ko.generate(**tokenized)
|
28 |
-
result = tokenizer_en_ko.decode(translated[0], skip_special_tokens=True)
|
29 |
-
else:
|
30 |
-
return "지원하지 않는 언어 조합입니다."
|
31 |
-
return result
|
32 |
except Exception as e:
|
|
|
33 |
return f"오류가 발생했습니다: {str(e)}"
|
34 |
|
35 |
-
# Gradio
|
36 |
with gr.Blocks() as demo:
|
37 |
-
gr.Markdown("# 번역기")
|
38 |
|
39 |
# 언어 선택
|
40 |
source_lang = gr.Radio(
|
41 |
-
choices=["
|
42 |
label="원본 언어",
|
43 |
-
value="
|
44 |
)
|
45 |
target_lang = gr.Radio(
|
46 |
-
choices=["
|
47 |
label="목표 언어",
|
48 |
-
value="
|
49 |
)
|
50 |
|
51 |
# 입력 텍스트
|
@@ -59,9 +63,9 @@ with gr.Blocks() as demo:
|
|
59 |
|
60 |
# 번역 함수 연결
|
61 |
translate_button.click(
|
62 |
-
fn=translate_text,
|
63 |
-
inputs=[input_text, source_lang, target_lang],
|
64 |
-
outputs=translation_output
|
65 |
)
|
66 |
|
67 |
# 메인 실행부
|
|
|
1 |
import gradio as gr
|
2 |
+
import requests
|
3 |
+
import json
|
4 |
|
5 |
+
# Naver Papago API를 사용하여 번역하는 함수
|
6 |
+
def translate_text(text, source_lang, target_lang):
|
7 |
+
# 네이버 개발자 센터에서 발급받은 Client ID와 Client Secret
|
8 |
+
client_id = "YOUR_NAVER_CLIENT_ID" # 여기에 네이버에서 발급받은 Client ID를 입력하세요.
|
9 |
+
client_secret = "YOUR_NAVER_CLIENT_SECRET" # 여기에 네이버에서 발급받은 Client Secret을 입력하세요.
|
10 |
|
11 |
+
# Papago API 주소
|
12 |
+
url = "https://openapi.naver.com/v1/papago/n2mt"
|
13 |
+
|
14 |
+
# 요청 헤더 (네이버 API 키를 포함)
|
15 |
+
headers = {
|
16 |
+
"X-Naver-Client-Id": client_id,
|
17 |
+
"X-Naver-Client-Secret": client_secret,
|
18 |
+
}
|
19 |
+
|
20 |
+
# 요청 데이터 (원본 언어, 목표 언어, 번역할 텍스트)
|
21 |
+
data = {
|
22 |
+
"source": source_lang,
|
23 |
+
"target": target_lang,
|
24 |
+
"text": text,
|
25 |
+
}
|
26 |
|
|
|
|
|
|
|
|
|
27 |
try:
|
28 |
+
# Papago API에 요청 보내기
|
29 |
+
response = requests.post(url, headers=headers, data=data)
|
30 |
+
# 응답을 JSON 형식으로 변환
|
31 |
+
result = response.json()
|
32 |
+
# 번역된 텍스트 추출
|
33 |
+
translated_text = result["message"]["result"]["translatedText"]
|
34 |
+
return translated_text
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
except Exception as e:
|
36 |
+
# 오류 발생 시 메시지 반환
|
37 |
return f"오류가 발생했습니다: {str(e)}"
|
38 |
|
39 |
+
# Gradio를 사용하여 웹 인터페이스 만들기
|
40 |
with gr.Blocks() as demo:
|
41 |
+
gr.Markdown("# 한국어 ↔ 영어 번역기")
|
42 |
|
43 |
# 언어 선택
|
44 |
source_lang = gr.Radio(
|
45 |
+
choices=["ko", "en"], # 원본 언어 선택 (한국어: ko, 영어: en)
|
46 |
label="원본 언어",
|
47 |
+
value="ko"
|
48 |
)
|
49 |
target_lang = gr.Radio(
|
50 |
+
choices=["ko", "en"], # 목표 언어 선택 (한국어: ko, 영어: en)
|
51 |
label="목표 언어",
|
52 |
+
value="en"
|
53 |
)
|
54 |
|
55 |
# 입력 텍스트
|
|
|
63 |
|
64 |
# 번역 함수 연결
|
65 |
translate_button.click(
|
66 |
+
fn=translate_text, # 번역 함수
|
67 |
+
inputs=[input_text, source_lang, target_lang], # 입력값
|
68 |
+
outputs=translation_output # 출력값
|
69 |
)
|
70 |
|
71 |
# 메인 실행부
|