En esta página, se explica cómo fundamentar las respuestas de un modelo con la Búsqueda de Google, que usa datos web disponibles públicamente.
Grounding with Google Search
Si deseas conectar tu modelo con el conocimiento mundial, una amplia variedad de temas o información actualizada en Internet, usa la Fundamentación con la Búsqueda de Google.
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. 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
En esta sección, se enumeran los modelos que admiten la fundamentación con la Búsqueda. Para explorar cómo cada modelo genera respuestas fundamentadas, sigue estas instrucciones:
Prueba un modelo que aparezca en esta tabla en la consola de Google Cloud.
Haz clic en el botón de activación Fundamentación para llevarlo a la posición activada.
Modelo | Descripción | Cómo probar un modelo |
---|---|---|
Gemini 1.5 Pro |
Solo entrada de texto | Prueba el modelo Gemini 1.5 Pro |
Gemini 1.5 Flash |
Solo entrada de texto | Prueba el modelo Gemini 1.5 Flash |
Gemini 1.0 Pro |
Solo entrada de texto | Prueba el modelo Gemini 1.0 Pro |
Gemini 2.0 Flash |
Texto, código, imágenes, audio, video, video con audio, PDF No admite la recuperación dinámica. Para obtener más información, consulta Consideraciones. |
Prueba el modelo Gemini 2.0 Flash |
Idiomas compatibles
Para obtener una lista de los idiomas admitidos, consulta Idiomas.
Cómo fundamentar tu modelo con la Búsqueda de Google
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 la 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 no es estrictamente necesaria la fundamentación; 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 fundamentada "¿Quién ganó el último Gran Premio de Fórmula 1?" 0.97 Requiere que la Búsqueda de Google genere una respuesta 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 en 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 basa 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 deGoogle Cloud para obtener ayuda.
Solo los modelos Gemini 1.0 y Gemini 1.5 admiten la recuperación dinámica. Los modelos de Gemini 2.0 no admiten la recuperación dinámica.
Console
Para usar Grounding with Google Search con Vertex AI Studio, sigue estos pasos:
- En la consola de Google Cloud, ve a la página Generative AI Studio.
- Haz clic en la pestaña Freeform.
- En el panel lateral, haz clic en el botón de activación Fundamentar las respuestas del modelo.
- Haz clic en Personalizar y establece la Búsqueda de Google como la fuente.
- 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.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
LOCATION: Es la región para procesar la solicitud.
PROJECT_ID: Es el ID de tu proyecto.
MODEL_ID: El ID del modelo multimodal. Solo los modelos Gemini 1.0 y Gemini 1.5 admiten la recuperación dinámica. Los modelos de Gemini 2.0 no admiten la recuperación dinámica.
TEXT: Las instrucciones de texto que se incluirán en el mensaje.
DYNAMIC_THRESHOLD: Es un campo opcional para establecer el umbral que invoca la configuración de recuperación dinámica. Es un valor de punto flotante en el rango
[0,1]
. Si no estableces el campodynamicThreshold
, el valor del umbral se establece de forma predeterminada en0.7
.
const {VertexAI} = require('@google-cloud/vertexai');
// Initialize Vertex with your Cloud project and location
const vertex_ai = new VertexAI({project: PROJECT_ID, location: LOCATION});
const model = MODEL_ID;
// Instantiate the models
const generativeModel = vertex_ai.preview.getGenerativeModel({
model: model,
generationConfig: {
'maxOutputTokens': 8192,
'temperature': 1,
'topP': 0.95,
},
safetySettings: [
{
'category': 'HARM_CATEGORY_HATE_SPEECH',
'threshold': 'OFF',
},
{
'category': 'HARM_CATEGORY_DANGEROUS_CONTENT',
'threshold': 'OFF',
},
{
'category': 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
'threshold': 'OFF',
},
{
'category': 'HARM_CATEGORY_HARASSMENT',
'threshold': 'OFF',
}
],
tools: [
{
googleSearchRetrieval: {
dynamicRetrievalConfig: {
mode: "MODE_DYNAMIC",
dynamicThreshold: DYNAMIC_THRESHOLD
}
},
},
],
});
async function generateContent() {
const req = {
contents: [
{role: 'user', parts: [{text: `TEXT`}]}
],
};
const streamingResp = await generativeModel.generateContentStream(req);
for await (const item of streamingResp.stream) {
process.stdout.write('stream chunk: ' + JSON.stringify(item) + '\n');
}
process.stdout.write('aggregated response: ' + JSON.stringify(await streamingResp.response));
}
generateContent();
SDK de Vertex AI para 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 del SDK de Vertex AI de referencia de la API de Vertex para Python.
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. Solo los modelos Gemini 1.0 y Gemini 1.5 admiten la recuperación dinámica. Los modelos de Gemini 2.0 no admiten la recuperación dinámica.
- 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": { "..." } }
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.
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 le impide ofrecer opciones alternativas de motor de búsqueda, 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 dichos 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.
¿Qué sigue?
- Para obtener información sobre cómo enviar solicitudes de instrucciones de chat, consulta Chat de varios turnos.
- Para obtener información sobre las prácticas recomendadas de IA responsable y los filtros de seguridad de Vertex AI, consulta Prácticas recomendadas de seguridad.
- Para obtener información sobre cómo fundamentar los modelos de PaLM, consulta Fundamentación en Vertex AI