Question answering

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

Метод: models.generateAnswer

Генерирует обоснованный ответ из модели с учетом входных данных 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. Если в списке нет 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 )

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

object ( SemanticRetrieverConfig ) semanticRetriever ( SemanticRetrieverConfig )

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

number temperature

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

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

Тело ответа

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

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

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

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

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

answerableProbability number

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

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

Если 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)
  }
}

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

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

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

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

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

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

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

Поля
string id

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

объект content object ( Content )

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

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

SemanticRetrieverConfig

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

Поля
source string

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

объект query object ( Content )

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

объект metadataFilters[] object ( MetadataFilter )

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

maxChunksCount integer

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

minimumRelevanceScore number RelevanceScore

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

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

ОтветСтиль

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

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

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

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

Поля
Объект safetyRatings[] object ( SafetyRating )

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

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

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

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

БлокПричина

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

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