File size: 2,386 Bytes
b34f0d5
e4cd04b
 
b34f0d5
e4cd04b
 
 
 
 
b34f0d5
e4cd04b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f1d1009
7dcc8af
e4cd04b
 
 
 
 
 
 
7dcc8af
e4cd04b
c753d25
 
e4cd04b
b34f0d5
e4cd04b
f1d1009
58c9ca2
 
e4cd04b
58c9ca2
e4cd04b
58c9ca2
 
e4cd04b
58c9ca2
e4cd04b
58c9ca2
c753d25
58c9ca2
 
958e155
58c9ca2
 
958e155
58c9ca2
 
958e155
58c9ca2
 
e4cd04b
 
 
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
70
71
72
73
import gradio as gr
import requests
import json

# Naver Papago API를 사용하여 번역하는 함수
def translate_text(text, source_lang, target_lang):
    # 네이버 개발자 센터에서 발급받은 Client ID와 Client Secret
    client_id = "YOUR_NAVER_CLIENT_ID"  # 여기에 네이버에서 발급받은 Client ID를 입력하세요.
    client_secret = "YOUR_NAVER_CLIENT_SECRET"  # 여기에 네이버에서 발급받은 Client Secret을 입력하세요.

    # Papago API 주소
    url = "https://openapi.naver.com/v1/papago/n2mt"

    # 요청 헤더 (네이버 API 키를 포함)
    headers = {
        "X-Naver-Client-Id": client_id,
        "X-Naver-Client-Secret": client_secret,
    }

    # 요청 데이터 (원본 언어, 목표 언어, 번역할 텍스트)
    data = {
        "source": source_lang,
        "target": target_lang,
        "text": text,
    }

    try:
        # Papago API에 요청 보내기
        response = requests.post(url, headers=headers, data=data)
        # 응답을 JSON 형식으로 변환
        result = response.json()
        # 번역된 텍스트 추출
        translated_text = result["message"]["result"]["translatedText"]
        return translated_text
    except Exception as e:
        # 오류 발생 시 메시지 반환
        return f"오류가 발생했습니다: {str(e)}"

# Gradio를 사용하여 웹 인터페이스 만들기
with gr.Blocks() as demo:
    gr.Markdown("# 한국어 ↔ 영어 번역기")

    # 언어 선택
    source_lang = gr.Radio(
        choices=["ko", "en"],  # 원본 언어 선택 (한국어: ko, 영어: en)
        label="원본 언어",
        value="ko"
    )
    target_lang = gr.Radio(
        choices=["ko", "en"],  # 목표 언어 선택 (한국어: ko, 영어: en)
        label="목표 언어",
        value="en"
    )

    # 입력 텍스트
    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()