블로그

google cloud vertex ai API로 text 생성 Gemini Pro 사용법

AI · 2023-12-14 · 공개

google cloud vertex ai API로 text 생성 Gemini Pro 사용법

//-------------------------------------
Google Cloud SDK설치
https://cloud.google.com/sdk/?hl=ko
https://cloud.google.com/sdk/docs/install-sdk?hl=ko

* 윈도우
GoogleCloudSDKInstaller.exe 다운로드 실행
https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe

- 초기화
> gcloud init 

* 우분투에 설치
sudo apt-get update

- 기본툴 설치
sudo apt-get install apt-transport-https ca-certificates gnupg curl sudo

- 공개키 가져오기
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg

- gcloud CLI 배포 URI를 추가
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

- gcloud CLI를  설치
sudo apt-get install google-cloud-cli

//-------------------------------------
- 초기화 설정
gcloud init

- 계정 설정 보기
gcloud auth list

- 설정 보기
gcloud config list

//-------------------------------------
> gcloud auth login

- $(gcloud auth print-access-token) 값 알아내기 명령
> gcloud auth print-access-token

- 자동 인증 설정
> gcloud auth application-default login

---------------------------------------

서비스계정의 json 파일로 인증하는 방법

* 서비스 계정 생성
서비스계정 생성
https://console.cloud.google.com/iam-admin/serviceaccounts
계정 생성후 권한은 최소한으로 부여하고(vertex) key 생성

- 윈도우
set GOOGLE_APPLICATION_CREDENTIALS="JSON 파일"
gcloud auth activate-service-account --key-file="JSON 파일"

- 리눅스
export GOOGLE_APPLICATION_CREDENTIALS="JSON 파일"
gcloud auth activate-service-account --key-file=$GOOGLE_APPLICATION_CREDENTIALS

- 토큰 생성 테스트
gcloud auth print-access-token

gcloud auth list
gcloud auth revoke 계정이름(이메일형식)

//-------------------------------------
vertex-ai gemini 메뉴얼
https://cloud.google.com/vertex-ai/docs/generative-ai/model-reference/gemini

vertex project
https://console.cloud.google.com/vertex-ai/generative/language/create/text?project=voltaic-sandbox-407808

//-------------------------------------

* CURL 실행 명령 예제

API_ENDPOINT="asia-northeast3-aiplatforhttp://m.googleapis.com"
PROJECT_ID="voltaic-sandbox-XX"
MODEL_ID="gemini-pro"
LOCATION_ID="asia-northeast3"

curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://${API_ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION_ID}/publishers/google/models/${MODEL_ID}:streamGenerateContent" -d \

#039;{
    "contents": [
        {
            "role": "user",
            "parts": [
                {
                    "text": "What is the name of the current president of South Korea?"
                }
            ]
        }
    ],
    "generation_config": {
        "maxOutputTokens": 2048,
        "temperature": 0.9,
        "topP": 1
    }
}'

알림

{ \u003cbr/\u003e    \"contents\": [ \u003cbr/\u003e        { \u003cbr/\u003e            \"role\": \"user\", \u003cbr/\u003e            \"parts\": [ \u003cbr/\u003e                { \u003cbr/\u003e                    \"text\": \"What is the name of the current president of South Korea?\" \u003cbr/\u003e                } \u003cbr/\u003e            ] \u003cbr/\u003e        } \u003cbr/\u003e    ], \u003cbr/\u003e    \"generation_config\": { \u003cbr/\u003e        \"maxOutputTokens\": 2048, \u003cbr/\u003e        \"temperature\": 0.9, \u003cbr/\u003e        \"topP\": 1 \u003cbr/\u003e    } \u003cbr/\u003e}'\u003c/p\u003e\n\u003cp data-ke-size=\"size16\"\u003e \u003c/p\u003e\n\u003c/div\u003e\n\u003cbr/\u003e","isPublic":true},"categories":[{"id":"AI","name":"AI","parentId":""},{"id":"Code","name":"Code","parentId":""},{"id":"Code/Python","name":"Python","parentId":"Code"},{"id":"Code/JavaScript","name":"JavaScript","parentId":"Code"},{"id":"Code/PHP","name":"PHP","parentId":"Code"},{"id":"Code/Web","name":"Web","parentId":"Code"},{"id":"Code/Database (DB)","name":"Database (DB)","parentId":"Code"},{"id":"Code/Mobile","name":"Mobile","parentId":"Code"},{"id":"Code/C#","name":"C#","parentId":"Code"},{"id":"Code/Desktop","name":"Desktop","parentId":"Code"},{"id":"Music","name":"Music","parentId":""},{"id":"Music/Crush","name":"Crush","parentId":"Music"},{"id":"Music/Playing","name":"Playing","parentId":"Music"},{"id":"Cine","name":"Cine","parentId":""},{"id":"IT","name":"IT","parentId":""},{"id":"Gears","name":"Gears","parentId":""},{"id":"Tips","name":"Tips","parentId":""},{"id":"헤아림","name":"헤아림","parentId":""},{"id":"Etc","name":"Etc","parentId":""},{"id":"Etc/Atelier","name":"Atelier","parentId":"Etc"},{"id":"Etc/History","name":"History","parentId":"Etc"},{"id":"Etc/Graphic","name":"Graphic","parentId":"Etc"}],"snapshot":null,"revision":3075}}