Caching

Метод: cachedContents.create

Создает ресурс CachedContent.

Конечная точка

опубликовать https://generativelanguage.googleapis.com/v1beta/cachedContents

Тело запроса

Тело запроса содержит экземпляр CachedContent .

Пример запроса

Базовый

Питон

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
print(cache)

model = genai.GenerativeModel.from_cached_content(cache)
response = model.generate_content("Please summarize this transcript")
print(response.text)

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
// import { GoogleGenerativeAI } from "@google/generative-ai";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});

console.log(cacheResult);

const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModelFromCachedContent(cacheResult);
const result = await model.generateContent(
  "Please summarize this transcript.",
);
console.log(result.response.text());

От имени

Питон

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
cache_name = cache.name  # Save the name for later

# Later
cache = genai.caching.CachedContent.get(cache_name)
apollo_model = genai.GenerativeModel.from_cached_content(cache)
response = apollo_model.generate_content("Find a lighthearted moment from this transcript")
print(response.text)

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
// import { GoogleGenerativeAI } from "@google/generative-ai";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
const cacheName = cacheResult.name; // Save the name for later.

// Later
const getCacheResult = await cacheManager.get(cacheName);
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModelFromCachedContent(getCacheResult);
model.generateContent("Please summarize this transcript.");

Из чата

Питон

model_name = "gemini-1.5-flash-001"
system_instruction = "You are an expert analyzing transcripts."

model = genai.GenerativeModel(model_name=model_name, system_instruction=system_instruction)
chat = model.start_chat()
document = genai.upload_file(path=media / "a11.txt")
response = chat.send_message(["Hi, could you summarize this transcript?", document])
print("\n\nmodel:  ", response.text)
response = chat.send_message(
    ["Okay, could you tell me more about the trans-lunar injection"]
)
print("\n\nmodel:  ", response.text)

# To cache the conversation so far, pass the chat history as the list of "contents".
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction=system_instruction,
    contents=chat.history,
)
model = genai.GenerativeModel.from_cached_content(cached_content=cache)

# Continue the chat where you left off.
chat = model.start_chat()
response = chat.send_message(
    "I didn't understand that last part, could you explain it in simpler language?"
)
print("\n\nmodel:  ", response.text)

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash-001" });
const chat = model.startChat();

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

let result = await chat.sendMessage([
  "Hi, could you summarize this transcript?",
  {
    fileData: {
      fileUri: uploadResult.file.uri,
      mimeType: uploadResult.file.mimeType,
    },
  },
]);
console.log(`\n\nmodel: ${result.response.text()}`);
result = await chat.sendMessage(
  "Okay, could you tell me more about the trans-lunar injection",
);
console.log(`\n\nmodel: ${result.response.text()}`);

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: await chat.getHistory(),
});

const newModel = genAI.getGenerativeModelFromCachedContent(cacheResult);

const newChat = newModel.startChat();
result = await newChat.sendMessage(
  "I didn't understand that last part, could you explain it in simpler language?",
);
console.log(`\n\nmodel: ${result.response.text()}`);

Тело ответа

В случае успеха тело ответа содержит вновь созданный экземпляр 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 (CachedContent)
    }
  ],
  "nextPageToken": string
}

Метод: кэшедКонтентс.get

Читает ресурс CachedContent.

Конечная точка

получить https://generativelanguage.googleapis.com/v1beta/{name=cachedContents/*}

Параметры пути

string name

Необходимый. Имя ресурса, относящееся к записи кэша контента. Формат: cachedContents/{id} Он принимает форму cachedContents/{cachedcontent} .

Тело запроса

Тело запроса должно быть пустым.

Пример запроса

Питон

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
print(genai.caching.CachedContent.get(name=cache.name))

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
const cacheGetResult = await cacheManager.get(cacheResult.name);
console.log(cacheGetResult);

Тело ответа

В случае успеха тело ответа содержит экземпляр 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 .

Пример запроса

Питон

import datetime

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)

# You can update the ttl
cache.update(ttl=datetime.timedelta(hours=2))
print(f"After update:\n {cache}")

# Or you can update the expire_time
cache.update(expire_time=datetime.datetime.now() + datetime.timedelta(minutes=15))

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
console.log("initial cache data:", cacheResult);
const cacheUpdateResult = await cacheManager.update(cacheResult.name, {
  cachedContent: {
    // 2 hours
    ttlSeconds: 60 * 60 * 2,
  },
});
console.log("updated cache data:", cacheUpdateResult);

Тело ответа

В случае успеха тело ответа содержит экземпляр CachedContent .

Метод: cachedContents.delete

Удаляет ресурс CachedContent.

Конечная точка

удалить https://generativelanguage.googleapis.com/v1beta/{name=cachedContents/*}

Параметры пути

string name

Необходимый. Имя ресурса, относящееся к записи кэша контента. Формат: cachedContents/{id} Он принимает форму cachedContents/{cachedcontent} .

Тело запроса

Тело запроса должно быть пустым.

Пример запроса

Питон

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
cache.delete()

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
await cacheManager.delete(cacheResult.name);

Тело ответа

В случае успеха тело ответа пустое.

