OpenAI compatibility

Gemini 모델은 REST API와 함께 OpenAI 라이브러리 (Python 및 TypeScript / JavaScript)를 사용하여 액세스할 수 있습니다. 코드 3줄을 업데이트하고 Gemini API 키를 사용하면 됩니다. 이 기능에 관한 자세한 내용은 호환성 가이드를 참고하세요.

메서드: chatCompletions

채팅 기록 입력을 고려하여 모델에서 일련의 응답을 생성합니다.

엔드포인트

게시 https://generativelanguage.googleapis.com/v1beta:chatCompletions

URL은 gRPC 트랜스코딩 문법을 사용합니다.

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

필드
model string

필수 항목입니다. 완성 생성에 사용할 Model의 이름입니다. 모델 이름에 슬래시가 없으면 모델 이름 앞에 'models/'가 접두사로 추가됩니다.

messages[] object (Struct format)

필수 항목입니다. 완료 생성에 사용할 채팅 기록입니다. 단일 및 다중 턴 쿼리를 지원합니다. 참고: 이 필드는 다형 필드이며 InternalChatMessage로 역직렬화됩니다.

stream boolean

선택사항입니다. 응답을 스트리밍할지 아니면 단일 응답을 반환할지 여부입니다.

true인 경우 응답의 'object' 필드는 'chat.completion.chunk'입니다. 그렇지 않으면 'chat.completion'입니다.

streamOptions object (StreamOptions)

선택사항입니다. 스트리밍 요청 옵션

tools[] object (ChatTool)

선택사항입니다. 모델이 호출을 생성할 수 있는 도구 집합입니다. 각 도구는 자체 서명을 선언합니다.

toolChoice value (Value format)

선택사항입니다. 모델에서 도구를 사용해야 하는지 여부와 사용할 도구를 제어합니다. 다음 중 하나일 수 있습니다. - 도구를 사용 중지하는 문자열 'none' - 모델이 결정하도록 하는 문자열 'auto' - 모델이 도구를 사용하도록 강제하는 '필수' 문자열 - 사용할 도구를 지정하는 함수 이름 설명자 객체입니다. 마지막 옵션은 다음 스키마를 따릅니다. { "type": "function", "function": {"name" : "the_function_name"} }

n integer

선택사항입니다. 생성할 후보 완료 수입니다. 양의 정수를 입력해야 합니다. 설정하지 않으면 기본값은 1입니다.

stop value (Value format)

선택사항입니다. 출력 생성을 중지하는 문자 시퀀스 집합입니다. 참고: 이 필드는 다형 필드입니다. 문자열 또는 반복된 문자열을 포함하는 것을 의미합니다.

maxCompletionTokens integer

선택사항입니다. 응답 후보에 포함할 토큰의 최대 개수입니다. 양의 정수를 입력해야 합니다.

maxTokens integer

선택사항입니다. 응답 후보에 포함할 토큰의 최대 개수입니다. 양의 정수를 입력해야 합니다. 이 필드는 SDK에서 지원 중단되었습니다.

temperature number

선택사항입니다. 출력의 무작위성을 제어합니다.

topP number

선택사항입니다. 샘플링할 때 고려할 토큰의 최대 누적 확률입니다.

responseFormat object (ResponseFormat)

선택사항입니다. 응답 형식을 정의합니다. 설정하지 않으면 응답 형식이 텍스트로 지정됩니다.

응답 본문

성공한 경우 응답은 형식이 메서드에 의해 정의되는 일반 HTTP 응답입니다.

메서드: embeddings

입력이 주어지면 모델에서 임베딩을 생성합니다.

엔드포인트

게시 https://generativelanguage.googleapis.com/v1beta/embeddings

URL은 gRPC 트랜스코딩 문법을 사용합니다.

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

필드
input value (Value format)

필수 항목입니다. 임베딩을 생성할 입력입니다. 문자열 또는 문자열 목록일 수 있습니다. SDK는 숫자 목록과 숫자 목록 목록을 지원하지만 아직 구현되지 않았습니다.

