コンテキスト キャッシュを使用すると、同じメディア ファイルについて異なる質問をするときなどに、繰り返し使用する事前計算された入力トークンを保存して再利用できます。使用状況によっては、費用の削減と速度の向上につながる可能性があります。詳細については、コンテキスト キャッシュのガイドをご覧ください。
メソッド: cachedContents.create
CachedContent リソースを作成します。
エンドポイント
post https://generativelanguage.googleapis.com/v1beta/cachedContentsリクエスト本文
リクエストの本文には CachedContent
のインスタンスが含まれます。
contents[]
object (Content
)
省略可。入力のみの変更不可。キャッシュに保存するコンテンツ。
tools[]
object (Tool
)
省略可。入力のみの変更不可。モデルが次のレスポンスを生成するために使用する可能性がある Tools
のリスト
expiration
。このリソースの有効期限を指定します。expiration
は次のいずれかになります。expireTime
string (Timestamp
format)
このリソースの有効期限が切れたとみなされる、UTC 形式のタイムスタンプ。入力の送信内容にかかわらず、出力には常に指定されます。
RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
。
ttl
string (Duration
format)
入力のみのこのリソースの新しい TTL。入力のみ。
s
で終わる小数 9 桁までの秒単位の期間。例: "3.5s"
。
name
string
省略可。ID。キャッシュに保存されたコンテンツを参照するリソース名。形式: cachedContents/{id}
displayName
string
省略可。変更不可。キャッシュに保存されたコンテンツの、ユーザー生成のわかりやすい表示名。最大 128 個の Unicode 文字。
model
string
必須。変更不可。キャッシュに保存するコンテンツに使用する Model
の名前。形式: models/{model}
systemInstruction
object (Content
)
省略可。入力のみの変更不可。デベロッパーが設定したシステム指示。現在はテキストのみです。
toolConfig
object (ToolConfig
)
省略可。入力のみの変更不可。ツールの設定。この構成はすべてのツールで共有されます。
リクエスト例
基本
Python
Node.js
Go
Shell
送信者名
Python
Node.js
Go
チャットから
Python
Node.js
Go
レスポンスの本文
成功した場合、レスポンスの本文には、新しく作成された CachedContent
のインスタンスが含まれます。
メソッド: cachedContents.list
CachedContents を一覧表示します。
エンドポイント
get https://generativelanguage.googleapis.com/v1beta/cachedContentsクエリ パラメータ
pageSize
integer
省略可。返されるキャッシュに保存されたコンテンツの最大数。サービスが返す値はこれよりも少ないことがあります。指定しなかった場合は、デフォルトの(最大数未満の)アイテム数が返されます。最大値は 1,000 です。1,000 を超える値は 1,000 に強制変換されます。
pageToken
string
省略可。前回の cachedContents.list
呼び出しから受け取ったページトークン。後続のページを取得するにはこれを指定します。
ページ分割を行う場合、cachedContents.list
に指定する他のすべてのパラメータは、ページトークンを提供した呼び出しと一致する必要があります。
リクエストの本文
リクエストの本文は空にする必要があります。
レスポンスの本文
CachedContents リストを含むレスポンス。
成功した場合、レスポンスの本文には次の構造のデータが含まれます。
cachedContents[]
object (CachedContent
)
キャッシュに保存されたコンテンツのリスト。
nextPageToken
string
次のページを取得するために pageToken
として送信できるトークン。このフィールドを省略すると、後続のページはなくなります。
JSON 表現 |
---|
{
"cachedContents": [
{
object ( |
メソッド: cachedContents.get
CachedContent リソースを読み取ります。
エンドポイント
get https://generativelanguage.googleapis.com/v1beta/{name=cachedContents/*}パスパラメータ
name
string
必須。コンテンツ キャッシュ エントリを参照するリソース名。形式: cachedContents/{id}
形式は cachedContents/{cachedcontent}
です。
リクエスト本文
リクエストの本文は空にする必要があります。
リクエスト例
Python
Node.js
Go
Shell
レスポンスの本文
成功した場合、レスポンスの本文には CachedContent
のインスタンスが含まれます。
メソッド: cachedContents.patch
CachedContent リソースを更新します(更新できるのは有効期限のみです)。
エンドポイント
パッチレベル https://generativelanguage.googleapis.com/v1beta/{cachedContent.name=cachedContents/*}PATCH https://generativelanguage.googleapis.com/v1beta/{cachedContent.name=cachedContents/*}
パスパラメータ
cachedContent.name
string
省略可。ID。キャッシュに保存されたコンテンツを参照するリソース名。形式: cachedContents/{id}
形式は cachedContents/{cachedcontent}
です。
クエリ パラメータ
updateMask
string (FieldMask
format)
更新するフィールドのリスト。
完全修飾フィールド名のカンマ区切りリスト。例: "user.displayName,photo"
。
リクエストの本文
リクエストの本文には CachedContent
のインスタンスが含まれます。
expiration
。このリソースの有効期限を指定します。expiration
は次のいずれかになります。expireTime
string (Timestamp
format)
このリソースの有効期限が切れたとみなされる、UTC 形式のタイムスタンプ。入力の送信内容にかかわらず、出力には常に指定されます。
RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
。
ttl
string (Duration
format)
入力のみのこのリソースの新しい TTL。入力のみ。
s
で終わる小数 9 桁までの秒単位の期間。例: "3.5s"
。
name
string
省略可。ID。キャッシュに保存されたコンテンツを参照するリソース名。形式: cachedContents/{id}
リクエスト例
Python
Node.js
Go
Shell
レスポンスの本文
成功した場合、レスポンスの本文には CachedContent
のインスタンスが含まれます。
メソッド: cacheContents.delete
CachedContent リソースを削除します。
エンドポイント
delete https://generativelanguage.googleapis.com/v1beta/{name=cachedContents/*}パスパラメータ
name
string
必須。コンテンツ キャッシュ エントリを参照するリソース名。形式: cachedContents/{id}
cachedContents/{cachedcontent}
の形式になります。
リクエスト本文
リクエストの本文は空にする必要があります。
リクエスト例
Python
Node.js
Go
Shell
レスポンスの本文
成功すると、レスポンスの本文は空になります。
REST リソース: cachedContents
- リソース: CachedContent
- コンテンツ
- パート
- Blob
- FunctionCall
- FunctionResponse
- FileData
- ExecutableCode
- 言語
- CodeExecutionResult
- 成果
- ツール
- FunctionDeclaration
- スキーマ
- 型
- GoogleSearchRetrieval
- DynamicRetrievalConfig
- Mode
- CodeExecution
- ToolConfigToolConfig
- FunctionCallingConfig
- Mode
- UsageMetadata
- メソッド
リソース: CachedContent
前処理され、GenerativeService への後続のリクエストで使用できるコンテンツ。
キャッシュに保存されたコンテンツは、作成されたモデルでのみ使用できます。
contents[]
object (Content
)
省略可。入力のみの変更不可。キャッシュに保存するコンテンツ。
tools[]
object (Tool
)
省略可。入力のみの変更不可。モデルが次のレスポンスを生成するために使用する可能性がある Tools
のリスト
createTime
string (Timestamp
format)
出力専用。キャッシュ エントリの作成日時。
RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
。
updateTime
string (Timestamp
format)
出力専用。キャッシュ エントリが最後に更新された日時(UTC)。
RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
。
usageMetadata
object (UsageMetadata
)
出力専用。キャッシュに保存されたコンテンツの使用に関するメタデータ。
expiration
。このリソースの有効期限を指定します。expiration
は次のいずれかになります。expireTime
string (Timestamp
format)
このリソースの有効期限が切れたとみなされる、UTC 形式のタイムスタンプ。入力の送信内容にかかわらず、出力には常に指定されます。
RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
。
ttl
string (Duration
format)
入力のみのこのリソースの新しい TTL。入力のみ。
s
で終わる小数 9 桁までの秒単位の期間。例: "3.5s"
。
name
string
省略可。ID。キャッシュに保存されたコンテンツを参照するリソース名。形式: cachedContents/{id}
displayName
string
省略可。変更不可。キャッシュに保存されたコンテンツの、ユーザー生成のわかりやすい表示名。最大 128 個の Unicode 文字。
model
string
必須。変更不可。キャッシュに保存するコンテンツに使用する Model
の名前。形式: models/{model}
systemInstruction
object (Content
)
省略可。入力のみの変更不可。デベロッパーが設定したシステム指示。現在はテキストのみです。
toolConfig
object (ToolConfig
)
省略可。入力のみの変更不可。ツールの設定。この構成はすべてのツールで共有されます。
JSON 表現 |
---|
{ "contents": [ { object ( |
コンテンツ
メッセージのマルチパート コンテンツを含む基本構造化データタイプ。
Content
には、Content
のプロデューサーを指定するための role
フィールドと、メッセージ ターンのコンテンツを含むマルチパート データを含む parts
フィールドが含まれます。
parts[]
object (Part
)
順序付けされた Parts
で、単一のメッセージを構成します。パーツによって MIME タイプが異なる場合があります。
role
string
省略可。コンテンツの制作者。「user」または「model」のいずれかを指定する必要があります。
マルチターンの会話で設定すると便利ですが、そうでない場合は空白のままにするか、未設定のままにできます。
JSON 表現 |
---|
{
"parts": [
{
object ( |
パーツ
マルチパート Content
メッセージの一部であるメディアを含むデータ型。
Part
は、関連するデータ型を持つデータで構成されます。Part
には、Part.data
で許可されているタイプのいずれか 1 つだけを含めることができます。
inlineData
フィールドが未加工バイトで埋め込まれている場合、Part
にはメディアのタイプとサブタイプを識別する固定の IANA MIME タイプが必要です。
共用体フィールド data
。
data
は次のいずれかになります。
text
string
インライン テキスト。
inlineData
object (Blob
)
インライン メディア バイト。
functionCall
object (FunctionCall
)
モデルから返された予測された FunctionCall
。引数とその値を含む FunctionDeclaration.name
を表す文字列を含みます。
functionResponse
object (FunctionResponse
)
FunctionDeclaration.name
を表す文字列と、関数からの出力を含む構造化 JSON オブジェクトを含む FunctionCall
の結果の出力が、モデルのコンテキストとして使用されます。
fileData
object (FileData
)
URI ベースのデータ。
executableCode
object (ExecutableCode
)
実行することを目的としてモデルによって生成されたコード。
codeExecutionResult
object (CodeExecutionResult
)
ExecutableCode
の実行結果。
JSON 表現 |
---|
{ // Union field |
Blob
未加工のメディアバイト数。
テキストは未加工のバイトとして送信しないでください。テキスト フィールドを使用してください。
mimeType
string
ソースデータの IANA 標準 MIME タイプ。例: - image/png - image/jpeg サポートされていない MIME タイプを指定すると、エラーが返されます。サポートされているタイプの一覧については、サポートされているファイル形式をご覧ください。
data
string (bytes format)
メディア フォーマットの未加工バイト数。
Base64 でエンコードされた文字列。
JSON 表現 |
---|
{ "mimeType": string, "data": string } |
FunctionCall
モデルから返される、予測された FunctionCall
。引数とその値を含む FunctionDeclaration.name
を表す文字列が含まれます。
name
string
必須。呼び出す関数の名前。a ~ z、A ~ Z、0 ~ 9 にする必要があり、アンダースコアとダッシュを含めることができます。最大長は 63 文字です。
args
object (Struct
format)
省略可。JSON オブジェクト形式の関数パラメータと値。
JSON 表現 |
---|
{ "name": string, "args": { object } } |
FunctionResponse
FunctionDeclaration.name
を表す文字列と、関数からの出力を含む構造化 JSON オブジェクトを含む FunctionCall
の結果の出力は、モデルのコンテキストとして使用されます。これには、モデル予測に基づいて作成された FunctionCall
の結果が含まれている必要があります。
name
string
必須。呼び出す関数の名前。a ~ z、A ~ Z、0 ~ 9 にする必要があり、アンダースコアとダッシュを含めることができます。最大長は 63 文字です。
response
object (Struct
format)
必須。JSON オブジェクト形式の関数のレスポンス。
JSON 表現 |
---|
{ "name": string, "response": { object } } |
FileData
URI ベースのデータ。
mimeType
string
省略可。ソースデータの IANA 標準 MIME タイプ。
fileUri
string
必須。URI。
JSON 表現 |
---|
{ "mimeType": string, "fileUri": string } |
ExecutableCode
言語
生成されるコードでサポートされているプログラミング言語。
列挙型 | |
---|---|
LANGUAGE_UNSPECIFIED |
言語が指定されていません。この値は使用しないでください。 |
PYTHON |
Python 3.10 以降(numpy と simpy が利用可能)。 |
CodeExecutionResult
結果
コード実行の可能な結果を列挙します。
列挙型 | |
---|---|
OUTCOME_UNSPECIFIED |
ステータス未指定。この値は使用しないでください。 |
OUTCOME_OK |
コードの実行が正常に完了しました。 |
OUTCOME_FAILED |
コードの実行は完了しましたが、エラーが発生しました。stderr に理由を入力します。 |
OUTCOME_DEADLINE_EXCEEDED |
コードの実行に時間がかかりすぎたため、キャンセルされました。部分的な出力が表示される場合と表示されない場合があります。 |
ツール
モデルが回答の生成に使用するツールの詳細。
Tool
は、システムが外部システムとやり取りして、モデルの知識や範囲外のアクションまたは一連のアクションを実行できるようにするコードです。
functionDeclarations[]
object (FunctionDeclaration
)
省略可。関数呼び出しに使用できる、モデルで使用可能な FunctionDeclarations
のリスト。
モデルまたはシステムが関数を実行しません。代わりに、定義された関数は、実行のためにクライアント側への引数とともに FunctionCall
として返される場合があります。モデルは、レスポンスに FunctionCall
を入力することで、これらの関数のサブセットを呼び出すことを決定する場合があります。次の会話ターンには、次のモデルターンの Content.role
「関数」生成コンテキストを含む FunctionResponse
が含まれる場合があります。
googleSearchRetrieval
object (GoogleSearchRetrieval
)
省略可。Google 検索を活用した取得ツール。
codeExecution
object (CodeExecution
)
省略可。モデルが生成の一部としてコードを実行できるようにします。
JSON 表現 |
---|
{ "functionDeclarations": [ { object ( |
FunctionDeclaration
OpenAPI 3.03 仕様で定義されている関数宣言の構造化表現。この宣言には、関数名とパラメータが含まれます。この FunctionDeclaration は、モデルで Tool
として使用され、クライアントによって実行されるコードブロックを表します。
name
string
必須。関数名。a ~ z、A ~ Z、0 ~ 9 にする必要があり、アンダースコアとダッシュを含めることができます。最大長は 63 文字です。
description
string
必須。関数の簡単な説明。
parameters
object (Schema
)
省略可。この関数のパラメータを記述します。Open API 3.03 パラメータ オブジェクトの文字列 Key: パラメータの名前を反映します。パラメータ名では大文字と小文字が区別されます。スキーマ値: パラメータに使用されるタイプを定義するスキーマ。
JSON 表現 |
---|
{
"name": string,
"description": string,
"parameters": {
object ( |
スキーマ
Schema
オブジェクトを使用すると、入力データ型と出力データ型を定義できます。これらの型はオブジェクトだけでなく、プリミティブや配列にもできます。OpenAPI 3.0 スキーマ オブジェクトの選択したサブセットを表します。
type
enum (Type
)
必須。データ型。
format
string
省略可。データの形式。これはプリミティブ データ型にのみ使用されます。サポートされている形式: NUMBER 型: float、double INTEGER 型: int32、int64 STRING 型: enum
description
string
省略可。パラメータの簡単な説明。使用例を含めることができます。パラメータの説明は Markdown 形式にできます。
nullable
boolean
省略可。値が null の可能性があるかどうかを示します。
enum[]
string
省略可。Type.STRING の要素の可能な値(列挙型形式)。たとえば、列挙型の方向を次のように定義できます。{type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]}
maxItems
string (int64 format)
省略可。Type.ARRAY の要素の最大数。
minItems
string (int64 format)
省略可。Type.ARRAY の要素の最小数。
properties
map (key: string, value: object (Schema
))
省略可。Type.OBJECT のプロパティ。
"key": value
ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }
required[]
string
省略可。Type.OBJECT の必須プロパティ。
items
object (Schema
)
省略可。Type.ARRAY の要素のスキーマ。
タイプ
Type には、https://spec.openapis.org/oas/v3.0.3#data-types で定義されている OpenAPI データ型のリストが含まれます。
列挙型 | |
---|---|
TYPE_UNSPECIFIED |
未指定。使用しないでください。 |
STRING |
文字列型。 |
NUMBER |
数値の種類。 |
INTEGER |
整数型。 |
BOOLEAN |
ブール型。 |
ARRAY |
配列型。 |
OBJECT |
オブジェクト タイプ。 |
GoogleSearchRetrieval
グラウンディングのために一般公開のウェブデータを取得するためのツール(Google 提供)。
dynamicRetrievalConfig
object (DynamicRetrievalConfig
)
指定したソースの動的取得構成を指定します。
JSON 表現 |
---|
{
"dynamicRetrievalConfig": {
object ( |
DynamicRetrievalConfig
モード
動的取得で使用する予測子のモード。
列挙型 | |
---|---|
MODE_UNSPECIFIED |
常に取得をトリガーします。 |
MODE_DYNAMIC |
システムが必要な場合にのみ取得を実行します。 |
CodeExecution
この型にはフィールドがありません。
モデルによって生成されたコードを実行し、結果をモデルに自動的に返すツール。
このツールを使用した場合にのみ生成される ExecutableCode
と CodeExecutionResult
もご覧ください。
ToolConfig
リクエストで Tool
の使用を指定するパラメータを含むツール構成。
functionCallingConfig
object (FunctionCallingConfig
)
省略可。関数呼び出しの構成。
JSON 表現 |
---|
{
"functionCallingConfig": {
object ( |
FunctionCallingConfig
関数呼び出しの動作を指定する構成。
mode
enum (Mode
)
省略可。関数呼び出しを実行するモードを指定します。指定しない場合、デフォルト値は AUTO に設定されます。
allowedFunctionNames[]
string
省略可。指定すると、モデルが呼び出す関数を制限する関数名のセット。
この値は、モードが ANY の場合にのみ設定する必要があります。関数名は [FunctionDeclaration.name] と一致する必要があります。モードを ANY に設定すると、モデルは指定された関数名のセットから関数呼び出しを予測します。
JSON 表現 |
---|
{
"mode": enum ( |
モード
実行モードを定義して、関数呼び出しの実行動作を定義します。
列挙型 | |
---|---|
MODE_UNSPECIFIED |
関数呼び出しモードが指定されていません。この値は使用しないでください。 |
AUTO |
デフォルトのモデルの動作。モデルは、関数呼び出しまたは自然言語によるレスポンスのどちらを予測するかを決定します。 |
ANY |
モデルは、常に関数呼び出しのみを予測するように制約されています。「allowedFunctionNames」が設定されている場合、予測された関数呼び出しは「allowedFunctionNames」のいずれかに限定されます。それ以外の場合は、予測された関数呼び出しは指定された「functionDeclarations」のいずれかになります。 |
NONE |
モデルは関数呼び出しを予測しません。モデルの動作は、関数宣言を渡さない場合と同じです。 |
UsageMetadata
キャッシュに保存されたコンテンツの使用に関するメタデータ。
totalTokenCount
integer
キャッシュに保存されたコンテンツが消費するトークンの合計数。
JSON 表現 |
---|
{ "totalTokenCount": integer } |