Question answering

La API de Recuperación semántica proporciona un servicio de búsqueda de respuestas alojado para compilar sistemas de generación aumentada por recuperación (RAG) con la infraestructura de Google.

Método: models.generateAnswer

Genera una respuesta fundamentada del modelo a partir de una entrada GenerateAnswerRequest.

Extremo

post https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateAnswer

Parámetros de ruta

model string

Obligatorio. Es el nombre del Model que se usará para generar la respuesta fundamentada.

Formato: model=models/{model}. Toma la forma models/{model}.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Campos
contents[] object (Content)

Obligatorio. El contenido de la conversación actual con Model. Para las búsquedas de un solo turno, esta es una sola pregunta que se debe responder. Para las consultas de varios turnos, este es un campo repetido que contiene el historial de conversaciones y el último Content de la lista que contiene la pregunta.

Nota: models.generateAnswer solo admite consultas en inglés.

answerStyle enum (AnswerStyle)

Obligatorio. Es el estilo en el que se deben devolver las respuestas.

safetySettings[] object (SafetySetting)

Opcional. Es una lista de instancias SafetySetting únicas para bloquear contenido no seguro.

Esto se aplicará en GenerateAnswerRequest.contents y GenerateAnswerResponse.candidate. No debe haber más de un parámetro de configuración para cada tipo de SafetyCategory. La API bloqueará todo el contenido y las respuestas que no cumplan con los umbrales establecidos por estos parámetros de configuración. Esta lista anula la configuración predeterminada de cada SafetyCategory especificado en safetySettings. Si no hay un SafetySetting para un SafetyCategory determinado proporcionado en la lista, la API usará el parámetro de configuración de seguridad predeterminado para esa categoría. Se admiten las categorías de daño HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT y HARM_CATEGORY_HARASSMENT. Consulta la guía para obtener información detallada sobre los parámetros de configuración de seguridad disponibles. También consulta la Guía de seguridad para obtener información sobre cómo incorporar consideraciones de seguridad en tus aplicaciones de IA.

grounding_source Union type
Son las fuentes en las que se basa la respuesta. grounding_source puede ser una de las siguientes opciones:
inlinePassages object (GroundingPassages)

Son los pasajes que se proporcionan intercalados con la solicitud.

semanticRetriever object (SemanticRetrieverConfig)

Es el contenido recuperado de los recursos creados a través de la API de Semantic Retriever.

temperature number

Opcional. Controla la aleatoriedad del resultado.

Los valores pueden variar de [0.0,1.0], inclusive. Un valor más cercano a 1.0 producirá respuestas más variadas y creativas, mientras que un valor más cercano a 0.0 generalmente generará respuestas más directas del modelo. Por lo general, se recomienda una temperatura baja (~0.2) para los casos de uso de respuesta a preguntas atribuidas.

Cuerpo de la respuesta

Es la respuesta del modelo para una respuesta fundamentada.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Campos
answer object (Candidate)

Es la respuesta candidata del modelo.

Nota: El modelo siempre intenta proporcionar una respuesta fundamentada, incluso cuando es poco probable que se pueda responder a partir de los pasajes proporcionados. En ese caso, es posible que se proporcione una respuesta de baja calidad o sin fundamento, junto con una answerableProbability baja.

answerableProbability number

Solo salida. Es la estimación del modelo sobre la probabilidad de que su respuesta sea correcta y se base en los pasajes de entrada.

Un valor de answerableProbability bajo indica que es posible que la respuesta no esté fundamentada en las fuentes.

Cuando answerableProbability es bajo, te recomendamos que hagas lo siguiente:

  • Mostrar al usuario un mensaje que diga "No pudimos responder esa pregunta".
  • Recurrir a un LLM de uso general que responda la pregunta con conocimientos del mundo El umbral y la naturaleza de estos mecanismos de resguardo dependerán de los casos de uso individuales. 0.5 es un buen límite inicial.
inputFeedback object (InputFeedback)

Solo salida. Comentarios relacionados con los datos de entrada que se usaron para responder la pregunta, a diferencia de la respuesta generada por el modelo a la pregunta.

Los datos de entrada pueden ser uno o más de los siguientes:

  • Pregunta especificada por la última entrada en GenerateAnswerRequest.content
  • Historial de conversaciones especificado por las otras entradas en GenerateAnswerRequest.content
  • Fuentes de fundamentación (GenerateAnswerRequest.semantic_retriever o GenerateAnswerRequest.inline_passages)
Representación JSON
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

Es una lista repetida de pasajes.

Campos
passages[] object (GroundingPassage)

Es la lista de pasajes.

Representación JSON
{
  "passages": [
    {
      object (GroundingPassage)
    }
  ]
}

GroundingPassage

Pasaje incluido de forma intercalada con una configuración de fundamentación.

Campos
id string

Es el identificador del pasaje para atribuir este pasaje en las respuestas fundamentadas.

content object (Content)

Es el contenido del pasaje.

Representación JSON
{
  "id": string,
  "content": {
    object (Content)
  }
}

SemanticRetrieverConfig

Es la configuración para recuperar contenido de fundamentación de un Corpus o Document creados con la API de Semantic Retriever.

Campos
source string

Obligatorio. Nombre del recurso que se recuperará. Ejemplo: corpora/123 o corpora/123/documents/abc.

query object (Content)

Obligatorio. Es la consulta que se usará para hacer coincidir los Chunks del recurso determinado por similitud.

metadataFilters[] object (MetadataFilter)

Opcional. Son filtros para seleccionar Document o Chunk del recurso.

maxChunksCount integer

Opcional. Es la cantidad máxima de Chunks relevantes que se pueden recuperar.

minimumRelevanceScore number

Opcional. Es la puntuación de relevancia mínima para los Chunks relevantes recuperados.

Representación JSON
{
  "source": string,
  "query": {
    object (Content)
  },
  "metadataFilters": [
    {
      object (MetadataFilter)
    }
  ],
  "maxChunksCount": integer,
  "minimumRelevanceScore": number
}

AnswerStyle

Es el estilo de las respuestas fundamentadas.

Enumeraciones
ANSWER_STYLE_UNSPECIFIED Es un estilo de respuesta no especificado.
ABSTRACTIVE Estilo abstracto y conciso.
EXTRACTIVE Estilo muy breve y extractivo.
VERBOSE Estilo detallado que incluye detalles adicionales. La respuesta puede tener el formato de una oración, un párrafo, varios párrafos, viñetas, etcétera.

InputFeedback

Comentarios relacionados con los datos de entrada que se usaron para responder la pregunta, a diferencia de la respuesta generada por el modelo a la pregunta.

Campos
safetyRatings[] object (SafetyRating)

Son las calificaciones de seguridad de la entrada. Hay, como máximo, una clasificación por categoría.

blockReason enum (BlockReason)

Opcional. Si se configura, la entrada se bloqueó y no se devolvió ningún candidato. Reformula la entrada.

Representación JSON
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}

BlockReason

Especifica el motivo por el que se bloqueó la entrada.

Enumeraciones
BLOCK_REASON_UNSPECIFIED Valor predeterminado Este valor no se usa.
SAFETY Se bloqueó la entrada por motivos de seguridad. Inspecciona safetyRatings para comprender qué categoría de seguridad lo bloqueó.
OTHER Se bloqueó la entrada por otros motivos.