Кэширование контекста позволяет сохранять и повторно использовать предварительно вычисленные входные токены, которые вы хотите использовать повторно, например, при задании разных вопросов об одном и том же медиафайле. Это может привести к экономии средств и скорости, в зависимости от использования. Подробное описание см. в руководстве по кэшированию контекста .
Метод: cachedContents.create
Создает ресурс CachedContent.
Конечная точка
опубликоватьhttps://generativelanguage.googleapis.com/v1beta/cachedContents
Тело запроса
Тело запроса содержит экземпляр CachedContent
.
contents[]
object ( Content
)
Необязательный. Только ввод. Неизменяемый. Содержимое для кэширования.
tools[]
object ( Tool
)
Необязательный. Только ввод. Неизменяемый. Список Tools
, которые модель может использовать для генерации следующего ответа.
expiration
поля объединения . Указывает, когда истечет срок действия этого ресурса. expiration
может быть только одним из следующих:expireTime
string ( Timestamp
format)
Временная метка в формате UTC, когда срок действия этого ресурса считается истекшим. Это всегда предоставляется на выходе, независимо от того, что было отправлено на вход.
Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z"
и "2014-10-02T15:01:23.045123456Z"
.
ttl
string ( Duration
format)
Только ввод. Новый срок жизни для этого ресурса, только входные данные.
Длительность в секундах, содержащая до девяти дробных цифр и оканчивающаяся на « s
». Пример: "3.5s"
.
string
name
Необязательный. Идентификатор. Имя ресурса, относящееся к кэшированному содержимому. Формат: cachedContents/{id}
string
displayName
Необязательный. Неизменяемый. Созданное пользователем значимое отображаемое имя кэшированного содержимого. Максимум 128 символов Юникода.
model
string
Необходимый. Неизменяемый. Имя Model
, которая будет использоваться для кэшированного контента. Формат: models/{model}
systemInstruction
object ( Content
)
Необязательный. Только ввод. Неизменяемый. Разработчик установил системную инструкцию. Пока только текст.
toolConfig
object ( ToolConfig
)
Необязательный. Только ввод. Неизменяемый. Конфигурация инструмента. Эта конфигурация является общей для всех инструментов.
Пример запроса
Базовый
Питон
Node.js
Идти
Оболочка
От имени
Питон
Node.js
Идти
Из чата
Питон
Node.js
Идти
Тело ответа
В случае успеха тело ответа содержит вновь созданный экземпляр CachedContent
.
Метод: cachedContents.list
Перечисляет кэшированное содержимое.
Конечная точка
получитьhttps://generativelanguage.googleapis.com/v1beta/cachedContents
Параметры запроса
pageSize
integer
Необязательный. Максимальное количество возвращаемого кэшированного содержимого. Служба может возвращать меньшее значение, чем это значение. Если не указано, будет возвращено некоторое количество элементов по умолчанию (меньше максимального). Максимальное значение — 1000; значения выше 1000 будут приведены к 1000.
string
pageToken
Необязательный. Токен страницы, полученный в результате предыдущего вызова cachedContents.list
. Предоставьте это, чтобы получить следующую страницу.
При разбиении на страницы все остальные параметры, предоставленные в cachedContents.list
должны соответствовать вызову, который предоставил токен страницы.
Тело запроса
Тело запроса должно быть пустым.
Тело ответа
Ответ со списком CachedContents.
В случае успеха тело ответа содержит данные следующей структуры:
cachedContents[]
object ( CachedContent
)
Список кэшированного содержимого.
string
nextPageToken
Токен, который можно отправить как pageToken
для получения следующей страницы. Если это поле опущено, последующие страницы отсутствуют.
JSON-представление |
---|
{
"cachedContents": [
{
object ( |
Метод: кэшедКонтентс.get
Читает ресурс CachedContent.
Конечная точка
получитьhttps://generativelanguage.googleapis.com/v1beta/{name=cachedContents/*}
Параметры пути
string
name
Необходимый. Имя ресурса, относящееся к записи кэша контента. Формат: cachedContents/{id}
Он принимает форму cachedContents/{cachedcontent}
.
Тело запроса
Тело запроса должно быть пустым.
Пример запроса
Питон
Node.js
Идти
Оболочка
Тело ответа
В случае успеха тело ответа содержит экземпляр CachedContent
.
Метод: cachedContents.patch
Обновляет ресурс CachedContent (обновляется только срок действия).
Конечная точка
патчhttps://generativelanguage.googleapis.com/v1beta/{cachedContent.name=cachedContents/*}
PATCH https://generativelanguage.googleapis.com/v1beta/{cachedContent.name=cachedContents/*}
Параметры пути
string
cachedContent.name
Необязательный. Идентификатор. Имя ресурса, относящееся к кэшированному содержимому. Формат: cachedContents/{id}
Он принимает форму cachedContents/{cachedcontent}
.
Параметры запроса
updateMask
string ( FieldMask
format)
Список полей для обновления.
Это разделенный запятыми список полных имен полей. Пример: "user.displayName,photo"
.
Тело запроса
Тело запроса содержит экземпляр CachedContent
.
expiration
поля объединения . Указывает, когда истечет срок действия этого ресурса. expiration
может быть только одним из следующих:expireTime
string ( Timestamp
format)
Временная метка в формате UTC, когда срок действия этого ресурса считается истекшим. Это всегда предоставляется на выходе, независимо от того, что было отправлено на вход.
Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z"
и "2014-10-02T15:01:23.045123456Z"
.
ttl
string ( Duration
format)
Только ввод. Новый срок жизни для этого ресурса, только входные данные.
Длительность в секундах, содержащая до девяти дробных цифр и оканчивающаяся на « s
». Пример: "3.5s"
.
string
name
Необязательный. Идентификатор. Имя ресурса, относящееся к кэшированному содержимому. Формат: cachedContents/{id}
Пример запроса
Питон
Node.js
Идти
Оболочка
Тело ответа
В случае успеха тело ответа содержит экземпляр CachedContent
.
Метод: cachedContents.delete
Удаляет ресурс CachedContent.
Конечная точка
удалитьhttps://generativelanguage.googleapis.com/v1beta/{name=cachedContents/*}
Параметры пути
string
name
Необходимый. Имя ресурса, относящееся к записи кэша контента. Формат: cachedContents/{id}
Он принимает форму cachedContents/{cachedcontent}
.
Тело запроса
Тело запроса должно быть пустым.
Пример запроса
Питон
Node.js
Идти
Оболочка
Тело ответа
В случае успеха тело ответа пустое.
Ресурс REST: кэшированный контент
- Ресурс: CachedContent
- Содержание
- Часть
- Блоб
- Вызов функции
- ФункцияОтвет
- ФайлДанные
- Исполняемыйкод
- Язык
- КодExecutionResult
- Исход
- Инструмент
- Объявление функции
- Схема
- Тип
- Выполнение кода
- ИнструментКонфигурация
- ФункцияCallingConfig
- Режим
- Использованиеметаданные
- Методы
Ресурс: CachedContent
Содержимое, которое было предварительно обработано и может использоваться в последующем запросе к GenerativeService.
Кэшированный контент можно использовать только с моделью, для которой он был создан.
contents[]
object ( Content
)
Необязательный. Только ввод. Неизменяемый. Содержимое для кэширования.
tools[]
object ( Tool
)
Необязательный. Только ввод. Неизменяемый. Список Tools
, которые модель может использовать для генерации следующего ответа.
createTime
string ( Timestamp
format)
Только вывод. Время создания записи кэша.
Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z"
и "2014-10-02T15:01:23.045123456Z"
.
updateTime
string ( Timestamp
format)
Только вывод. Когда запись кэша была последний раз обновлена по времени UTC.
Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z"
и "2014-10-02T15:01:23.045123456Z"
.
usageMetadata
object ( UsageMetadata
)
Только вывод. Метаданные об использовании кэшированного контента.
expiration
поля объединения . Указывает, когда истечет срок действия этого ресурса. expiration
может быть только одним из следующих:expireTime
string ( Timestamp
format)
Временная метка в формате UTC, когда срок действия этого ресурса считается истекшим. Это всегда предоставляется на выходе, независимо от того, что было отправлено на вход.
Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z"
и "2014-10-02T15:01:23.045123456Z"
.
ttl
string ( Duration
format)
Только ввод. Новый срок жизни для этого ресурса, только входные данные.
Длительность в секундах, содержащая до девяти дробных цифр и оканчивающаяся на « s
». Пример: "3.5s"
.
string
name
Необязательный. Идентификатор. Имя ресурса, относящееся к кэшированному содержимому. Формат: cachedContents/{id}
string
displayName
Необязательный. Неизменяемый. Созданное пользователем значимое отображаемое имя кэшированного содержимого. Максимум 128 символов Юникода.
model
string
Необходимый. Неизменяемый. Имя Model
, используемой для кэшированного контента. Формат: models/{model}
systemInstruction
object ( Content
)
Необязательный. Только ввод. Неизменяемый. Разработчик установил системную инструкцию. Пока только текст.
toolConfig
object ( ToolConfig
)
Необязательный. Только ввод. Неизменяемый. Конфигурация инструмента. Эта конфигурация является общей для всех инструментов.
JSON-представление |
---|
{ "contents": [ { object ( |
Содержание
Базовый структурированный тип данных, содержащий содержимое сообщения, состоящее из нескольких частей.
Content
включает в себя поле role
, обозначающее производителя Content
и поле parts
, содержащее данные, состоящие из нескольких частей, которые содержат содержимое очереди сообщения.
parts[]
object ( Part
)
Заказанные Parts
, составляющие одно сообщение. Части могут иметь разные типы MIME.
role
string
Необязательный. Производитель контента. Должно быть либо «пользователь», либо «модель».
Полезно для многоходовых разговоров, в противном случае его можно оставить пустым или не установить.
JSON-представление |
---|
{
"parts": [
{
object ( |
Часть
Тип данных, содержащий медиафайлы, которые являются частью сообщения Content
состоящего из нескольких частей.
Part
состоит из данных, имеющих связанный тип данных. Part
может содержать только один из типов, принятых в Part.data
.
Part
должна иметь фиксированный тип IANA MIME, определяющий тип и подтип носителя, если поле inlineData
заполнено необработанными байтами.
data
поля объединения.
data
могут быть только одним из следующих:
text
string
Встроенный текст.
inlineData
object ( Blob
)
Встроенные медиабайты.
functionCall
object ( FunctionCall
)
Прогнозируемый вызов FunctionCall
, возвращенный из модели, содержит строку, представляющую FunctionDeclaration.name
с аргументами и их значениями.
functionResponse
object ( FunctionResponse
)
Результат вызова FunctionCall
, содержащий строку, представляющую FunctionDeclaration.name
, и структурированный объект JSON, содержащий любые выходные данные функции, используется в качестве контекста для модели.
fileData
object ( FileData
)
Данные на основе URI.
executableCode
object ( ExecutableCode
)
Код, сгенерированный моделью, предназначенный для выполнения.
codeExecutionResult
object ( CodeExecutionResult
)
Результат выполнения ExecutableCode
.
JSON-представление |
---|
{ // Union field |
Блоб
Необработанные медиабайты.
Текст не следует отправлять в виде необработанных байтов, используйте поле «текст».
string
mimeType
Стандартный MIME-тип IANA исходных данных. Примеры: - image/png - image/jpeg Если указан неподдерживаемый тип MIME, будет возвращена ошибка. Полный список поддерживаемых типов см. в разделе Поддерживаемые форматы файлов .
data
string ( bytes format)
Необработанные байты для медиаформатов.
Строка в кодировке Base64.
JSON-представление |
---|
{ "mimeType": string, "data": string } |
Вызов функции
Прогнозируемый вызов FunctionCall
, возвращенный из модели, содержит строку, представляющую FunctionDeclaration.name
с аргументами и их значениями.
string
name
Необходимый. Имя функции, которую нужно вызвать. Должен быть az, AZ, 0–9 или содержать символы подчеркивания и тире, максимальная длина — 63.
args
object ( Struct
format)
Необязательный. Параметры и значения функции в формате объекта JSON.
JSON-представление |
---|
{ "name": string, "args": { object } } |
ФункцияОтвет
Выходные данные FunctionCall
, содержащие строку, представляющую FunctionDeclaration.name
, и структурированный объект JSON, содержащий любые выходные данные функции, используются в качестве контекста для модели. Он должен содержать результат вызова FunctionCall
, созданного на основе предсказания модели.
string
name
Необходимый. Имя функции, которую нужно вызвать. Должен быть az, AZ, 0–9 или содержать символы подчеркивания и тире, максимальная длина — 63.
response
object ( Struct
format)
Необходимый. Ответ функции в формате объекта JSON.
JSON-представление |
---|
{ "name": string, "response": { object } } |
ФайлДанные
Данные на основе URI.
string
mimeType
Необязательный. Стандартный MIME-тип IANA исходных данных.
string
fileUri
Необходимый. УРИ.
JSON-представление |
---|
{ "mimeType": string, "fileUri": string } |
Исполняемыйкод
Код, сгенерированный моделью, предназначенный для выполнения, и результат, возвращаемый в модель.
Генерируется только при использовании инструмента CodeExecution
, в котором код будет автоматически выполнен, а также будет сгенерирован соответствующий CodeExecutionResult
.
language
enum ( Language
)
Необходимый. Язык программирования code
.
code
string
Необходимый. Код, который будет выполнен.
JSON-представление |
---|
{
"language": enum ( |
Язык
Поддерживаемые языки программирования для сгенерированного кода.
Перечисления | |
---|---|
LANGUAGE_UNSPECIFIED | Неуказанный язык. Это значение не следует использовать. |
PYTHON | Python >= 3.10, доступны numpy и simpy. |
КодExecutionResult
Результат выполнения ExecutableCode
.
Генерируется только при использовании CodeExecution
и всегда следует за part
, содержащей ExecutableCode
.
outcome
enum ( Outcome
)
Необходимый. Результат выполнения кода.
output
string
Необязательный. Содержит стандартный вывод в случае успешного выполнения кода, в противном случае — стандартный вывод или другое описание.
JSON-представление |
---|
{
"outcome": enum ( |
Исход
Перечисление возможных результатов выполнения кода.
Перечисления | |
---|---|
OUTCOME_UNSPECIFIED | Неопределенный статус. Это значение не следует использовать. |
OUTCOME_OK | Выполнение кода завершено успешно. |
OUTCOME_FAILED | Выполнение кода завершилось, но с ошибкой. stderr должен содержать причину. |
OUTCOME_DEADLINE_EXCEEDED | Выполнение кода продолжалось слишком долго и было отменено. Частичный вывод может присутствовать или отсутствовать. |
Инструмент
Сведения об инструменте, которые модель может использовать для генерации ответа.
Tool
— это часть кода, которая позволяет системе взаимодействовать с внешними системами для выполнения действия или набора действий за пределами знаний и области действия модели.
functionDeclarations[]
object ( FunctionDeclaration
)
Необязательный. Список FunctionDeclarations
, доступных модели, которые можно использовать для вызова функций.
Модель или система не выполняет функцию. Вместо этого определенная функция может быть возвращена как [FunctionCall][content.part.function_call] с аргументами на стороне клиента для выполнения. Модель может решить вызвать подмножество этих функций, заполнив [FunctionCall][content.part.function_call] в ответе. Следующий ход диалога может содержать [FunctionResponse][content.part.function_response] с контекстом генерации «функции» [content.role] для следующего хода модели.
codeExecution
object ( CodeExecution
)
Необязательный. Позволяет модели выполнять код в рамках генерации.
JSON-представление |
---|
{ "functionDeclarations": [ { object ( |
Объявление функции
Структурированное представление объявления функции, определенное спецификацией OpenAPI 3.03 . В это объявление включены имя функции и параметры. Это объявление функции является представлением блока кода, который может использоваться моделью в качестве Tool
и выполняться клиентом.
string
name
Необходимый. Имя функции. Должен быть az, AZ, 0–9 или содержать символы подчеркивания и тире, максимальная длина — 63.
string
description
Необходимый. Краткое описание функции.
parameters
object ( Schema
)
Необязательный. Описывает параметры этой функции. Отражает строку объекта параметра Open API 3.03. Ключ: имя параметра. Имена параметров чувствительны к регистру. Значение схемы: схема, определяющая тип, используемый для параметра.
JSON-представление |
---|
{
"name": string,
"description": string,
"parameters": {
object ( |
Схема
Объект Schema
позволяет определять типы входных и выходных данных. Эти типы могут быть объектами, а также примитивами и массивами. Представляет выбранное подмножество объекта схемы OpenAPI 3.0 .
type
enum ( Type
)
Необходимый. Тип данных.
string
format
Необязательный. Формат данных. Это используется только для примитивных типов данных. Поддерживаемые форматы: для типа NUMBER: float, double для типа INTEGER: int32, int64 для типа STRING: enum
string
description
Необязательный. Краткое описание параметра. Это может содержать примеры использования. Описание параметра может быть отформатировано как Markdown.
boolean
допускающее значение nullable
Необязательный. Указывает, может ли значение быть нулевым.
string
enum[]
Необязательный. Возможные значения элемента Type.STRING в формате перечисления. Например, мы можем определить направление перечисления как: {type:STRING, format:enum, enum:["ВОСТОК", СЕВЕР", "ЮГ", "ЗАПАД"]}
maxItems
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.
Тип
Тип содержит список типов данных OpenAPI, как определено https://spec.openapis.org/oas/v3.0.3#data-types.
Перечисления | |
---|---|
TYPE_UNSPECIFIED | Не указано, не следует использовать. |
STRING | Тип строки. |
NUMBER | Тип номера. |
INTEGER | Целочисленный тип. |
BOOLEAN | Булев тип. |
ARRAY | Тип массива. |
OBJECT | Тип объекта. |
Выполнение кода
Этот тип не имеет полей.
Инструмент, который выполняет код, сгенерированный моделью, и автоматически возвращает результат в модель.
См. также ExecutableCode
и CodeExecutionResult
, которые генерируются только при использовании этого инструмента.
ИнструментКонфигурация
Конфигурация инструмента, содержащая параметры для указания использования Tool
в запросе.
functionCallingConfig
object ( FunctionCallingConfig
)
Необязательный. Конфигурация вызова функции.
JSON-представление |
---|
{
"functionCallingConfig": {
object ( |
ФункцияВызовConfig
Конфигурация для указания поведения вызова функций.
mode
enum ( Mode
)
Необязательный. Указывает режим, в котором должен выполняться вызов функции. Если не указано, значение по умолчанию будет установлено на АВТО.
allowedFunctionNames[]
string
Необязательный. Набор имен функций, который, если он указан, ограничивает функции, которые будет вызывать модель.
Это значение следует устанавливать только в том случае, если выбран режим ЛЮБОЙ. Имена функций должны соответствовать [FunctionDeclaration.name]. Если для режима установлено значение ЛЮБОЙ, модель будет прогнозировать вызов функции на основе предоставленного набора имен функций.
JSON-представление |
---|
{
"mode": enum ( |
Режим
Определяет поведение выполнения для вызова функции путем определения режима выполнения.
Перечисления | |
---|---|
MODE_UNSPECIFIED | Неуказанный режим вызова функции. Это значение не следует использовать. |
AUTO | Поведение модели по умолчанию: модель решает предсказать либо вызов функции, либо ответ на естественном языке. |
ANY | Модель ограничена всегда прогнозированием только вызова функции. Если установлены «allowedFunctionNames», прогнозируемый вызов функции будет ограничен любым из «allowedFunctionNames», в противном случае прогнозируемый вызов функции будет любым из предоставленных «объявлений функций». |
NONE | Модель не будет предсказывать какой-либо вызов функции. Поведение модели такое же, как и при отсутствии каких-либо объявлений функций. |
Использованиеметаданные
Метаданные об использовании кэшированного контента.
totalTokenCount
integer
Общее количество токенов, которые потребляет кэшированный контент.
JSON-представление |
---|
{ "totalTokenCount": integer } |