model string

필수 항목입니다. 임베딩을 생성할 모델입니다.

encodingFormat string

선택사항입니다. 인코딩 형식입니다. 'float' 또는 'base64'여야 합니다.

dimensions integer

선택사항입니다. 생성된 임베딩의 크기입니다.

응답 본문

성공한 경우 응답 본문에 GenerateEmbeddingsResponse의 인스턴스가 포함됩니다.

메서드: listModels

현재 사용 가능한 모델을 나열합니다.

엔드포인트

가져오기 https://generativelanguage.googleapis.com/v1beta/listModels

URL은 gRPC 트랜스코딩 문법을 사용합니다.

요청 본문

요청 본문은 비어 있어야 합니다.

응답 본문

성공한 경우 응답 본문에 SdkListModelsResponse의 인스턴스가 포함됩니다.

메서드: chat.completions

채팅 기록 입력을 고려하여 모델에서 일련의 응답을 생성합니다.

엔드포인트

게시 https://generativelanguage.googleapis.com/v1beta/chat/completions

URL은 gRPC 트랜스코딩 문법을 사용합니다.

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

필드
model string

필수 항목입니다. 완성 생성에 사용할 Model의 이름입니다. 모델 이름에 슬래시가 없으면 모델 이름 앞에 'models/'가 접두사로 추가됩니다.

messages[] object (Struct format)

필수 항목입니다. 완료 생성에 사용할 채팅 기록입니다. 단일 및 다중 턴 쿼리를 지원합니다. 참고: 이 필드는 다형 필드이며 InternalChatMessage로 역직렬화됩니다.

stream boolean

선택사항입니다. 응답을 스트리밍할지 아니면 단일 응답을 반환할지 여부입니다.

true인 경우 응답의 'object' 필드는 'chat.completion.chunk'입니다. 그렇지 않으면 'chat.completion'입니다.

streamOptions object (StreamOptions)

선택사항입니다. 스트리밍 요청 옵션

tools[] object (ChatTool)

선택사항입니다. 모델이 호출을 생성할 수 있는 도구 집합입니다. 각 도구는 자체 서명을 선언합니다.

toolChoice value (Value format)

선택사항입니다. 모델에서 도구를 사용해야 하는지 여부와 사용할 도구를 제어합니다. 다음 중 하나일 수 있습니다. - 도구를 사용 중지하는 문자열 'none' - 모델이 결정하도록 하는 문자열 'auto' - 모델이 도구를 사용하도록 강제하는 '필수' 문자열 - 사용할 도구를 지정하는 함수 이름 설명자 객체입니다. 마지막 옵션은 다음 스키마를 따릅니다. { "type": "function", "function": {"name" : "the_function_name"} }

n integer

선택사항입니다. 생성할 후보 완료 수입니다. 양의 정수를 입력해야 합니다. 설정하지 않으면 기본값은 1입니다.

stop value (Value format)

선택사항입니다. 출력 생성을 중지하는 문자 시퀀스 집합입니다. 참고: 이 필드는 다형 필드입니다. 문자열 또는 반복된 문자열을 포함하는 것을 의미합니다.

maxCompletionTokens integer

선택사항입니다. 응답 후보에 포함할 토큰의 최대 개수입니다. 양의 정수를 입력해야 합니다.

maxTokens integer

선택사항입니다. 응답 후보에 포함할 토큰의 최대 개수입니다. 양의 정수를 입력해야 합니다. 이 필드는 SDK에서 지원 중단되었습니다.

temperature number

선택사항입니다. 출력의 무작위성을 제어합니다.

topP number

선택사항입니다. 샘플링할 때 고려할 토큰의 최대 누적 확률입니다.

responseFormat object (ResponseFormat)

선택사항입니다. 응답 형식을 정의합니다. 설정하지 않으면 응답 형식이 텍스트로 지정됩니다.

응답 본문

성공한 경우 응답은 형식이 메서드에 의해 정의되는 일반 HTTP 응답입니다.

메서드: embeddings.generate

