Gemini API поддерживает создание контента с изображениями, аудио, кодом, инструментами и многим другим. Для получения подробной информации о каждой из этих функций прочтите и ознакомьтесь с примером кода, ориентированным на задачи, или прочитайте подробные руководства.
- Генерация текста
- Зрение
- Аудио
- Длинный контекст
- Выполнение кода
- Режим JSON
- Вызов функции
- Системные инструкции
Метод: models.generateContent
Генерирует ответ модели с учетом входных данных GenerateContentRequest
. Подробную информацию об использовании см. в руководстве по созданию текста . Возможности ввода различаются в зависимости от модели, включая настроенные модели. Подробную информацию см. в руководстве по модели и руководстве по настройке .
Конечная точка
опубликуйтеhttps://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateContent
Параметры пути
model
string
Необходимый. Имя Model
, используемой для создания завершения.
Формат: name=models/{model}
. Он принимает форму models/{model}
.
Тело запроса
Тело запроса содержит данные следующей структуры:
tools[]
object ( Tool
)
Необязательный. Список Tools
которые Model
может использовать для генерации следующего ответа.
Tool
— это часть кода, которая позволяет системе взаимодействовать с внешними системами для выполнения действия или набора действий за пределами знаний и области действия Model
. Поддерживаемые Tool
— Function
и codeExecution
. Дополнительные сведения см. в руководствах по вызову функций и выполнению кода .
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}
.
Тело запроса
Тело запроса содержит данные следующей структуры:
tools[]
object ( Tool
)
Необязательный. Список Tools
которые Model
может использовать для генерации следующего ответа.
Tool
— это часть кода, которая позволяет системе взаимодействовать с внешними системами для выполнения действия или набора действий за пределами знаний и области действия Model
. Поддерживаемые Tool
— Function
и codeExecution
. Дополнительные сведения см. в руководствах по вызову функций и выполнению кода .
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
.
candidates[]
object ( Candidate
)
Ответы кандидата от модели.
promptFeedback
object ( PromptFeedback
)
Возвращает отзыв о приглашении, связанный с фильтрами содержимого.
usageMetadata
object ( UsageMetadata
)
Только вывод. Метаданные об использовании токена запросов генерации.
JSON-представление |
---|
{ "candidates": [ { object ( |
ПодсказкаОбратная связь
Набор метаданных обратной связи, указанный в приглашении GenerateContentRequest.content
.
blockReason
enum ( BlockReason
)
Необязательный. Если установлено, приглашение блокируется и кандидаты не возвращаются. Перефразируйте подсказку.
safetyRatings[]
object ( SafetyRating
)
Оценки за безопасность подсказки. В каждой категории может быть не более одного рейтинга.
JSON-представление |
---|
{ "blockReason": enum ( |
БлокПричина
Указывает причину, по которой приглашение было заблокировано.
Перечисления | |
---|---|
BLOCK_REASON_UNSPECIFIED | Значение по умолчанию. Это значение не используется. |
SAFETY | Подсказка заблокирована по соображениям безопасности. Проверьте safetyRatings , чтобы понять, какая категория безопасности заблокировала его. |
OTHER | Подсказка заблокирована по неизвестным причинам. |
BLOCKLIST | Подсказка заблокирована из-за терминов, включенных в черный список терминологии. |
PROHIBITED_CONTENT | Подсказка заблокирована из-за запрещенного контента. |
Использованиеметаданные
Метаданные об использовании токена запроса генерации.
promptTokenCount
integer
Количество токенов в приглашении. Если установлен cachedContent
, это по-прежнему общий эффективный размер приглашения, что означает, что он включает в себя количество токенов в кэшированном контенте.
cachedContentTokenCount
integer
Количество токенов в кэшированной части приглашения (кэшированный контент)
integer
candidatesTokenCount
Общее количество токенов среди всех сгенерированных кандидатов на ответ.
totalTokenCount
integer
Общее количество токенов для запроса на создание (приглашение + кандидаты на ответ).
JSON-представление |
---|
{ "promptTokenCount": integer, "cachedContentTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } |
Кандидат
- JSON-представление
- FinishReason
- ЗаземлениеАтрибуция
- Идентификатор источника атрибуции
- ЗаземлениеИдентификатор прохода
- СемантическийРетриверЧанк
Кандидат на ответ, созданный на основе модели.
content
object ( Content
)
Только вывод. Сгенерированный контент возвращается из модели.
finishReason
enum ( FinishReason
)
Необязательный. Только вывод. Причина, по которой модель перестала генерировать токены.
Если пусто, модель не прекратила генерировать токены.
safetyRatings[]
object ( SafetyRating
)
Список оценок безопасности кандидата-ответчика.
В каждой категории может быть не более одного рейтинга.
citationMetadata
object ( CitationMetadata
)
Только вывод. Информация о цитировании кандидата, созданного моделью.
Это поле может быть заполнено информацией о декламации любого текста, включенного в content
. Это отрывки, которые «зачитаны» из материалов, защищенных авторским правом, в основных учебных данных LLM.
integer
tokenCount
Только вывод. Количество токенов для этого кандидата.
groundingAttributions[]
object ( GroundingAttribution
)
Только вывод. Информация об авторстве источников, которые способствовали обоснованному ответу.
Это поле заполняется для вызовов GenerateAnswer
.
integer
index
Только вывод. Индекс кандидата в списке откликнувшихся кандидатов.
JSON-представление |
---|
{ "content": { object ( |
FinishReason
Определяет причину, по которой модель перестала генерировать токены.
Перечисления | |
---|---|
FINISH_REASON_UNSPECIFIED | Значение по умолчанию. Это значение не используется. |
STOP | Естественная точка остановки модели или предусмотренная последовательность остановок. |
MAX_TOKENS | Достигнуто максимальное количество токенов, указанное в запросе. |
SAFETY | Содержимое кандидата на ответ было помечено по соображениям безопасности. |
RECITATION | Содержимое кандидата на ответ было помечено по причине повторения. |
LANGUAGE | Содержимое кандидата на ответ было помечено как использующее неподдерживаемый язык. |
OTHER | Неизвестная причина. |
BLOCKLIST | Генерация токенов остановлена, поскольку контент содержит запрещенные термины. |
PROHIBITED_CONTENT | Генерация токенов остановлена из-за потенциального содержания запрещенного контента. |
SPII | Генерация токенов остановлена, поскольку контент потенциально содержит конфиденциальную информацию, позволяющую установить личность (SPII). |
MALFORMED_FUNCTION_CALL | Вызов функции, сгенерированный моделью, недействителен. |
ЗаземлениеАтрибуция
Указание источника, который способствовал ответу.
sourceId
object ( AttributionSourceId
)
Только вывод. Идентификатор источника, способствующего этой атрибуции.
content
object ( Content
)
Обоснование исходного контента, составляющего эту атрибуцию.
JSON-представление |
---|
{ "sourceId": { object ( |
Идентификатор источника атрибуции
Идентификатор источника, способствующего этой атрибуции.
source
поля Союза.
source
может быть только одним из следующих:
groundingPassage
object ( GroundingPassageId
)
Идентификатор встроенного отрывка.
semanticRetrieverChunk
object ( SemanticRetrieverChunk
)
Идентификатор Chunk
, полученного с помощью Semantic Retriever.
JSON-представление |
---|
{ // Union field |
ЗаземлениеИдентификатор прохода
Идентификатор части внутри GroundingPassage
.
string
passageId
Только вывод. Идентификатор отрывка, соответствующий GroundingPassage.id
GenerateAnswerRequest
.
partIndex
integer
Только вывод. Индекс части в GroundingPassage.content
GenerateAnswerRequest
.
JSON-представление |
---|
{ "passageId": string, "partIndex": integer } |
СемантическийРетриверЧанк
Идентификатор Chunk
, полученного с помощью Semantic Retriever, указанного в GenerateAnswerRequest
с использованием SemanticRetrieverConfig
.
source
string
Только вывод. Имя источника, соответствующее SemanticRetrieverConfig.source
запроса. Пример: corpora/123
или corpora/123/documents/abc
string
chunk
Только вывод. Имя Chunk
, содержащего приписываемый текст. Пример: corpora/123/documents/abc/chunks/xyz
JSON-представление |
---|
{ "source": string, "chunk": string } |
Метаданные цитирования
Коллекция источников для части контента.
citationSources[]
object ( CitationSource
)
Ссылки на источники для конкретного ответа.
JSON-представление |
---|
{
"citationSources": [
{
object ( |
ЦитированиеИсточник
Ссылка на источник части конкретного ответа.
startIndex
integer
Необязательный. Начало сегмента ответа, приписываемого этому источнику.
Индекс указывает начало сегмента, измеряется в байтах.
integer
endIndex
Необязательный. Конец присвоенного сегмента, эксклюзивный.
string
uri
Необязательный. URI, который считается источником части текста.
string
license
Необязательный. Лицензия на проект GitHub, указанный в качестве источника для сегмента.
Информация о лицензии необходима для цитирования кода.
JSON-представление |
---|
{ "startIndex": integer, "endIndex": integer, "uri": string, "license": string } |
Конфигурация поколения
Параметры конфигурации для создания модели и выходных данных. Не все параметры можно настроить для каждой модели.
stopSequences[]
string
Необязательный. Набор последовательностей символов (до 5), которые останавливают генерацию вывода. Если указано, API остановится при первом появлении stop_sequence
. Последовательность остановки не будет включена в ответ.
string
responseMimeType
Необязательный. MIME-тип сгенерированного текста-кандидата. Поддерживаемые типы MIME: text/plain
: (по умолчанию) текстовый вывод. application/json
: ответ JSON в кандидатах на ответ. Обратитесь к документации для получения списка всех поддерживаемых текстовых типов MIME.
responseSchema
object ( Schema
)
Необязательный. Выходная схема сгенерированного текста-кандидата. Схемы должны быть подмножеством схемы OpenAPI и могут быть объектами, примитивами или массивами.
Если установлено, также должен быть установлен совместимый responseMimeType
. Совместимые типы MIME: application/json
: схема ответа 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-p (ядро).
Токены сортируются на основе присвоенных им вероятностей, поэтому учитываются только наиболее вероятные токены. Выборка Top-k напрямую ограничивает максимальное количество рассматриваемых токенов, тогда как выборка Nucleus ограничивает количество токенов на основе кумулятивной вероятности.
Примечание. Значение по умолчанию зависит от Model
и задается атрибутом Model.top_p
, возвращаемым функцией getModel
. Пустой атрибут topK
указывает, что модель не применяет выборку top-k и не позволяет устанавливать topK
для запросов.
integer
topK
Необязательный. Максимальное количество токенов, которые следует учитывать при выборке.
В моделях Gemini используется выборка Top-p (ядра) или комбинация Top-k и выборки ядра. Выборка Top-k рассматривает набор наиболее вероятных токенов topK
. Модели, работающие с выборкой ядер, не позволяют устанавливать topK.
Примечание. Значение по умолчанию зависит от Model
и задается атрибутом Model.top_p
, возвращаемым функцией getModel
. Пустой атрибут topK
указывает, что модель не применяет выборку top-k и не позволяет устанавливать topK
для запросов.
JSON-представление |
---|
{
"stopSequences": [
string
],
"responseMimeType": string,
"responseSchema": {
object ( |
Категория Вреда
Категория рейтинга.
Эти категории охватывают различные виды вреда, которые разработчики, возможно, захотят устранить.
Перечисления | |
---|---|
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 | Опасный контент. |
Рейтинг безопасности
Рейтинг безопасности части контента.
Рейтинг безопасности содержит категорию вреда и уровень вероятности вреда в этой категории для части контента. Контент классифицируется по безопасности по ряду категорий вреда, и сюда включена вероятность классификации вреда.
category
enum ( HarmCategory
)
Необходимый. Категория для этого рейтинга.
probability
enum ( HarmProbability
)
Необходимый. Вероятность вреда для этого контента.
blocked
boolean
Был ли этот контент заблокирован из-за такого рейтинга?
JSON-представление |
---|
{ "category": enum ( |
ВредВероятность
Вероятность того, что часть контента является вредоносной.
Система классификации дает вероятность того, что контент небезопасен. Это не указывает на тяжесть вреда для части контента.
Перечисления | |
---|---|
HARM_PROBABILITY_UNSPECIFIED | Вероятность не указана. |
NEGLIGIBLE | Контент имеет ничтожную вероятность оказаться небезопасным. |
LOW | Контент имеет низкую вероятность оказаться небезопасным. |
MEDIUM | Контент имеет средний шанс оказаться небезопасным. |
HIGH | Контент имеет высокую вероятность оказаться небезопасным. |
Настройка безопасности
Настройка безопасности, влияющая на поведение блокировки безопасности.
Передача параметра безопасности для категории изменяет допустимую вероятность блокировки контента.
category
enum ( HarmCategory
)
Необходимый. Категория для этого параметра.
threshold
enum ( HarmBlockThreshold
)
Необходимый. Управляет порогом вероятности, при котором блокируется вред.
JSON-представление |
---|
{ "category": enum ( |
ВредБлокПорог
Блокировать при определенной вероятности нанесения вреда и за ее пределами.
Перечисления | |
---|---|
HARM_BLOCK_THRESHOLD_UNSPECIFIED | Порог не указан. |
BLOCK_LOW_AND_ABOVE | Контент с НЕзначительным значением будет разрешен. |
BLOCK_MEDIUM_AND_ABOVE | Контент с НЕЗНАЧИТЕЛЬНЫМ и НИЗКИМ уровнем будет разрешен. |
BLOCK_ONLY_HIGH | Контент с параметрами НЕБОЛЬШОЙ, НИЗКИЙ и СРЕДНИЙ будет разрешен. |
BLOCK_NONE | Весь контент будет разрешен. |