OpenAI compatibility

Gemini モデルには、REST API とともに OpenAI ライブラリ(Python と TypeScript / Javascript)を使用してアクセスできます。3 行のコードを更新し、Gemini API キーを使用します。この機能について詳しくは、互換性ガイドをご覧ください。

メソッド: chatCompletions

チャット履歴の入力に基づいて、モデルから一連のレスポンスを生成します。

エンドポイント

投稿 https://generativelanguage.googleapis.com/v1beta:chatCompletions

この URL は gRPC Transcoding 構文を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

フィールド
model string

必須。補完の生成に使用する Model の名前。モデル名にスラッシュが含まれていない場合、モデル名の前に「models/」が付加されます。

messages[] object (Struct format)

必須。補完の生成に使用するチャット履歴。単一ターンとマルチターンのクエリをサポートします。注: これはポリモーフィック フィールドで、InternalChatMessage に逆シリアル化されます。

stream boolean

省略可。レスポンスをストリーミングするか、1 つのレスポンスを返すか。

true の場合、レスポンスの「object」フィールドは「chat.completion.chunk」になります。それ以外の場合は「chat.completion」になります。

streamOptions object (StreamOptions)

省略可。ストリーミング リクエストのオプション。

tools[] object (ChatTool)

省略可。モデルが呼び出しを生成できるツールセット。各ツールは署名を宣言します。

toolChoice value (Value format)

省略可。モデルがツールを使用するかどうか、使用するツールを制御します。次のいずれかになります。- ツールを無効にするには、文字列「none」を指定します。- 文字列「auto」: モデルに決定を任せます。- 文字列「required」: モデルにツールの使用を強制します。- 使用するツールを指定する関数名記述子オブジェクト。最後のオプションは次のスキーマに従います。{ "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 Transcoding 構文を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

フィールド
input value (Value format)

必須。エンベディングを生成する入力。文字列または文字列のリストにできます。SDK は数値のリストと数値リストのリストをサポートしていますが、これはまだ実装されていません。

model string

必須。エンベディングを生成するモデル。

encodingFormat string

省略可。エンコードの形式。「float」または「base64」のいずれかを指定してください。

dimensions integer

省略可。生成されるエンベディングのディメンション サイズ。

レスポンスの本文

成功した場合、レスポンスの本文には GenerateEmbeddingsResponse のインスタンスが含まれます。

メソッド: listModels

現在利用可能なモデルを一覧表示します。

エンドポイント

get https://generativelanguage.googleapis.com/v1beta/listModels

この URL は gRPC Transcoding 構文を使用します。

リクエストの本文

リクエストの本文は空にする必要があります。

レスポンスの本文

成功した場合、レスポンスの本文には SdkListModelsResponse のインスタンスが含まれます。

メソッド: chat.completions

チャット履歴の入力に基づいて、モデルから一連のレスポンスを生成します。

エンドポイント

投稿 https://generativelanguage.googleapis.com/v1beta/chat/completions

この URL は gRPC Transcoding 構文を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

フィールド
model string

必須。補完の生成に使用する Model の名前。モデル名にスラッシュが含まれていない場合、モデル名の前に「models/」が付加されます。

messages[] object (Struct format)

必須。補完の生成に使用するチャット履歴。単一ターンとマルチターンのクエリをサポートします。注: これはポリモーフィック フィールドで、InternalChatMessage に逆シリアル化されます。

stream boolean

省略可。レスポンスをストリーミングするか、1 つのレスポンスを返すか。

true の場合、レスポンスの「object」フィールドは「chat.completion.chunk」になります。それ以外の場合は「chat.completion」になります。

streamOptions object (StreamOptions)

省略可。ストリーミング リクエストのオプション。

tools[] object (ChatTool)

省略可。モデルが呼び出しを生成できるツールセット。各ツールは署名を宣言します。

toolChoice value (Value format)

省略可。モデルがツールを使用するかどうか、使用するツールを制御します。次のいずれかになります。- ツールを無効にするには、文字列「none」を指定します。- 文字列「auto」: モデルに決定を任せます。- 文字列「required」: モデルにツールの使用を強制します。- 使用するツールを指定する関数名記述子オブジェクト。最後のオプションは次のスキーマに従います。{ "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 Transcoding 構文を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

フィールド
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 Transcoding 構文を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

フィールド
model string

必須。補完の生成に使用する Model の名前。モデル名にスラッシュが含まれていない場合、モデル名の前に「models/」が付加されます。

messages[] object (Struct format)

必須。補完の生成に使用するチャット履歴。単一ターンとマルチターンのクエリをサポートします。注: これはポリモーフィック フィールドで、InternalChatMessage に逆シリアル化されます。

stream boolean

省略可。レスポンスをストリーミングするか、1 つのレスポンスを返すか。

true の場合、レスポンスの「object」フィールドは「chat.completion.chunk」になります。それ以外の場合は「chat.completion」になります。

streamOptions object (StreamOptions)

省略可。ストリーミング リクエストのオプション。

tools[] object (ChatTool)

省略可。モデルが呼び出しを生成できるツールセット。各ツールは署名を宣言します。

toolChoice value (Value format)

省略可。モデルがツールを使用するかどうか、使用するツールを制御します。次のいずれかになります。- ツールを無効にするには、文字列「none」を指定します。- 文字列「auto」: モデルに決定を任せます。- 文字列「required」: モデルにツールの使用を強制します。- 使用するツールを指定する関数名記述子オブジェクト。最後のオプションは次のスキーマに従います。{ "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 Transcoding 構文を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

フィールド
input value (Value format)

必須。エンベディングを生成する入力。文字列または文字列のリストにできます。SDK は数値のリストと数値リストのリストをサポートしていますが、これはまだ実装されていません。

model string

必須。エンベディングを生成するモデル。

encodingFormat string

省略可。エンコードの形式。「float」または「base64」のいずれかを指定してください。

dimensions integer

省略可。生成されるエンベディングのディメンション サイズ。

レスポンスの本文

成功した場合、レスポンスの本文には GenerateEmbeddingsResponse のインスタンスが含まれます。

メソッド: openai.models

現在利用可能なモデルを一覧表示します。

エンドポイント

get https://generativelanguage.googleapis.com/v1beta/openai/models

この URL は gRPC Transcoding 構文を使用します。

リクエストの本文

リクエストの本文は空にする必要があります。

レスポンスの本文

成功した場合、レスポンスの本文には 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 本文を表すメッセージ。RAW バイナリや HTML ページなど、JSON として表現できないペイロード形式にのみ使用する必要があります。

このメッセージは、リクエストとレスポンスのストリーミングと非ストリーミング両方の API メソッドで使用できます。

最上位レベルのリクエスト フィールドとして使用でき、URL または HTTP テンプレートからリクエスト フィールドにパラメータを抽出する場合や、RAW 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 スキーマ。type が「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

出力専用。常に「list」で、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
}