Papago API 사용 방법
OpenAI가 대세이다 보니 번역을 OpenAI로 활용하려고 했지만 느려도 너~무 느리다. ProjectA를 진행하면서 테스트 해봤는데 번역 응답 속도가 약 3초~8초 까지도 걸리는 문제가 있었다. 그래서 고민하다가 ‘로컬방식으로 사용해야하나?’ 했는데 네이버 파파고 API 가 하루에 10000자 까지는 무료로 사용할 수 있었다. 전문적으로 사용하지 않고 취미나 단순 번역작업 등에 사용하기에는 굉장히 좋은 시스템 아닌가!(파파고 만세)
얼핏 매월 2만원 정기 결제인 줄 알았는데 무료 10000자에 만족스럽다. ProjectA를 만드는 이유도 베이스는 게임 영어 번역이고 취미유저라면 10000자 라면 충분히 사용 가능하다고 생각된다.
그리고 ProjectA 도 이름을 정했는데 번돌이, Burndori 로 정했다.(와잎 추천)
1. 무작정 따라하기
-
사용환경 확인
: 윈도우10 환경에 Python 3.8 버전을 기본으로 한다. -
Python 설치
: 여러 방법들이 있지만 필자가 생각하는 가장 쉬운 마이크로소프트 스토어 에서 Python 3.8 버전을 설치
-
네이버 Papago API 발급
: 네이버 파파고 API에 접속해서 오픈 API 이용 신청 https://developers.naver.com/products/papago/nmt/nmt.md
- : 어플리케이션에 프로젝트 이름인 번돌이 적고 사용 API는 Papago 번역, 환경은 WEB 으로 설정
- 주소값은 개인블로그 주소 아무거나 넣으면 됨
- 4. API KEY
- 정상적으로 완료되면 Client ID와 Client Secret 이 발급
- 외부에 노출되어서도 안되고 나중에 .env 파일에 넣어서 사용
- 5. API 사용 예제
- Papago 번역 개발자 문서로 가면 여러 언어들의 예제를 볼 수 있음
https://developers.naver.com/docs/papago/papago-nmt-example-code.md#python
Papago Python Example Github : https://github.com/naver/naver-openapi-guide/blob/master/sample/python/APIExamTranslateNMT.py - 너무 쉽게도 API 그대로 복붙하면 한국어가 영어로 전환
- ko 와 en 을 변경하고 언어를 변경해서 넣으면 쉽게 전환 됨
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID" # 개발자센터에서 발급받은 Client ID 값
client_secret = "YOUR_CLIENT_SECRET" # 개발자센터에서 발급받은 Client Secret 값
encText = urllib.parse.quote("반갑습니다")
data = "source=ko&target=en&text=" + encText
url = "https://openapi.naver.com/v1/papago/n2mt"
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request, data=data.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
- 외부 환경변수 .env를 사용해서 영어를 한국어로 번역하는 코드
: .env 파일
# Once you add your API key below, make sure to not share it with anyone! The API key should remain private.
PAPAGO_CLIENT_ID=id
PAPAGO_CLIENT_SECRET=secret
: 번역하고 JSON으로 번역된 결과만 파싱해서 뿌려주는 Python 코드
import os
import sys
import urllib.request
from dotenv import load_dotenv
import json
# .env 파일에서 환경변수 로드
load_dotenv()
client_id = os.getenv('PAPAGO_CLIENT_ID') # 환경변수에서 CLIENT_ID 값을 가져옴
client_secret = os.getenv('PAPAGO_CLIENT_SECRET') # 환경변수에서 CLIENT_SECRET 값을 가져옴
encText = urllib.parse.quote("Hello!")
data = "source=en&target=ko&text=" + encText
url = "https://openapi.naver.com/v1/papago/n2mt"
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request, data=data.encode("utf-8"))
rescode = response.getcode()
if rescode == 200:
response_body = response.read()
result = json.loads(response_body.decode('utf-8'))
translated_text = result['message']['result']['translatedText']
print(translated_text)
else:
print("Error Code:" + rescode)
P.S. 윈도우에서 Python 가상환경(venv) 설정은 아래 포스팅 참조
https://maduinos.blogspot.com/2023/03/openai-api.html
도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)
0 댓글