입력이 주어지면 모델에서 임베딩을 생성합니다.

엔드포인트

게시 https://generativelanguage.googleapis.com/v1beta/embeddings:generate

URL은 gRPC 트랜스코딩 문법을 사용합니다.

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

필드
input value (Value format)

필수 항목입니다. 임베딩을 생성할 입력입니다. 문자열 또는 문자열 목록일 수 있습니다. SDK는 숫자 목록과 숫자 목록 목록을 지원하지만 아직 구현되지 않았습니다.

model string

필수 항목입니다. 임베딩을 생성할 모델입니다.

encodingFormat string

선택사항입니다. 인코딩 형식입니다. 'float' 또는 'base64'여야 합니다.

dimensions integer

선택사항입니다. 생성된 임베딩의 크기입니다.

응답 본문

성공한 경우 응답 본문에 GenerateEmbeddingsResponse의 인스턴스가 포함됩니다.

메서드: openai.chat.completions

채팅 기록 입력을 고려하여 모델에서 일련의 응답을 생성합니다.

엔드포인트

게시 https://generativelanguage.googleapis.com/v1beta/openai/chat/completions

URL은 gRPC 트랜스코딩 문법을 사용합니다.

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

필드
model string

필수 항목입니다. 완성 생성에 사용할 Model의 이름입니다. 모델 이름에 슬래시가 없으면 모델 이름 앞에 'models/'가 접두사로 추가됩니다.

messages[] object (Struct format)

필수 항목입니다. 완료 생성에 사용할 채팅 기록입니다. 단일 및 다중 턴 쿼리를 지원합니다. 참고: 이 필드는 다형 필드이며 InternalChatMessage로 역직렬화됩니다.

stream boolean

선택사항입니다. 응답을 스트리밍할지 아니면 단일 응답을 반환할지 여부입니다.

true인 경우 응답의 'object' 필드는 'chat.completion.chunk'입니다. 그렇지 않으면 'chat.completion'입니다.

streamOptions object (StreamOptions)

선택사항입니다. 스트리밍 요청 옵션

tools[] object (ChatTool)

선택사항입니다. 모델이 호출을 생성할 수 있는 도구 집합입니다. 각 도구는 자체 서명을 선언합니다.

toolChoice value (Value format)

선택사항입니다. 모델에서 도구를 사용해야 하는지 여부와 사용할 도구를 제어합니다. 다음 중 하나일 수 있습니다. - 도구를 사용 중지하는 문자열 'none' - 모델이 결정하도록 하는 문자열 'auto' - 모델이 도구를 사용하도록 강제하는 '필수' 문자열 - 사용할 도구를 지정하는 함수 이름 설명자 객체입니다. 마지막 옵션은 다음 스키마를 따릅니다. { "type": "function", "function": {"name" : "the_function_name"} }

n integer

선택사항입니다. 생성할 후보 완료 수입니다. 양의 정수를 입력해야 합니다. 설정하지 않으면 기본값은 1입니다.

stop value (Value format)

선택사항입니다. 출력 생성을 중지하는 문자 시퀀스 집합입니다. 참고: 이 필드는 다형 필드입니다. 문자열 또는 반복된 문자열을 포함하는 것을 의미합니다.

maxCompletionTokens integer

선택사항입니다. 응답 후보에 포함할 토큰의 최대 개수입니다. 양의 정수를 입력해야 합니다.

maxTokens integer

선택사항입니다. 응답 후보에 포함할 토큰의 최대 개수입니다. 양의 정수를 입력해야 합니다. 이 필드는 SDK에서 지원 중단되었습니다.

temperature number

선택사항입니다. 출력의 무작위성을 제어합니다.

topP number

선택사항입니다. 샘플링할 때 고려할 토큰의 최대 누적 확률입니다.

responseFormat object (ResponseFormat)

선택사항입니다. 응답 형식을 정의합니다. 설정하지 않으면 응답 형식이 텍스트로 지정됩니다.

응답 본문

성공한 경우 응답은 형식이 메서드에 의해 정의되는 일반 HTTP 응답입니다.

