Respuestas fundamentales para los modelos de Gemini

En esta página, se describen dos formas de fundamentar las respuestas de un modelo con Vertex AI y se muestra cómo hacer que la fundamentación funcione en tus aplicaciones con la API de Grounding.

Vertex AI te permite fundamentar los resultados del modelo con las siguientes fuentes de datos:

  • Búsqueda de Google: Fundamenta las respuestas con datos web disponibles públicamente.
  • Tus datos: Usa tus datos de Vertex AI Search (versión preliminar) para fundamentar las respuestas.

Grounding with Google Search

Usa Grounding with Google Search si deseas conectar el modelo con conocimiento mundial, una amplia variedad de temas o información actualizada en Internet.

La fundamentación con la Búsqueda de Google admite la recuperación dinámica, que te brinda la opción de generar respuestas fundamentadas con la Búsqueda de Google solo cuando sea necesario. Por lo tanto, la configuración de recuperación dinámica evalúa si una instrucción requiere conocimiento sobre eventos recientes y habilita la vinculación con la Búsqueda de Google. Para obtener más información, consulta Recuperación dinámica.

Para obtener más información sobre los fundamentos de modelos en Vertex AI, consulta la descripción general de Grounding.

Modelos compatibles

Los siguientes modelos admiten la fundamentación:

  • Gemini 1.5 Pro solo con entrada de texto
  • Gemini 1.5 Flash solo con entrada de texto
  • Gemini 1.0 Pro solo con entrada de texto

Lenguajes compatibles

  • Inglés (en)
  • Español (es)
  • Japonés (ja)

Usa las siguientes instrucciones para fundamentar un modelo con datos web disponibles públicamente.

Recuperación dinámica

Puedes usar la recuperación dinámica en tu solicitud para elegir cuándo desactivar la fundamentación con la Búsqueda de Google. Esto es útil cuando la instrucción no requiere una respuesta basada en la Búsqueda de Google y los modelos compatibles pueden proporcionar una respuesta basada en su conocimiento sin fundamentación. Esto te ayuda a administrar la latencia, la calidad y el costo de manera más eficaz.

Antes de invocar la configuración de recuperación dinámica en tu solicitud, ten en cuenta la siguiente terminología:

  • Puntuación de predicción: Cuando solicitas una respuesta fundamentada, Vertex AI asigna una puntuación de predicción a la instrucción. La puntuación de predicción es un valor de punto flotante en el rango [0,1]. Su valor depende de si la instrucción puede beneficiarse de fundamentar la respuesta con la información más actualizada de la Búsqueda de Google. Por lo tanto, una instrucción que requiere una respuesta basada en los hechos más recientes de la Web tiene una puntuación de predicción más alta. Una instrucción para la que una respuesta generada por un modelo es suficiente tiene una puntuación de predicción más baja.

    Estos son ejemplos de algunas instrucciones y sus puntuaciones de predicción.

    Instrucción Puntuación de predicción Comentario
    "Escribe un poema sobre las peonías" 0.13 El modelo puede basarse en su conocimiento y la respuesta no necesita fundamentación.
    "Sugiere un juguete para un niño de 2 años" 0.36 El modelo puede basarse en su conocimiento y la respuesta no necesita fundamentación.
    "¿Puedes darme la receta de un guacamole inspirado en la cocina asiática?" 0.55 La Búsqueda de Google puede dar una respuesta fundamentada, pero la fundamentación no es estrictamente necesaria; el conocimiento del modelo podría ser suficiente.
    "¿Qué es Agent Builder? "¿Cómo se factura la conexión a tierra en Agent Builder?" 0.72 Requiere que la Búsqueda de Google genere una respuesta bien fundamentada.
    "¿Quién ganó el último Gran Premio de Fórmula 1?" 0.97 Requiere que la Búsqueda de Google genere una respuesta bien fundamentada.
  • Umbral: En tu solicitud, puedes especificar una configuración de recuperación dinámica con un umbral. El umbral es un valor de punto flotante en el rango [0,1] y su valor predeterminado es 0.7. Si el valor del umbral es cero, la respuesta siempre se fundamenta con la Búsqueda de Google. Para todos los demás valores del umbral, se aplica lo siguiente:

    • Si la puntuación de predicción es mayor o igual que el umbral, la respuesta se basa en la Búsqueda de Google. Un umbral más bajo implica que más instrucciones tienen respuestas que se generan con la fundamentación con la Búsqueda de Google.
    • Si la puntuación de la predicción es inferior al umbral, es posible que el modelo genere la respuesta, pero no se fundamenta en la Búsqueda de Google.

