Spaces:
Runtime error
Runtime error
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() |