Метод: models.generateContent
Генерирует ответ модели с учетом входных данных GenerateContentRequest
.
Возможности ввода различаются в зависимости от модели, включая настроенные модели. Подробности см. в руководстве по модели и руководстве по настройке .
Конечная точка
опубликуйтеhttps://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateContent
Параметры пути
model
string
Необходимый. Имя Model
, используемой для создания завершения.
Формат: name=models/{model}
. Он принимает форму models/{model}
.
Тело запроса
Тело запроса содержит данные следующей структуры:
contents[]
object ( Content
)
Необходимый. Содержание текущего разговора с моделью.
Для однооборотных запросов это один экземпляр. Для многоходовых запросов это повторяющееся поле, содержащее историю разговоров + последний запрос.
tools[]
object ( Tool
)
Необязательный. Список Tools
которые модель может использовать для генерации следующего ответа.
Tool
— это часть кода, которая позволяет системе взаимодействовать с внешними системами для выполнения действия или набора действий за пределами знаний и области действия модели. В настоящее время единственным поддерживаемым инструментом является Function
.
toolConfig
object ( ToolConfig
)
Необязательный. Конфигурация инструмента для любого Tool
, указанного в запросе.
safetySettings[]
object ( SafetySetting
)
Необязательный. Список уникальных экземпляров SafetySetting
для блокировки небезопасного контента.
Это будет применено к GenerateContentRequest.contents
и GenerateContentResponse.candidates
. Для каждого типа SafetyCategory
не должно быть более одного параметра. API будет блокировать любое содержимое и ответы, которые не соответствуют пороговым значениям, установленным этими настройками. Этот список переопределяет настройки по умолчанию для каждой SafetyCategory
, указанной в параметре SafetySettings. Если в списке нет SafetySetting
для данной SafetyCategory
, API будет использовать параметр безопасности по умолчанию для этой категории. Поддерживаются категории вреда HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT.
systemInstruction
object ( Content
)
Необязательный. Разработчик установил системную инструкцию. Пока только текст.
generationConfig
object ( GenerationConfig
)
Необязательный. Параметры конфигурации для создания модели и выходных данных.
string
cachedContent
Необязательный. Имя кэшированного контента, используемого в качестве контекста для прогнозирования. Примечание. Используется только при явном кэшировании, где пользователи могут контролировать кэширование (например, какой контент кэшировать) и гарантированно экономить средства. Формат: cachedContents/{cachedContent}
Пример запроса
Текст
Питон
Node.js
Котлин
Быстрый
Дарт
Джава
Изображение
Питон
Node.js
Котлин
Быстрый
Дарт
Джава
Аудио
Питон
Node.js
видео
Питон
Node.js
Чат
Питон
Node.js
Оболочка
Котлин
Быстрый
Дарт
Джава
Кэш
Питон
Node.js
Тюнингованная модель
Питон
Режим JSON
Питон
Node.js
Котлин
Быстрый
Дарт
Джава
Выполнение кода
Питон
Котлин
Джава
Вызов функции
Питон
Node.js
Котлин
Быстрый
Дарт
Джава
Конфигурация генерации
Питон
Node.js
Оболочка
Котлин
Быстрый
Дарт
Джава
Настройки безопасности
Питон
Node.js
Оболочка
Котлин
Быстрый
Дарт
Джава
Системная инструкция
Питон
Node.js
Котлин
Быстрый
Дарт
Джава
Тело ответа
В случае успеха тело ответа содержит экземпляр GenerateContentResponse
.
Метод: models.streamGenerateContent
Генерирует потоковый ответ из модели с учетом входных данных GenerateContentRequest
.
Конечная точка
опубликуйтеhttps://generativelanguage.googleapis.com/v1beta/{model=models/*}:streamGenerateContent
Параметры пути
model
string
Необходимый. Имя Model
, используемой для создания завершения.
Формат: name=models/{model}
. Он принимает форму models/{model}
.
Тело запроса
Тело запроса содержит данные следующей структуры:
contents[]
object ( Content
)
Необходимый. Содержание текущего разговора с моделью.
Для однооборотных запросов это один экземпляр. Для многоходовых запросов это повторяющееся поле, содержащее историю разговоров + последний запрос.
tools[]
object ( Tool
)
Необязательный. Список Tools
которые модель может использовать для генерации следующего ответа.
Tool
— это часть кода, которая позволяет системе взаимодействовать с внешними системами для выполнения действия или набора действий за пределами знаний и области действия модели. В настоящее время единственным поддерживаемым инструментом является Function
.
toolConfig
object ( ToolConfig
)
Необязательный. Конфигурация инструмента для любого Tool
, указанного в запросе.
safetySettings[]
object ( SafetySetting
)
Необязательный. Список уникальных экземпляров SafetySetting
для блокировки небезопасного контента.
Это будет применено к GenerateContentRequest.contents
и GenerateContentResponse.candidates
. Для каждого типа SafetyCategory
не должно быть более одного параметра. API будет блокировать любое содержимое и ответы, которые не соответствуют пороговым значениям, установленным этими настройками. Этот список переопределяет настройки по умолчанию для каждой SafetyCategory
, указанной в параметре SafetySettings. Если в списке нет SafetySetting
для данной SafetyCategory
, API будет использовать параметр безопасности по умолчанию для этой категории. Поддерживаются категории вреда HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT.
systemInstruction
object ( Content
)
Необязательный. Разработчик установил системную инструкцию. Пока только текст.
generationConfig
object ( GenerationConfig
)
Необязательный. Параметры конфигурации для создания модели и выходных данных.
string
cachedContent
Необязательный. Имя кэшированного контента, используемого в качестве контекста для прогнозирования. Примечание. Используется только при явном кэшировании, где пользователи могут контролировать кэширование (например, какой контент кэшировать) и гарантированно экономить средства. Формат: cachedContents/{cachedContent}
Пример запроса
Текст
Питон
Node.js
Котлин
Быстрый
Дарт
Джава
Изображение
Питон
Node.js
Котлин
Быстрый
Дарт
Джава
видео
Питон
Node.js
Котлин
Джава
Чат
Питон
Node.js
Оболочка
Котлин
Быстрый
Дарт
Джава
Тело ответа
В случае успеха тело ответа содержит поток экземпляров GenerateContentResponse
.
ГенерироватьКонтентОтвет
Ответ модели, поддерживающей несколько кандидатов.
Примечание о рейтингах безопасности и фильтрации контента. Они сообщаются как для приглашения в GenerateContentResponse.prompt_feedback
, так и для каждого кандидата в finishReason
и safetyRatings
. Контракт API заключается в том, что: - либо возвращаются все запрошенные кандидаты, либо не возвращаются никакие кандидаты - кандидаты не возвращаются, только если с подсказкой что-то не так (см. promptFeedback
) - обратная связь о каждом кандидате сообщается в finishReason
и safetyRatings
.
JSON-представление |
---|
{ "candidates": [ { object ( |
candidates[]
object ( Candidate
)
Ответы кандидата от модели.
promptFeedback
object ( PromptFeedback
)
Возвращает отзыв о приглашении, связанный с фильтрами содержимого.
usageMetadata
object ( UsageMetadata
)
Только вывод. Метаданные об использовании токена запросов генерации.
ПодсказкаОбратная связь
Набор метаданных обратной связи, указанный в приглашении GenerateContentRequest.content
.
JSON-представление |
---|
{ "blockReason": enum ( |
blockReason
enum ( BlockReason
)
Необязательный. Если установлено, приглашение блокируется и кандидаты не возвращаются. Перефразируйте свою подсказку.
safetyRatings[]
object ( SafetyRating
)
Оценки за безопасность подсказки. В каждой категории может быть не более одного рейтинга.
БлокПричина
Указывает, по какой причине приглашение было заблокировано.
Перечисления | |
---|---|
BLOCK_REASON_UNSPECIFIED | Значение по умолчанию. Это значение не используется. |
SAFETY | Подсказка заблокирована по соображениям безопасности. Вы можете проверить safetyRatings чтобы понять, какая категория безопасности заблокировала его. |
OTHER | Подсказка заблокирована по неизвестным причинам. |
Использованиеметаданные
Метаданные об использовании токена запроса генерации.
JSON-представление |
---|
{ "promptTokenCount": integer, "cachedContentTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } |
promptTokenCount
integer
Количество токенов в приглашении. Если установлен кэшированный контент, это по-прежнему общий эффективный размер приглашения. Т.е. сюда входит количество токенов в кэшированном контенте.
integer
cachedContentTokenCount
Количество токенов в кэшированной части приглашения, т. е. в кэшированном контенте.
integer
candidatesTokenCount
Общее количество токенов среди сгенерированных кандидатов.
totalTokenCount
integer
Общее количество токенов для запроса на создание (подсказка + кандидаты).
Кандидат
- JSON-представление
- FinishReason
- ЗаземлениеАтрибуция
- Идентификатор источника атрибуции
- ЗаземлениеИдентификатор прохода
- СемантическийРетриверЧанк
Кандидат на ответ, созданный на основе модели.
JSON-представление |
---|
{ "content": { object ( |
content
object ( Content
)
Только вывод. Сгенерированный контент возвращается из модели.
finishReason
enum ( FinishReason
)
Необязательный. Только вывод. Причина, по которой модель перестала генерировать токены.
Если оно пусто, модель не прекратила генерировать токены.
safetyRatings[]
object ( SafetyRating
)
Список оценок безопасности кандидата-ответчика.
В каждой категории может быть не более одного рейтинга.
citationMetadata
object ( CitationMetadata
)
Только вывод. Информация о цитировании кандидата, созданного моделью.
Это поле может быть заполнено информацией о декламации любого текста, включенного в content
. Это отрывки, которые «зачитаны» из материалов, защищенных авторским правом, в основных учебных данных LLM.
integer
tokenCount
Только вывод. Количество токенов для этого кандидата.
groundingAttributions[]
object ( GroundingAttribution
)
Только вывод. Информация об авторстве источников, которые способствовали обоснованному ответу.
Это поле заполняется для вызовов GenerateAnswer
.
integer
index
Только вывод. Индекс кандидата в списке кандидатов.
FinishReason
Определяет причину, по которой модель перестала генерировать токены.
Перечисления | |
---|---|
FINISH_REASON_UNSPECIFIED | Значение по умолчанию. Это значение не используется. |
STOP | Естественная точка остановки модели или предусмотренная последовательность остановок. |
MAX_TOKENS | Достигнуто максимальное количество токенов, указанное в запросе. |
SAFETY | Кандидатский контент был отмечен по соображениям безопасности. |
RECITATION | Контент-кандидат был помечен по причине цитирования. |
LANGUAGE | Контент-кандидат был помечен как использующий неподдерживаемый язык. |
OTHER | Неизвестно почему. |
ЗаземлениеАтрибуция
Указание источника, который способствовал ответу.
JSON-представление |
---|
{ "sourceId": { object ( |
sourceId
object ( AttributionSourceId
)
Только вывод. Идентификатор источника, способствующего этой атрибуции.
content
object ( Content
)
Обоснование исходного контента, составляющего эту атрибуцию.
Идентификатор источника атрибуции
Идентификатор источника, способствующего этой атрибуции.
JSON-представление |
---|
{ // Union field |
source
поля Союза.
source
может быть только одним из следующих:
groundingPassage
object ( GroundingPassageId
)
Идентификатор встроенного отрывка.
semanticRetrieverChunk
object ( SemanticRetrieverChunk
)
Идентификатор Chunk
, полученного с помощью Semantic Retriever.
ЗаземлениеИдентификатор прохода
Идентификатор части внутри GroundingPassage
.
JSON-представление |
---|
{ "passageId": string, "partIndex": integer } |
string
passageId
Только вывод. Идентификатор отрывка, соответствующий GroundingPassage.id
GenerateAnswerRequest
.
partIndex
integer
Только вывод. Индекс части в GroundingPassage.content
GenerateAnswerRequest
.
СемантическийРетриверЧанк
Идентификатор Chunk
, полученного с помощью Semantic Retriever, указанного в GenerateAnswerRequest
с использованием SemanticRetrieverConfig
.
JSON-представление |
---|
{ "source": string, "chunk": string } |
source
string
Только вывод. Имя источника, соответствующее SemanticRetrieverConfig.source
запроса. Пример: corpora/123
или corpora/123/documents/abc
string
chunk
Только вывод. Имя Chunk
, содержащего приписываемый текст. Пример: corpora/123/documents/abc/chunks/xyz
Метаданные цитирования
Коллекция источников для части контента.
JSON-представление |
---|
{
"citationSources": [
{
object ( |
citationSources[]
object ( CitationSource
)
Ссылки на источники для конкретного ответа.
ЦитированиеИсточник
Ссылка на источник части конкретного ответа.
JSON-представление |
---|
{ "startIndex": integer, "endIndex": integer, "uri": string, "license": string } |
startIndex
integer
Необязательный. Начало сегмента ответа, приписываемого этому источнику.
Индекс указывает начало сегмента, измеряется в байтах.
integer
endIndex
Необязательный. Конец присвоенного сегмента, эксклюзивный.
string
uri
Необязательный. URI, который считается источником части текста.
string
license
Необязательный. Лицензия на проект GitHub, указанный в качестве источника для сегмента.
Информация о лицензии необходима для цитирования кода.
Конфигурация поколения
Параметры конфигурации для создания модели и выходных данных. Не все параметры можно настроить для каждой модели.
JSON-представление |
---|
{
"stopSequences": [
string
],
"responseMimeType": string,
"responseSchema": {
object ( |
stopSequences[]
string
Необязательный. Набор последовательностей символов (до 5), которые останавливают генерацию вывода. Если указано, API остановится при первом появлении последовательности остановки. Последовательность остановки не будет включена в ответ.
string
responseMimeType
Необязательный. Выходной mime-тип ответа сгенерированного текста-кандидата. Поддерживаемый тип mime: text/plain
: (по умолчанию) Вывод текста. application/json
: ответ JSON в кандидатах.
responseSchema
object ( Schema
)
Необязательный. Выведите схему ответа сгенерированного текста-кандидата, если тип ответа mime может иметь схему. Схема может быть объектами, примитивами или массивами и является подмножеством схемы OpenAPI .
Если установлено, также должен быть установлен совместимый тип ответаMimeType. Совместимые типы mimetypes: application/json
: схема ответа JSON.
integer
candidateCount
Необязательный. Количество сгенерированных ответов для возврата.
В настоящее время для этого значения можно установить только значение 1. Если оно не установлено, по умолчанию оно будет равно 1.
integer
maxOutputTokens
Необязательный. Максимальное количество токенов, которые можно включить в кандидата.
Примечание. Значение по умолчанию зависит от модели. См. атрибут Model.output_token_limit
Model
, возвращаемой функцией getModel
.
number
temperature
Необязательный. Управляет случайностью вывода.
Примечание. Значение по умолчанию зависит от модели. См. атрибут Model.temperature
Model
, возвращаемый функцией getModel
.
Значения могут варьироваться от [0,0, 2,0].
number
topP
Необязательный. Максимальная совокупная вероятность токенов, которую следует учитывать при выборке.
Модель использует комбинированную выборку Top-k и ядра.
Токены сортируются на основе присвоенных им вероятностей, поэтому учитываются только наиболее вероятные токены. Выборка Top-k напрямую ограничивает максимальное количество рассматриваемых токенов, тогда как выборка Nucleus ограничивает количество токенов на основе кумулятивной вероятности.
Примечание. Значение по умолчанию зависит от модели. См. атрибут Model.top_p
Model
, возвращаемый функцией getModel
.
integer
topK
Необязательный. Максимальное количество токенов, которые следует учитывать при выборке.
В моделях используется выборка ядер или комбинированная выборка Top-k и ядра. Выборка Top-k рассматривает набор наиболее вероятных токенов topK
. Модели, работающие с выборкой ядер, не позволяют устанавливать topK.
Примечание. Значение по умолчанию зависит от модели. См. атрибут Model.top_k
Model
, возвращаемой функцией getModel
. Пустое поле topK
в Model
указывает на то, что модель не применяет выборку top-k и не позволяет устанавливать topK
для запросов.
Категория Вреда
Категория рейтинга.
Эти категории охватывают различные виды вреда, которые разработчики, возможно, захотят устранить.
Перечисления | |
---|---|
HARM_CATEGORY_UNSPECIFIED | Категория не указана. |
HARM_CATEGORY_DEROGATORY | Негативные или вредные комментарии, направленные против личности и/или защищенного атрибута. |
HARM_CATEGORY_TOXICITY | Грубый, неуважительный или оскорбительный контент. |
HARM_CATEGORY_VIOLENCE | Описывает сценарии, изображающие насилие против отдельного человека или группы, или общие описания кровавых событий. |
HARM_CATEGORY_SEXUAL | Содержит ссылки на сексуальные действия или другой непристойный контент. |
HARM_CATEGORY_MEDICAL | Пропагандирует непроверенные медицинские советы. |
HARM_CATEGORY_DANGEROUS | Опасный контент, который пропагандирует, облегчает или поощряет вредные действия. |
HARM_CATEGORY_HARASSMENT | Оскорбительный контент. |
HARM_CATEGORY_HATE_SPEECH | Разжигание ненависти и контент. |
HARM_CATEGORY_SEXUALLY_EXPLICIT | Сексуально откровенный контент. |
HARM_CATEGORY_DANGEROUS_CONTENT | Опасный контент. |
Рейтинг безопасности
Рейтинг безопасности части контента.
Рейтинг безопасности содержит категорию вреда и уровень вероятности вреда в этой категории для фрагмента контента. Контент классифицируется по безопасности по ряду категорий вреда, и сюда включена вероятность классификации вреда.
JSON-представление |
---|
{ "category": enum ( |
category
enum ( HarmCategory
)
Необходимый. Категория для этого рейтинга.
probability
enum ( HarmProbability
)
Необходимый. Вероятность вреда для этого контента.
blocked
boolean
Был ли этот контент заблокирован из-за такого рейтинга?
ВредВероятность
Вероятность того, что часть контента является вредоносной.
Система классификации дает вероятность того, что контент небезопасен. Это не указывает на тяжесть вреда для части контента.
Перечисления | |
---|---|
HARM_PROBABILITY_UNSPECIFIED | Вероятность не указана. |
NEGLIGIBLE | Контент имеет ничтожную вероятность оказаться небезопасным. |
LOW | Контент имеет низкую вероятность оказаться небезопасным. |
MEDIUM | Контент имеет средний шанс оказаться небезопасным. |
HIGH | Контент имеет высокую вероятность оказаться небезопасным. |
Настройка безопасности
Настройка безопасности, влияющая на поведение блокировки безопасности.
Передача параметра безопасности для категории изменяет допустимую вероятность блокировки контента.
JSON-представление |
---|
{ "category": enum ( |
category
enum ( HarmCategory
)
Необходимый. Категория для этого параметра.
threshold
enum ( HarmBlockThreshold
)
Необходимый. Управляет порогом вероятности, при котором блокируется вред.
ВредБлокПорог
Блокировать при определенной вероятности нанесения вреда и за ее пределами.
Перечисления | |
---|---|
HARM_BLOCK_THRESHOLD_UNSPECIFIED | Порог не указан. |
BLOCK_LOW_AND_ABOVE | Контент с НЕЗНАЧИТЕЛЬНЫМ значением будет разрешен. |
BLOCK_MEDIUM_AND_ABOVE | Контент с НЕЗНАЧИТЕЛЬНЫМ и НИЗКИМ уровнем будет разрешен. |
BLOCK_ONLY_HIGH | Контент с параметрами НЕБОЛЬШОЙ, НИЗКИЙ и СРЕДНИЙ будет разрешен. |
BLOCK_NONE | Весь контент будет разрешен. |