CountTokens API를 사용하면 요청이 모델 컨텍스트 윈도우를 초과하지 않게 하고 청구 가능한 문자를 기준으로 잠재 비용을 예측할 수 있습니다.
CountTokens API는 Gemini API 추론 요청과 동일한 contents
파라미터를 사용할 수 있습니다.
지원되는 모델:
모델 | 코드 |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-002 gemini-1.5-flash-001 gemini-1.5-flash-preview-0514 |
Gemini 1.5 Pro | gemini-1.5-pro-002 gemini-1.5-pro-001 gemini-1.5-pro-preview-0514 |
Gemini 1.0 Pro Vision | gemini-1.0-pro-vision gemini-1.0-pro-vision-001 |
Gemini 1.0 Pro | gemini-1.0-pro gemini-1.0-pro-001 gemini-1.0-pro-002 |
Gemini Experimental | gemini-experimental |
제한사항:
gemini-1.0-pro-vision-001
및 gemini-1.0-ultra-vision-001
은 동영상 입력에 고정된 토큰 수를 사용합니다.
예시 문법
집계 토큰 요청을 전송하는 구문입니다.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:countTokens \ -d '{ "contents": [{ ... }], "system_instruction": { "role": "...", "parts": [{ ... }], "tools": [{ "function_declarations": [{ ... }] }], } }'
Python
gemini_model = GenerativeModel(MODEL_ID) model_response = gemini_model.count_tokens([...])
매개변수 목록
이 클래스는 role
과 parts
라는 두 가지 기본 속성으로 구성됩니다. role
속성은 콘텐츠를 생성하는 개별 사용자를 나타내고 parts
속성에는 여러 요소가 포함되며 각 요소는 메시지 내 데이터 세그먼트를 나타냅니다.
매개변수 | |
---|---|
|
선택사항: 메시지를 만드는 항목의 ID입니다. 문자열을 다음 중 하나로 설정합니다.
멀티턴이 아닌 대화의 경우 이 필드를 비워 두거나 설정하지 않을 수 있습니다. |
|
단일 메시지를 구성하는 순서가 지정된 부분의 목록입니다. 부분마다 IANA MIME 유형이 다를 수 있습니다. |
Part
멀티 파트 Content
메시지의 일부인 미디어를 포함하는 데이터 유형입니다.
매개변수 | |
---|---|
|
선택사항: 텍스트 프롬프트 또는 코드 스니펫입니다. |
|
선택사항: 원시 바이트의 인라인 데이터입니다. |
|
(선택사항) 파일에 저장된 데이터입니다. |
Blob
콘텐츠 blob. 가능하다면 원시 바이트가 아닌 텍스트로 보냅니다.
매개변수 | |
---|---|
|
데이터의 IANA MIME 유형입니다. |
|
원시 바이트입니다. |
FileData
URI 기반 데이터.
매개변수 | |
---|---|
|
데이터의 IANA MIME 유형입니다. |
|
데이터를 저장하는 파일에 대한 Cloud Storage URI입니다. |
system_instruction
이 필드는 사용자가 제공한 system_instructions
용입니다. contents
와 동일하지만 콘텐츠 유형에 대한 지원이 제한됩니다.
매개변수 | |
---|---|
|
데이터의 IANA MIME 유형입니다. 이 필드는 내부적으로 무시됩니다. |
|
텍스트 전용. 사용자가 모델에 전달하려는 안내입니다. |
FunctionDeclaration
모델에서 JSON 입력을 생성할 수 있는 함수를 나타내는 OpenAPI 3.0 사양에서 정의된 함수 선언의 구조화된 표현입니다.
매개변수 | |
---|---|
|
호출하려는 함수의 이름입니다. |
|
(선택사항) 함수 설명 및 용도입니다. |
|
(선택사항) 함수 파라미터를 OpenAPI JSON 스키마 객체 형식인 OpenAPI 3.0 사양으로 설명합니다. |
|
(선택사항) 함수의 출력을 OpenAPI JSON 스키마 객체 형식인 OpenAPI 3.0 사양으로 설명합니다. |
예시
텍스트 프롬프트에서 토큰 수 가져오기
이 예시에서는 단일 텍스트 프롬프트의 토큰을 집계합니다.
REST
Vertex AI API를 사용하여 프롬프트에 대해 토큰 수 및 청구 가능한 문자 수를 가져오려면 POST
요청을 게시자 모델 엔드포인트에 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 요청을 처리하는 리전입니다. 사용 가능한 옵션은 다음과 같습니다.
클릭하여 사용 가능한 리전의 일부 목록 펼치기
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: 프로젝트 ID
- MODEL_ID: 사용할 멀티모달 모델의 모델 ID입니다.
- ROLE: 콘텐츠와 연결된 대화의 역할입니다. 싱글턴 사용 사례에서도 역할을 지정해야 합니다.
허용되는 값은 다음과 같습니다.
USER
: 전송한 콘텐츠를 지정합니다.
- TEXT: 프롬프트에 포함할 텍스트 안내입니다.
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
JSON 요청 본문:
{ "contents": [{ "role": "ROLE", "parts": [{ "text": "TEXT" }] }] }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 수신됩니다.
Python
NodeJS
Java
Go
미디어 프롬프트에서 토큰 수 가져오기
이 예시에서는 다양한 미디어 유형을 사용하는 프롬프트의 토큰을 집계합니다.
REST
Vertex AI API를 사용하여 프롬프트에 대해 토큰 수 및 청구 가능한 문자 수를 가져오려면 POST
요청을 게시자 모델 엔드포인트에 전송합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 요청을 처리하는 리전입니다. 사용 가능한 옵션은 다음과 같습니다.
클릭하여 사용 가능한 리전의 일부 목록 펼치기
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: 프로젝트 ID
- MODEL_ID: 사용할 멀티모달 모델의 모델 ID입니다.
- ROLE: 콘텐츠와 연결된 대화의 역할입니다. 싱글턴 사용 사례에서도 역할을 지정해야 합니다.
허용되는 값은 다음과 같습니다.
USER
: 전송한 콘텐츠를 지정합니다.
- TEXT: 프롬프트에 포함할 텍스트 안내입니다.
- FILE_URI: 프롬프트에 포함할 파일의 URI 또는 URL입니다. 허용되는 값은 다음과 같습니다.
- Cloud Storage 버킷 URI: 객체는 공개적으로 읽을 수 있거나 요청을 보내는 동일한 Google Cloud 프로젝트에 있어야 합니다.
gemini-1.5-pro
및gemini-1.5-flash
의 경우 크기 제한은 2GB입니다.gemini-1.0-pro-vision
의 경우 크기 제한은 20MB입니다. - HTTP URL: 파일 URL은 공개적으로 읽을 수 있어야 합니다. 요청당 하나의 동영상 파일, 하나의 오디오 파일, 최대 10개의 이미지 파일을 지정할 수 있습니다. 오디오 파일, 동영상 파일, 문서는 15MB를 초과할 수 없습니다.
- YouTube 동영상 URL: YouTube 동영상은 Google Cloud 콘솔에 로그인하는 데 사용된 계정이 소유한 것이거나 공개된 동영상이어야 합니다. 요청당 하나의 YouTube 동영상 URL만 지원됩니다.
fileURI
를 지정할 때는 파일의 미디어 유형(mimeType
)도 지정해야 합니다. VPC 서비스 제어가 사용 설정된 경우fileURI
의 미디어 파일 URL을 지정하는 것은 지원되지 않습니다. - Cloud Storage 버킷 URI: 객체는 공개적으로 읽을 수 있거나 요청을 보내는 동일한 Google Cloud 프로젝트에 있어야 합니다.
- MIME_TYPE:
data
또는fileUri
필드에 지정된 파일의 미디어 유형입니다. 허용되는 값은 다음과 같습니다.클릭하여 MIME 유형 펼치기
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens
JSON 요청 본문:
{ "contents": [{ "role": "ROLE", "parts": [ { "file_data": { "file_uri": "FILE_URI", "mime_type": "MIME_TYPE" } }, { "text": "TEXT } ] }] }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:countTokens" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 수신됩니다.
Python
NodeJS
Java
Go
다음 단계
- Gemini API 자세히 알아보기