Ресурс REST: кэшированный контент

Ресурс: CachedContent

Содержимое, которое было предварительно обработано и может использоваться в последующем запросе к GenerativeService.

Кэшированный контент можно использовать только с моделью, для которой он был создан.

JSON-представление
{
  "contents": [
    {
      object (Content)
    }
  ],
  "tools": [
    {
      object (Tool)
    }
  ],
  "createTime": string,
  "updateTime": string,
  "usageMetadata": {
    object (UsageMetadata)
  },

  // Union field expiration can be only one of the following:
  "expireTime": string,
  "ttl": string
  // End of list of possible types for union field expiration.
  "name": string,
  "displayName": string,
  "model": string,
  "systemInstruction": {
    object (Content)
  },
  "toolConfig": {
    object (ToolConfig)
  }
}
Поля
объект 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 )

Необязательный. Только ввод. Неизменный. Конфигурация инструмента. Эта конфигурация является общей для всех инструментов.

Содержание

Базовый структурированный тип данных, содержащий содержимое сообщения, состоящее из нескольких частей.

Content включает в себя поле role , обозначающее производителя Content и поле parts , содержащее данные, состоящие из нескольких частей, которые содержат содержимое очереди сообщения.

JSON-представление
{
  "parts": [
    {
      object (Part)
    }
  ],
  "role": string
}
Поля
объект parts[] object ( Part )

Заказанные Parts , составляющие одно сообщение. Части могут иметь разные типы MIME.

role string

Необязательный. Производитель контента. Должно быть либо «пользователь», либо «модель».

Полезно для многоходовых разговоров, в противном случае его можно оставить пустым или не установить.

Часть

Тип данных, содержащий медиафайлы, которые являются частью сообщения Content состоящего из нескольких частей.

Part состоит из данных, имеющих связанный тип данных. Part может содержать только один из типов, принятых в Part.data .

Part должна иметь фиксированный тип IANA MIME, определяющий тип и подтип носителя, если поле inlineData заполнено необработанными байтами.

JSON-представление
{

  // Union field data can be only one of the following:
  "text": string,
  "inlineData": {
    object (Blob)
  },
  "functionCall": {
    object (FunctionCall)
  },
  "functionResponse": {
    object (FunctionResponse)
  },
  "fileData": {
    object (FileData)
  },
  "executableCode": {
    object (ExecutableCode)
  },
  "codeExecutionResult": {
    object (CodeExecutionResult)
  }
  // End of list of possible types for union field data.
}
Поля

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-представление
{
  "mimeType": string,
  "data": string
}
Поля
string mimeType

Стандартный MIME-тип IANA исходных данных. Примеры: - image/png - image/jpeg Если указан неподдерживаемый тип MIME, будет возвращена ошибка. Полный список поддерживаемых типов см. в разделе Поддерживаемые форматы файлов .

строка data string ( bytes format)

Необработанные байты для медиаформатов.

Строка в кодировке Base64.

Вызов функции

Прогнозируемый вызов FunctionCall , возвращенный из модели, содержит строку, представляющую FunctionDeclaration.name с аргументами и их значениями.

JSON-представление
{
  "name": string,
  "args": {
    object
  }
}
Поля
string name

Необходимый. Имя функции, которую нужно вызвать. Должен быть az, AZ, 0–9 или содержать символы подчеркивания и тире, максимальная длина — 63.

объект args object ( Struct format)

Необязательный. Параметры и значения функции в формате объекта JSON.

ФункцияОтвет

Выходные данные FunctionCall , содержащие строку, представляющую FunctionDeclaration.name , и структурированный объект JSON, содержащий любые выходные данные функции, используются в качестве контекста для модели. Он должен содержать результат вызова FunctionCall , созданного на основе предсказания модели.

JSON-представление
{
  "name": string,
  "response": {
    object
  }
}
Поля
string name

Необходимый. Имя функции, которую нужно вызвать. Должен быть az, AZ, 0–9 или содержать символы подчеркивания и тире, максимальная длина — 63.

объект response object ( Struct format)

Необходимый. Ответ функции в формате объекта JSON.

ФайлДанные

Данные на основе URI.

JSON-представление
{
  "mimeType": string,
  "fileUri": string
}
Поля
string mimeType

Необязательный. Стандартный MIME-тип IANA исходных данных.

string fileUri

Необходимый. УРИ.

Исполняемыйкод

Код, сгенерированный моделью, предназначенный для выполнения, и результат, возвращаемый в модель.

Генерируется только при использовании инструмента CodeExecution , в котором код будет автоматически выполнен, а также будет сгенерирован соответствующий CodeExecutionResult .

JSON-представление
{
  "language": enum (Language),
  "code": string
}
Поля
language enum ( Language )

Необходимый. Язык программирования code .

code string

Необходимый. Код, который будет выполнен.

Язык

Поддерживаемые языки программирования для сгенерированного кода.

Перечисления
LANGUAGE_UNSPECIFIED Неуказанный язык. Это значение не следует использовать.
PYTHON Python >= 3.10, доступны numpy и simpy.

КодExecutionResult

Результат выполнения ExecutableCode .