Para encontrar un buen umbral que se adapte a las necesidades de tu empresa, puedes crear un conjunto representativo de las búsquedas que esperas encontrar. Luego, puedes ordenar las consultas según la puntuación de predicción en la respuesta y seleccionar un buen umbral para tu caso de uso.

Consideraciones

  • Para usar la fundamentación con la Búsqueda de Google, debes habilitar las sugerencias de la Búsqueda de Google. Obtén más información en Sugerencias de la Búsqueda de Google.

  • Para obtener resultados ideales, usa una temperatura de 0.0. Para obtener más información sobre cómo establecer esta configuración, consulta el cuerpo de la solicitud a la API de Gemini de la referencia del modelo.

  • La verificación de la conexión a tierra con la Búsqueda de Google tiene un límite de un millón de consultas por día. Si necesitas realizar más consultas, comunícate con el equipo de Asistencia de Google Cloud para obtener ayuda.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: La región para procesar la solicitud.
  • PROJECT_ID: El ID del proyecto.
  • MODEL_ID: El ID del modelo multimodal.
  • TEXT: Las instrucciones de texto que se incluirán en el mensaje.
  • DYNAMIC_THRESHOLD: Es un campo opcional para establecer el umbral para invocar la configuración de recuperación dinámica. Es un valor de punto flotante en el rango [0,1]. Si no estableces el campo dynamicThreshold, el valor del umbral predeterminado es 0.7.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

Cuerpo JSON de la solicitud:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "googleSearchRetrieval": {
      "dynamicRetrievalConfig": {
        "mode": "MODE_DYNAMIC",
        "dynamicThreshold": DYNAMIC_THRESHOLD
      }
    }
  }],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
   "candidates": [
     {
       "content": {
         "role": "model",
         "parts": [
           {
             "text": "Chicago weather changes rapidly, so layers let you adjust easily. Consider a base layer, a warm mid-layer (sweater-fleece), and a weatherproof outer layer."
           }
         ]
       },
       "finishReason": "STOP",
       "safetyRatings":[
       "..."
    ],
       "groundingMetadata": {
         "webSearchQueries": [
           "What's the weather in Chicago this weekend?"
         ],
         "searchEntryPoint": {
            "renderedContent": "....................."
         }
         "groundingSupports": [
            {
              "segment": {
                "startIndex": 0,
                "endIndex": 65,
                "text": "Chicago weather changes rapidly, so layers let you adjust easily."
              },
              "groundingChunkIndices": [
                0
              ],
              "confidenceScores": [
                0.99
              ]
            },
          ]
          "retrievalMetadata": {
              "webDynamicRetrievalScore": 0.96879
            }
       }
     }
   ],
   "usageMetadata": { "..."
   }
 }

Console

Para usar Grounding with Google Search con Vertex AI Studio, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Generative AI Studio.

    Ir a Vertex AI Studio

  2. Haz clic en la pestaña Formato libre.
  3. En el panel lateral, haz clic en el botón de activación Ground model responses.
  4. Haz clic en Personalizar y establece la Búsqueda de Google como la fuente.
  5. Ingresa el mensaje en el cuadro de texto y haz clic en Enviar.

