Question answering

API семантического поиска предоставляет размещенную службу ответов на вопросы для создания систем расширенной генерации поиска (RAG) с использованием инфраструктуры Google.

Метод: models.generateОтвет

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

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

пост https: / /generativelanguage.googleapis.com /v1beta /{model=models /*}:generateAnswer

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

model string

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

Формат: model=models/{model} . Он имеет вид models/{model} .

Текст запроса

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

Поля
contents[] object ( Content )

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

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

answerStyle enum ( AnswerStyle )

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

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

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

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

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

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

объект semanticRetriever object ( SemanticRetrieverConfig )

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

number temperature

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

Значения могут находиться в диапазоне от [0.0,1.0] включительно. Значение, близкое к 1.0, даст более разнообразные и креативные ответы, в то время как значение, близкое к 0.0, обычно приведет к более простым ответам модели. Низкая температура (~0.2) обычно рекомендуется для случаев использования Attributed-Question-Answering.

Тело ответа

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

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

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

Возможный ответ из модели.

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

answerableProbability number

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

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

Если answerableProbability низкий, вы можете захотеть:

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

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

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

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

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

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

Поля
объект passages[] object ( GroundingPassage )

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

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

GroundingPassage

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

Поля
string id

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

объект content object ( Content )

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

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

SemanticRetrieverConfig

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

Поля
source string

Обязательно. Имя ресурса для поиска. Пример: corpora/123 или corpora/123/documents/abc .

object ( Content ) query (Контент)

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

object ( MetadataFilter ) metadataFilters[] ( MetadataFilter )

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

maxChunksCount integer

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

minimumRelevanceScore number

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

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

AnswerStyle

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

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

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

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

Поля
safetyRatings[] object ( SafetyRating )

Рейтинги безопасности ввода. Максимум один рейтинг на категорию.

blockReason enum ( BlockReason )

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

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

BlockReason

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

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