메서드: openai.embeddings

입력이 주어지면 모델에서 임베딩을 생성합니다.

엔드포인트

게시 https://generativelanguage.googleapis.com/v1beta/openai/embeddings

URL은 gRPC 트랜스코딩 문법을 사용합니다.

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

필드
input value (Value format)

필수 항목입니다. 임베딩을 생성할 입력입니다. 문자열 또는 문자열 목록일 수 있습니다. SDK는 숫자 목록과 숫자 목록 목록을 지원하지만 아직 구현되지 않았습니다.

model string

필수 항목입니다. 임베딩을 생성할 모델입니다.

encodingFormat string

선택사항입니다. 인코딩 형식입니다. 'float' 또는 'base64'여야 합니다.

dimensions integer

선택사항입니다. 생성된 임베딩의 크기입니다.

응답 본문

성공한 경우 응답 본문에 GenerateEmbeddingsResponse의 인스턴스가 포함됩니다.

메서드: openai.models

현재 사용 가능한 모델을 나열합니다.

엔드포인트

가져오기 https://generativelanguage.googleapis.com/v1beta/openai/models

URL은 gRPC 트랜스코딩 문법을 사용합니다.

요청 본문

요청 본문은 비어 있어야 합니다.

응답 본문

성공한 경우 응답 본문에 SdkListModelsResponse의 인스턴스가 포함됩니다.

ChatTool

모델이 호출을 생성할 수 있는 도구입니다.

필드
function object (ChatFunction)

필수 항목입니다. 도구의 이름입니다.

type string

필수 항목입니다. 필수 항목이며 'function'이어야 합니다.

JSON 표현
{
  "function": {
    object (ChatFunction)
  },
  "type": string
}

ChatFunction

모델이 호출을 생성할 수 있는 함수입니다.

필드
name string

필수 항목입니다. 함수 이름입니다.

description string

선택사항입니다. 함수에 대한 설명입니다.

parameters object (Struct format)

선택사항입니다. 함수의 매개변수입니다.

strict boolean

선택사항입니다. 스키마 유효성 검사가 엄격한지 여부입니다. 이 값이 true이면 스키마가 유효하지 않으면 모델이 실패합니다. 참고: 이 매개변수는 현재 무시됩니다.

JSON 표현
{
  "name": string,
  "description": string,
  "parameters": {
    object
  },
  "strict": boolean
}

GenerateEmbeddingsResponse

임베딩 생성의 응답입니다.

필드
object string

출력 전용입니다. 항상 '삽입'되어야 하며 SDK에서 필요합니다.

data[] object (GenerateEmbeddingsEmbedding)

출력 전용입니다. 요청된 임베딩 목록입니다.

model string

출력 전용입니다. 임베딩을 생성하는 데 사용되는 모델입니다.

JSON 표현
{
  "object": string,
  "data": [
    {
      object (GenerateEmbeddingsEmbedding)
    }
  ],
  "model": string
}

GenerateEmbeddingsEmbedding

모델에서 생성된 임베딩 벡터입니다.

필드
object string

출력 전용입니다. 항상 '삽입'되어야 하며 SDK에서 필요합니다.

index integer

출력 전용입니다. 임베딩 목록에서 임베딩의 색인입니다.

embedding value (Value format)

출력 전용입니다. 입력에 대해 생성된 임베딩 벡터입니다. 부동 소수점 목록 또는 C 스타일 레이아웃 (Numpy 호환)으로 부동 소수점 목록을 인코딩하는 base64 문자열일 수 있습니다.

JSON 표현
{
  "object": string,
  "index": integer,
  "embedding": value
}

HttpBody

임의의 HTTP 본문을 나타내는 메시지입니다. 원시 바이너리나 HTML 페이지와 같이 JSON으로 표현할 수 없는 페이로드 형식에만 사용해야 합니다.

이 메시지는 요청과 응답에서 스트리밍 및 스트리밍이 아닌 API 메소드에 모두 사용될 수 있습니다.