Tus respuestas a las instrucciones ahora se basan en la Búsqueda de Google.

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

import vertexai

from vertexai.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

# Use Google Search for grounding
tool = Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval())

prompt = "When is the next total solar eclipse in US?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response.text)
# Example response:
# The next total solar eclipse visible from the contiguous United States will be on **August 23, 2044**.

Comprende tu respuesta

Si la instrucción de tu modelo se fundamenta correctamente en la Búsqueda de Google desde Vertex AI Studio o desde la API, las respuestas incluirán metadatos con vínculos de origen (URLs web). Sin embargo, existen varios motivos por los que es posible que no se proporcionen estos metadatos, y la respuesta a la instrucción no se basará en ellos. Entre estos motivos, se incluyen la baja relevancia de la fuente o la información incompleta en la respuesta del modelo.

Citas

Se recomienda mostrar citas. Ayudan a los usuarios a validar las respuestas de los propios editores y agregan vías para obtener más información.

Las citas de las respuestas de las fuentes de la Búsqueda de Google deben mostrarse intercaladas y de manera no individualizada. Consulta la siguiente imagen como sugerencia para hacerlo.

Ejemplos de citas

Uso de opciones de motores de búsqueda alternativos

El uso de la vinculación con la Búsqueda de Google por parte del Cliente no lo impide de ofrecer opciones de motores de búsqueda alternativos, establecerlas como la opción predeterminada para las Aplicaciones del Cliente o mostrar sus propias sugerencias de búsqueda o resultados de búsqueda de terceros en las Aplicaciones del Cliente, siempre que los servicios o resultados asociados que no sean de la Búsqueda de Google se muestren por separado de los Resultados Vinculados y las Sugerencias de Búsqueda, y no se puedan atribuir de manera razonable a Google ni confundirse con los resultados que proporciona Google.

Fundamenta Gemini con tus datos

En esta sección, se muestra cómo fundamentar las respuestas de texto en un almacén de datos de Vertex AI Agent Builder con la API de Vertex AI. No puedes especificar un almacén de datos de búsqueda de un sitio web como fuente de conexión a tierra.

Modelos compatibles

Los siguientes modelos admiten la fundamentación:

  • Gemini 1.5 Pro solo con entrada de texto
  • Gemini 1.5 Flash solo con entrada de texto
  • Gemini 1.0 Pro solo con entrada de texto

Requisitos previos

Hay requisitos previos necesarios para poder fundamentar el resultado del modelo en tus datos.

  1. Habilita Vertex AI Agent Builder y activa la API.
  2. Crea una fuente de datos y una app de Vertex AI Agent Builder.
  3. Vincula tu almacén de datos a tu app en Vertex AI Agent Builder. La fuente de datos sirve como base para fundamentar Gemini 1.0 Pro en Vertex AI. No puedes especificar un almacén de datos de búsqueda de sitios web como fuente de puesta a tierra.
  4. Habilita la edición Enterprise para tu almacén de datos.

Consulta la Introducción a Vertex AI Search para obtener más información.

Habilita Vertex AI Agent Builder

  1. En la consola de Google Cloud, ve a la página Agent Builder.

    Agent Builder

  2. Lee y acepta las Condiciones del Servicio y, luego, haz clic en Continuar y activar la API.

Vertex AI Agent Builder está disponible en la ubicación global o en la multirregión eu y us. Para obtener más información, consulta Ubicaciones de Vertex AI Agent Builder.

Crea un almacén de datos en Vertex AI Agent Builder

Para fundamentar tus modelos en los datos de origen, debes preparar y guardar tus datos en Vertex AI Search. Para ello, debes crear un almacén de datos en Vertex AI Agent Builder.

Si comienzas desde cero, debes preparar los datos para la transferencia a Vertex AI Agent Builder. Consulta Prepara datos para la transferencia para comenzar. Según el tamaño de tus datos, la transferencia puede tardar varios minutos o varias horas. Solo se admiten almacenes de datos no estructurados para los fundamentos.

