Question answering

Метод: models.generateAnswer

Генерирует обоснованный ответ из модели с учетом входных данных GenerateAnswerRequest .

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

опубликуйте https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateAnswer

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

model string

Необходимый. Имя Model , используемой для генерации обоснованного ответа.

Формат: model=models/{model} . Он принимает форму models/{model} .

Тело запроса

Тело запроса содержит данные следующей структуры:

Поля
объект contents[] object ( Content )

Необходимый. Содержание текущего разговора с моделью. Для одноходовых запросов это один вопрос, на который нужно ответить. Для многоходовых запросов это повторяющееся поле, содержащее историю разговоров и последнее Content в списке, содержащем вопрос.

Примечание. models.generateAnswer в настоящее время поддерживает запросы только на английском языке.

Перечисление answerStyle enum ( AnswerStyle )

Необходимый. Стиль, в котором должны быть возвращены ответы.

Объект safetySettings[] object ( SafetySetting )

Необязательный. Список уникальных экземпляров SafetySetting для блокировки небезопасного контента.

Это будет применено к GenerateAnswerRequest.contents и GenerateAnswerResponse.candidate . Для каждого типа SafetyCategory не должно быть более одного параметра. API будет блокировать любое содержимое и ответы, которые не соответствуют пороговым значениям, установленным этими настройками. Этот список переопределяет настройки по умолчанию для каждой SafetyCategory , указанной в параметре SafetySettings. Если в списке нет SafetySetting для данной SafetyCategory , API будет использовать параметр безопасности по умолчанию для этой категории. Поддерживаются категории вреда HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT.

Поле объединения grounding_source . Источники, в которых можно обосновать ответ. grounding_source может быть только одним из следующих:
объект inlinePassages object ( GroundingPassages )

Отрывки предоставлены вместе с запросом.

объект semanticRetriever object ( SemanticRetrieverConfig )

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

number temperature

Необязательный. Управляет случайностью вывода.

Значения могут находиться в диапазоне от [0,0,1,0] включительно. Значение ближе к 1,0 приведет к более разнообразным и творческим ответам, тогда как значение ближе к 0,0 обычно приводит к более прямым ответам модели. Низкая температура (~0,2) обычно рекомендуется для случаев использования «Вопрос с указанием атрибутов» и «Ответ».

Тело ответа

Ответ модели на обоснованный ответ.

В случае успеха тело ответа содержит данные следующей структуры:

Поля
объект answer object ( Candidate )

Ответ кандидата от модели.

Примечание. Модель всегда пытается дать обоснованный ответ, даже если маловероятно, что на него можно ответить из данных отрывков. В этом случае может быть предоставлен некачественный или необоснованный ответ, а также низкая answerableProbability .

answerableProbability number

Только вывод. Оценка модели вероятности того, что ее ответ правильный и основана на входных данных.

Низкая вероятность ответа указывает на то, что ответ может не основываться на источниках.

Когда answerableProbability низкая, некоторые клиенты могут захотеть:

  • Отображение пользователю сообщения типа «Мы не смогли ответить на этот вопрос».
  • Вернитесь к программе LLM общего назначения, которая отвечает на вопросы мировых знаний. Пороговое значение и характер таких отказов будут зависеть от сценариев использования отдельных клиентов. 0,5 — хороший стартовый порог.
объект inputFeedback object ( InputFeedback )

Только вывод. Обратная связь связана с входными данными, используемыми для ответа на вопрос, в отличие от ответа на вопрос, сгенерированного моделью.

«Входные данные» могут быть одним или несколькими из следующих:

  • Вопрос, заданный последней записью в GenerateAnswerRequest.content
  • История разговоров, указанная другими записями в GenerateAnswerRequest.content
  • Источники заземления ( GenerateAnswerRequest.semantic_retriever или GenerateAnswerRequest.inline_passages )
JSON-представление
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

ЗаземлениеПроходы

Повторяющийся список отрывков.

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

Список отрывков.

ЗаземлениеПроход

Проход включен в линию с заземляющей конфигурацией.

JSON-представление
{
  "id": string,
  "content": {
    object (Content)
  }
}
Поля
string id

Идентификатор отрывка для приписывания этого отрывка в обоснованных ответах.

объект content object ( Content )

Содержание отрывка.

SemanticRetrieverConfig

Конфигурация для получения основного контента из Corpus или Document , созданного с помощью API Semantic Retriever.

JSON-представление
{
  "source": string,
  "query": {
    object (Content)
  },
  "metadataFilters": [
    {
      object (MetadataFilter)
    }
  ],
  "maxChunksCount": integer,
  "minimumRelevanceScore": number
}
Поля
source string

Необходимый. Имя ресурса для поиска, например corpora/123 или corpora/123/documents/abc.

объект query object ( Content )

Необходимый. Запрос, который будет использоваться для сопоставления Chunk по сходству в данном ресурсе.

object ( MetadataFilter ) metadataFilters[] ( MetadataFilter )

Необязательный. Фильтры для выбора Document и/или Chunk из ресурса.

maxChunksCount integer

Необязательный. Максимальное количество соответствующих Chunk для извлечения.

minimumRelevanceScore number RelevanceScore

Необязательный. Минимальная оценка релевантности для извлеченных соответствующих Chunk .

ОтветСтиль

Стиль для обоснованных ответов.

Перечисления
ANSWER_STYLE_UNSPECIFIED Неуказанный стиль ответа.
ABSTRACTIVE Краткий, но абстрактный стиль.
EXTRACTIVE Очень краткий и экстрактивный стиль.
VERBOSE Многословный стиль, включающий дополнительные детали. Ответ может быть отформатирован как предложение, абзац, несколько абзацев или маркеры и т. д.

ВводОбратная связь

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

JSON-представление
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}
Поля
Объект safetyRatings[] object ( SafetyRating )

Оценки безопасности ввода. В каждой категории может быть не более одного рейтинга.

перечисление blockReason enum ( BlockReason )

Необязательный. Если установлено, ввод был заблокирован и кандидаты не возвращались. Перефразируйте свой ввод.

БлокПричина

Указывает причину блокировки ввода.

Перечисления
BLOCK_REASON_UNSPECIFIED Значение по умолчанию. Это значение не используется.
SAFETY Вход заблокирован по соображениям безопасности. Вы можете проверить safetyRatings чтобы понять, какая категория безопасности заблокировала его.
OTHER Ввод заблокирован по другим причинам.