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