Una vez que hayas preparado tus datos para la transferencia, puedes crear un almacén de datos de búsqueda. Después de crear un almacén de datos de forma correcta, crea una app de búsqueda para vincularla y activa la edición Enterprise.

Ejemplo: Cómo conectar a tierra el modelo Gemini 1.5 Flash

Usa las siguientes instrucciones para fundamentar un modelo con tus propios datos.

Si no conoces el ID del almacén de datos, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Vertex AI Agent Builder y, en el menú de navegación, haz clic en Almacenes de datos.

    Ir a la página Almacenes de datos

  2. Haz clic en el nombre de tu almacén de datos.

  3. En la página Datos de tu almacén de datos, obtén el ID del almacén de datos. No puedes especificar un almacén de datos de búsqueda de un sitio web como fuente de conexión a tierra.

REST

Para probar un mensaje de texto con la API de Vertex AI, envía una solicitud POST al extremo del modelo de publicador.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: La región para procesar la solicitud.
  • PROJECT_ID: El ID del proyecto.
  • MODEL_ID: El ID del modelo multimodal.
  • TEXT: las instrucciones de texto que se incluirán en el mensaje.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

Cuerpo JSON de la solicitud:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "retrieval": {
      "vertexAiSearch": {
        "datastore": projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID
      }
    }
  }],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "You can make an appointment on the website https://dmv.gov/"
          }
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        "..."
      ],
      "groundingMetadata": {
        "retrievalQueries": [
          "How to make appointment to renew driving license?"
        ],
        "groundingChunks": [
          {
            "retrievedContext": {
              "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AXiHM.....QTN92V5ePQ==",
              "title": "dmv"
            }
          }
        ],
        "groundingSupport": [
          {
            "segment": {
              "startIndex": 25,
              "endIndex": 147
            },
            "segment_text": "ipsum lorem ...",
            "supportChunkIndices": [1, 2],
            "confidenceScore": [0.9541752, 0.97726375]
          },
          {
            "segment": {
              "startIndex": 294,
              "endIndex": 439
            },
            "segment_text": "ipsum lorem ...",
            "supportChunkIndices": [1],
            "confidenceScore": [0.9541752, 0.9325467]
          }
        ]
      }
    }
  ],
  "usageMetadata": {
    "..."
  }
}

Comprende la respuesta que se basa en la Búsqueda de Google

Cuando se genera un resultado basado en la ubicación, los metadatos contienen un URI que redirecciona al editor del contenido que se usó para generar el resultado basado en la ubicación. Los metadatos también contienen el dominio del publicador. Se puede acceder a los URIs proporcionados durante 30 días después de que se genera el resultado basado en la ubicación.

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

import vertexai

from vertexai.preview.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# data_store_id = "your-data-store-id"

vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

tool = Tool.from_retrieval(
    grounding.Retrieval(
        grounding.VertexAISearch(
            datastore=data_store_id,
            project=PROJECT_ID,
            location="global",
        )
    )
)

prompt = "How do I make an appointment to renew my driver's license?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response.text)

Console

Para fundamentar el resultado de tu modelo en Vertex AI Agent Builder a través de Vertex AI Studio en la consola de Google Cloud, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Generative AI Studio.

    Ir a Vertex AI Studio

  2. Haz clic en la pestaña Formato libre.
  3. En el panel lateral, haz clic en el botón de activación Ground model responses para habilitar la fundamentación.
  4. Haz clic en Personalizar y establece Vertex AI Agent Builder como la fuente. La ruta debe seguir el siguiente formato: projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id.
  5. Ingresa el mensaje en el cuadro de texto y haz clic en Enviar.

Tus respuestas a las instrucciones ahora se basan en Vertex AI Agent Builder.

Más recursos de IA generativa