aliceblue11 commited on
Commit
e4cd04b
·
verified ·
1 Parent(s): d2dc358

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -35
app.py CHANGED
@@ -1,51 +1,55 @@
1
  import gradio as gr
2
- from transformers import MarianMTModel, MarianTokenizer
 
3
 
4
- # 한국어 -> 영어 모델 로드
5
- model_name_ko_en = "Helsinki-NLP/opus-mt-ko-en"
6
- tokenizer_ko_en = MarianTokenizer.from_pretrained(model_name_ko_en)
7
- model_ko_en = MarianMTModel.from_pretrained(model_name_ko_en)
 
8
 
9
- # 영어 -> 한국어 모델 로드
10
- model_name_en_ko = "Helsinki-NLP/opus-mt-en-ko"
11
- tokenizer_en_ko = MarianTokenizer.from_pretrained(model_name_en_ko)
12
- model_en_ko = MarianMTModel.from_pretrained(model_name_en_ko)
 
 
 
 
 
 
 
 
 
 
 
13
 
14
- def translate_text(text, source_lang, target_lang):
15
- """
16
- 텍스트를 번역하는 함수.
17
- """
18
  try:
19
- if source_lang == "한국어" and target_lang == "영어":
20
- # 한국어 -> 영어 번역
21
- tokenized = tokenizer_ko_en(text, return_tensors="pt", padding=True)
22
- translated = model_ko_en.generate(**tokenized)
23
- result = tokenizer_ko_en.decode(translated[0], skip_special_tokens=True)
24
- elif source_lang == "영어" and target_lang == "한국어":
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 UI 구성
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
  # 메인 실행부