借助上下文缓存,您可以保存并重复使用预计算的输入 token,例如在针对同一媒体文件提出不同问题时。这有助于节省费用和时间,具体取决于使用情况。如需详细了解,请参阅上下文缓存指南。
方法:cachedContents.create
创建 CachedContent 资源。
端点
posthttps: / /generativelanguage.googleapis.com /v1beta /cachedContents
请求正文
请求正文包含一个 CachedContent 实例。
contents[]
object (Content)
可选。仅限输入。不可变。要缓存的内容。
tools[]
object (Tool)
可选。仅限输入。不可变。模型可能用于生成下一个回答的 Tools 列表
expiration
Union type
expiration 只能是下列其中一项:expireTime
string (Timestamp format)
资源被视为过期时的时间戳(世界协调时间)。无论输入中发送的是什么内容,输出中始终都会提供此时间戳。
采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不进行“Z”归一化处理的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。
ttl
string (Duration format)
仅限输入。相应资源的新 TTL,仅限输入。
该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"。
displayName
string
可选。不可变。缓存内容的用户生成的有意义的显示名称。最多 128 个 Unicode 字符。
model
string
必需。不可变。用于缓存内容的 Model 的名称格式:models/{model}
systemInstruction
object (Content)
可选。仅限输入。不可变。开发者设置系统指令。目前仅支持文本。
toolConfig
object (ToolConfig)
可选。仅限输入。不可变。工具配置。此配置适用于所有工具。
示例请求
基本
Python
Node.js
Go
Shell
From name
Python
Node.js
Go
来自聊天
Python
Node.js
Go
响应正文
如果成功,响应正文将包含一个新创建的 CachedContent 实例。
方法:cachedContents.list
列出 CachedContent。
端点
gethttps: / /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 资源。
端点
gethttps: / /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
仅限输出。标识符。引用缓存内容的资源名称。格式:cachedContents/{id}。其格式为 cachedContents/{cachedcontent}。
查询参数
updateMask
string (FieldMask format)
要更新的字段列表。
这是完全限定字段名称的逗号分隔列表。示例:"user.displayName,photo"。
请求正文
请求正文包含一个 CachedContent 实例。
expiration
Union type
expiration 只能是下列其中一项:expireTime
string (Timestamp format)
资源被视为过期时的时间戳(世界协调时间)。无论输入中发送的是什么内容,输出中始终都会提供此时间戳。
采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不进行“Z”归一化处理的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。
ttl
string (Duration format)
仅限输入。相应资源的新 TTL,仅限输入。
该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"。
示例请求
Python
Node.js
Go
Shell
响应正文
如果成功,则响应正文包含一个 CachedContent 实例。
方法:cachedContents.delete
删除 CachedContent 资源。
端点
deletehttps: / /generativelanguage.googleapis.com /v1beta /{name=cachedContents /*}
路径参数
name
string
必需。引用内容缓存条目的资源名称。格式:cachedContents/{id}。采用 cachedContents/{cachedcontent} 格式。
请求正文
请求正文必须为空。
示例请求
Python
Node.js
Go
Shell
响应正文
如果成功,则响应正文为空的 JSON 对象。
REST 资源:cachedContents
资源:CachedContent
已预处理的内容,可在后续对 GenerativeService 的请求中使用。
缓存的内容只能与创建该内容时所用的模型搭配使用。
contents[]
object (Content)
可选。仅限输入。不可变。要缓存的内容。
tools[]
object (Tool)
可选。仅限输入。不可变。模型可能用于生成下一个回答的 Tools 列表
createTime
string (Timestamp format)
仅限输出。相应缓存条目的创建时间。
采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不进行“Z”归一化处理的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。
updateTime
string (Timestamp format)
仅限输出。缓存条目的上次更新时间(世界协调时间)。
采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不进行“Z”归一化处理的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。
usageMetadata
object (UsageMetadata)
仅限输出。有关缓存内容使用情况的元数据。
expiration
Union type
expiration 只能是下列其中一项:expireTime
string (Timestamp format)
资源被视为过期时的时间戳(世界协调时间)。无论输入中发送的是什么内容,输出中始终都会提供此时间戳。
采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不进行“Z”归一化处理的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。
ttl
string (Duration format)
仅限输入。相应资源的新 TTL,仅限输入。
该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"。
name
string
仅限输出。标识符。引用缓存内容的资源名称。格式:cachedContents/{id}
displayName
string
可选。不可变。缓存内容的用户生成的有意义的显示名称。最多 128 个 Unicode 字符。
model
string
必需。不可变。用于缓存内容的 Model 的名称格式:models/{model}
systemInstruction
object (Content)
可选。仅限输入。不可变。开发者设置系统指令。目前仅支持文本。
toolConfig
object (ToolConfig)
可选。仅限输入。不可变。工具配置。此配置适用于所有工具。
| JSON 表示法 |
|---|
{ "contents": [ { object ( |
ToolConfig
包含用于指定请求中 Tool 用法的参数的工具配置。
functionCallingConfig
object (FunctionCallingConfig)
可选。函数调用配置。
retrievalConfig
object (RetrievalConfig)
可选。检索配置。
includeServerSideToolInvocations
boolean
可选。如果为 true,则 API 响应将在 Content 消息中包含服务器端工具调用和响应。这样,客户端便可观察服务器的工具互动。
| JSON 表示法 |
|---|
{ "functionCallingConfig": { object ( |
FunctionCallingConfig
模式
通过定义执行模式来定义函数调用的执行行为。
| 枚举 | |
|---|---|
MODE_UNSPECIFIED |
未指定函数调用模式。不应使用此值。 |
AUTO |
默认模型行为,模型决定预测函数调用或自然语言回答。 |
ANY |
模型会受到限制,始终仅预测函数调用。如果设置了“allowedFunctionNames”,则预测的函数调用将仅限于“allowedFunctionNames”中的任何一个;否则,预测的函数调用将是提供的“functionDeclarations”中的任何一个。 |
NONE |
模型不会预测任何函数调用。模型行为与不传递任何函数声明时相同。 |
VALIDATED |
模型决定预测函数调用或自然语言回答,但会通过受限解码来验证函数调用。如果设置了“allowedFunctionNames”,则预测的函数调用将仅限于“allowedFunctionNames”中的任何一个;否则,预测的函数调用将是提供的“functionDeclarations”中的任何一个。 |
RetrievalConfig
LatLng
表示纬度/经度对的对象。该对象以一对双精度数表示,分别代表纬度度数和经度度数。除非另有说明,否则该对象必须符合 WGS84 标准。值必须介于标准化范围内。
latitude
number
纬度(以度为单位),它必须在 [-90.0, +90.0] 范围内。
longitude
number
经度(以度为单位)。它必须在 [-180.0, +180.0] 范围内。
| JSON 表示法 |
|---|
{ "latitude": number, "longitude": number } |
UsageMetadata
有关缓存内容使用情况的元数据。
totalTokenCount
integer
缓存内容消耗的 token 总数。
| JSON 表示法 |
|---|
{ "totalTokenCount": integer } |