본문 바로가기
카테고리 없음

Google Cloud Translation API 사용법

by 뷰티풀스택 2023. 4. 18.
반응형

구글의 번역 API 정식 명칭은 Cloud Translation이다. 가격에 따라 Basic과 Advanced로 나뉘며 Basic으로 해도 충분하다. 사용을 위해서는 Cloud CLI와 Translation 2가지를 설치하여야 한다.

 

1. Cloud Translation Basic과 Advanced의 기능 및 가격 비교

  • 버젼별 기능 비교

Basic vs Advanced

  • 가격비교

Cloud Translation Basic Pricing

 

Cloud Translation Advanced Pricing

 

2. Google Cloud CLI 설치

https://cloud.google.com/sdk/docs/install?hl=ko

sudo apt-get update

sudo apt-get install apt-transport-https ca-certificates gnupg curl sudo

echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

sudo apt-get update && sudo apt-get install google-cloud-cli

gcloud init

 

3. Google Cloud Translation API 설치

 

  • pip 설치
pip install google-cloud-translate==2.0.1
  • Credential Json 설정 파일 생성
gcloud init
gcloud auth application-default login

만약에, 로컬 PC가 아닌 AWS와 같이 원격으로 작업하는데 GUI가 지원되지 않는 환경이라면 no-browser 옵션을 주어 실행하면 된다. 암호토큰이 정상적으로 표시가 되면 설치가 잘 된 것이다.

gcloud init --no-browser
gcloud auth application-default print-access-token
y..........................................0167

 

특히, "gcloud auth application-default login"을 해주어야 json 파일이 생성된다. 제일 중요한 파일이니 꼭 기어하기 바란다.

 

참고로, credentials 정보가 담겨있는 Json 파일은 자동으로 ~/.config 디렉토리에 저장이 되게 된다.

~/.config/gcloud/application_default_credentials.json

{
  "client_id": ".............com",
  "client_secret": "d-..........",
  "quota_project_id": "your-project-name",
  "refresh_token": "1//................",
  "type": "authorized_user"
}
 
4. 구글 번역 파이썬 코드 샘플
import os
import six
from google.cloud import translate_v2 as translate
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 
	os.path.join(os.path.expanduser('~'), '.config/gcloud/application_default_credentials.json')

def google_translate(text, language):
	translate_client = translate.Client()
	if isinstance(text, six.binary_type):
		text = text.decode('utf-8')
	result = translate_client.translate(text, target_language=language)
	return result['translatedText']

if __name__ == '__main__':
	result = google_translate('I love you', 'ko')
	print(result)
반응형

댓글