aliceblue11's picture
Update app.py
e4cd04b verified
raw
history blame
2.39 kB
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()