또한 최상위 요청 필드로 사용할 수 있으며, URL 또는 HTTP 템플릿에서 요청 필드로 매개변수를 추출하려는 경우와 원시 HTTP 본문에 액세스하려는 경우 편리하게 사용할 수 있습니다.

예:

message GetResourceRequest {
  // A unique request id.
  string requestId = 1;

  // The raw HTTP body is bound to this field.
  google.api.HttpBody http_body = 2;

}

service ResourceService {
  rpc GetResource(GetResourceRequest)
    returns (google.api.HttpBody);
  rpc UpdateResource(google.api.HttpBody)
    returns (google.protobuf.Empty);

}

스트리밍 메소드의 예:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

이 유형을 사용하면 요청 및 응답 본문을 처리하는 방법만 변경되며, 다른 모든 기능은 변경되지 않고 계속 작동합니다.

필드
contentType string

본문의 콘텐츠 유형을 지정하는 HTTP Content-Type 헤더 값입니다.

data string (bytes format)

원시 바이너리인 HTTP 요청/응답 본문입니다.

base64 인코딩 문자열입니다.

extensions[] object

애플리케이션별 응답 메타데이터입니다. 스트리밍 API의 첫 번째 응답에서 설정되어야 합니다.

임의 유형의 필드를 포함하는 객체입니다. 추가 필드 "@type"은 유형을 식별하는 URI를 포함합니다. 예: { "id": 1234, "@type": "types.example.com/standard/id" }

JSON 표현
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}

ResponseFormat

응답 형식을 정의합니다.

필드
type string

필수 항목입니다. 응답 유형입니다. 다음 중 하나일 수 있습니다. - 'text': 대답 형식을 텍스트로 지정합니다. - 'json_object': 응답 형식을 JSON 객체로 지정합니다. - 'jsonSchema': 지정된 스키마에 따라 응답을 JSON 객체로 형식 지정합니다.

jsonSchema object (ResponseFormatSchema)

선택사항입니다. 따라야 할 JSON 스키마입니다. 유형이 'jsonSchema'인 경우에만 사용됩니다.

JSON 표현
{
  "type": string,
  "jsonSchema": {
    object (ResponseFormatSchema)
  }
}

ResponseFormatSchema

응답의 스키마입니다.

필드
description string

선택사항입니다. 스키마로 표현된 객체에 관한 설명입니다.

name string

필수 항목입니다. 스키마로 표현되는 객체 유형의 이름입니다.

strict boolean

선택사항입니다. 스키마 유효성 검사가 엄격한지 여부입니다. 이 값이 true이면 스키마가 유효하지 않으면 모델이 실패합니다. 참고: 이 매개변수는 현재 무시됩니다.

schema object (Struct format)

선택사항입니다. 따라야 할 JSON 스키마입니다.

JSON 표현
{
  "description": string,
  "name": string,
  "strict": boolean,
  "schema": {
    object
  }
}

SdkListModelsResponse

모델 목록에 대한 응답입니다.

필드
object string

출력 전용입니다. 항상 '목록'이며 SDK에 필요합니다.

data[] object (SdkModel)

출력 전용입니다. 요청된 임베딩 목록입니다.

JSON 표현
{
  "object": string,
  "data": [
    {
      object (SdkModel)
    }
  ]
}

SdkModel

모델 객체입니다.

필드
id string

출력 전용입니다. 모델의 ID입니다.

object string

출력 전용입니다. 항상 'model'이며 SDK에서 필요합니다.

created string (int64 format)

출력 전용입니다. 모델이 생성된 시점의 Unix 타임스탬프 (초)입니다.

owned_by string

출력 전용입니다. 모델을 소유한 조직입니다.

JSON 표현
{
  "id": string,
  "object": string,
  "created": string,
  "owned_by": string
}

StreamOptions

스트리밍 요청 옵션

필드
includeUsage boolean

선택사항입니다. 설정된 경우 응답에 사용 통계를 포함합니다.

JSON 표현
{
  "includeUsage": boolean
}