Генерируется только при использовании CodeExecution и всегда следует за part , содержащей ExecutableCode .

JSON-представление
{
  "outcome": enum (Outcome),
  "output": string
}
Поля
перечисление outcome enum ( Outcome )

Необходимый. Результат выполнения кода.

output string

Необязательный. Содержит стандартный вывод в случае успешного выполнения кода, в противном случае — стандартный вывод или другое описание.

Исход

Перечисление возможных результатов выполнения кода.

Перечисления
OUTCOME_UNSPECIFIED Неопределенный статус. Это значение не следует использовать.
OUTCOME_OK Выполнение кода завершено успешно.
OUTCOME_FAILED Выполнение кода завершилось, но с ошибкой. stderr должен содержать причину.
OUTCOME_DEADLINE_EXCEEDED Выполнение кода продолжалось слишком долго и было отменено. Частичный вывод может присутствовать или отсутствовать.

Инструмент

Сведения об инструменте, которые модель может использовать для генерации ответа.

Tool — это часть кода, которая позволяет системе взаимодействовать с внешними системами для выполнения действия или набора действий за пределами знаний и области действия модели.

JSON-представление
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "codeExecution": {
    object (CodeExecution)
  }
}
Поля
объект functionDeclarations[] object ( FunctionDeclaration )

Необязательный. Список FunctionDeclarations , доступных модели, которые можно использовать для вызова функций.

Модель или система не выполняет функцию. Вместо этого определенная функция может быть возвращена как [FunctionCall][content.part.function_call] с аргументами на стороне клиента для выполнения. Модель может решить вызвать подмножество этих функций, заполнив [FunctionCall][content.part.function_call] в ответе. Следующий ход диалога может содержать [FunctionResponse][content.part.function_response] с контекстом генерации «функции» [content.role] для следующего хода модели.

объект codeExecution object ( CodeExecution )

Необязательный. Позволяет модели выполнять код в рамках генерации.

Объявление функции

Структурированное представление объявления функции, определенное спецификацией OpenAPI 3.03 . В это объявление включены имя функции и параметры. Это объявление функции является представлением блока кода, который может использоваться моделью в качестве Tool и выполняться клиентом.

JSON-представление
{
  "name": string,
  "description": string,
  "parameters": {
    object (Schema)
  }
}
Поля
string name

Необходимый. Имя функции. Должен быть az, AZ, 0–9 или содержать символы подчеркивания и тире, максимальная длина — 63.

string description

Необходимый. Краткое описание функции.

объект parameters object ( Schema )

Необязательный. Описывает параметры этой функции. Отражает строку объекта параметра Open API 3.03. Ключ: имя параметра. Имена параметров чувствительны к регистру. Значение схемы: схема, определяющая тип, используемый для параметра.

Схема

Объект Schema позволяет определять типы входных и выходных данных. Эти типы могут быть объектами, а также примитивами и массивами. Представляет выбранное подмножество объекта схемы OpenAPI 3.0 .

JSON-представление
{
  "type": enum (Type),
  "format": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "items": {
    object (Schema)
  }
}
Поля
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:["ВОСТОК", СЕВЕР", "ЮГ", "ЗАПАД"]}

карта 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 в запросе.

JSON-представление
{
  "functionCallingConfig": {
    object (FunctionCallingConfig)
  }
}
Поля
объект functionCallingConfig object ( FunctionCallingConfig )

Необязательный. Конфигурация вызова функции.

ФункцияCallingConfig

Конфигурация для указания поведения вызова функций.

JSON-представление
{
  "mode": enum (Mode),
  "allowedFunctionNames": [
    string
  ]
}
Поля
перечисление mode enum ( Mode )

Необязательный. Указывает режим, в котором должен выполняться вызов функции. Если не указано, значение по умолчанию будет установлено на АВТО.

allowedFunctionNames[] string

Необязательный. Набор имен функций, который, если он указан, ограничивает функции, которые будет вызывать модель.

Это значение следует устанавливать только в том случае, если выбран режим ЛЮБОЙ. Имена функций должны соответствовать [FunctionDeclaration.name]. Если для режима установлено значение ЛЮБОЙ, модель будет прогнозировать вызов функции на основе предоставленного набора имен функций.

Режим

Определяет поведение выполнения для вызова функции путем определения режима выполнения.

Перечисления
MODE_UNSPECIFIED Неуказанный режим вызова функции. Это значение не следует использовать.
AUTO Поведение модели по умолчанию: модель решает предсказать либо вызов функции, либо ответ на естественном языке.
ANY Модель ограничена всегда прогнозированием только вызова функции. Если установлены «allowedFunctionNames», прогнозируемый вызов функции будет ограничен любым из «allowedFunctionNames», в противном случае прогнозируемый вызов функции будет любым из предоставленных «объявлений функций».
NONE Модель не будет предсказывать какой-либо вызов функции. Поведение модели такое же, как и при отсутствии каких-либо объявлений функций.

Использованиеметаданные

Метаданные об использовании кэшированного контента.

JSON-представление
{
  "totalTokenCount": integer
}
Поля
totalTokenCount integer

Общее количество токенов, которые потребляет кэшированный контент.