En la IA generativa, los fundamentos son la capacidad de conectar el resultado del modelo con fuentes de información verificables. Si proporcionas modelos con acceso a fuentes de datos específicas, los fundamentos conectan su resultado a estos datos y reducen las posibilidades de inventar contenido.
Con Vertex AI, puedes fundamentar los resultados del modelo de las siguientes maneras:
- Fundamentación con la Búsqueda de Google: Fundamenta un modelo con datos web disponibles públicamente.
- Fundamenta en tus propios datos: Fundamenta un modelo con tus propios datos de Vertex AI Search como almacén de datos (versión preliminar).
Para obtener más información sobre la puesta a tierra, consulta Descripción general de la puesta a tierra.
Modelos compatibles
Modelo | Versión |
---|---|
Gemini 1.5 Pro solo con entrada de texto | gemini-1.5-pro-002 gemini-1.5-pro-001 |
Gemini 1.5 Flash solo con entrada de texto | gemini-1.5-flash-002 gemini-1.5-flash-001 |
Gemini 1.0 Pro solo con entrada de texto | gemini-1.0-pro-001 gemini-1.0-pro-002 |
Limitaciones
La conexión a tierra solo está disponible para las solicitudes de texto.
Ejemplo de sintaxis
En este ejemplo, se muestra la sintaxis para conectar a tierra un modelo y especificar el idioma compatible. Para conocer los idiomas admitidos, consulta Idiomas.
Especifica valores para las siguientes variables:
- PROMPT_TEXT: Es la solicitud de texto que envías a un modelo de lenguaje para recibir una respuesta.
- SYSTEM_INSTRUCTION: Un conjunto de instrucciones que le indica al modelo cómo comportarse y responder a las instrucciones.
- FACT_TEXT_1: Es la información verificada que usa el modelo para generar una respuesta.
- TITLE_1: Es el nombre de tu fuente de información verificada.
- URI_1: Es una cadena que identifica de forma única una ubicación de tu fuente de información verificada.
- AUTHOR_1: Es el proveedor de la información verificada que usa el modelo para generar una respuesta.
- FACT_TEXT_2: Es la información verificada que usa el modelo para generar una respuesta.
- TITLE_2: Es el nombre de tu fuente de información verificada.
- URI_2: Es una cadena que identifica de forma única una ubicación de tu fuente de información verificada.
- FACT_TEXT_3: Es la información verificada que usa el modelo para generar una respuesta.
- TITLE_3: Es el nombre de tu fuente de información verificada.
- URI_3: Es una cadena que identifica de forma única una ubicación de tu fuente de información verificada.
- PROJECT_NUMBER: Identifica de forma exclusiva tu Google Cloud proyecto, que contiene tus recursos.
- APP_ID_1: Es una aplicación que interactúa con el modelo.
- APP_ID_2: Es una aplicación que interactúa con el modelo.
- MODEL_ID: Identifica el modelo con el que interactúa tu aplicación.
- LANGUAGE_CODE: Identifica el lenguaje que se usa para generar una respuesta fundamentada.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/global:generateGroundedContent" \ -d ' { "contents": [ { "role": "user", "parts": [ { "text": "PROMPT_TEXT" } ] } ], "systemInstruction": { "parts": { "text": "SYSTEM_INSTRUCTION" } }, "groundingSpec": { "groundingSources": [ { "inlineSource": { "groundingFacts": [ { "factText": "FACT_TEXT_1", "attributes": { "title": "TITLE_1", "uri": "URI_1", "author": "AUTHOR_1" } } ] } }, { "inlineSource": { "groundingFacts": [ { "factText": "FACT_TEXT_2", "attributes": { "title": "TITLE_2", "uri": "URI_2" } }, { "factText": "FACT_TEXT_3", "attributes": { "title": "TITLE_3", "uri": "URI_3" } } ] } }, { "searchSource": { "servingConfig": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID_1/servingConfigs/default_search" } }, { "searchSource": { "servingConfig": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID_2/servingConfigs/default_search" } } ] }, "generationSpec": { "modelId": "MODEL_ID", "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, }, "user_context": { "languageCode: "LANGUAGE_CODE" "latLng": { "latitude": 46.7, "longitude": 8.9 }, }'
Lista de parámetros
Consulta ejemplos para obtener detalles sobre la implementación.
GoogleSearchRetrieval
Basar la respuesta en datos públicos
Parámetros | |
---|---|
|
Obligatorio: Basarse en datos web disponibles públicamente |
Retrieval
Fundamenta la respuesta con datos privados de Vertex AI Search como almacén de datos. Define una herramienta de recuperación a la que el modelo puede llamar para acceder al conocimiento externo.
Parámetros | |
---|---|
|
Obligatorio: Fundamenta con fuentes de datos de Vertex AI Search. |
VertexAISearch
Parámetros | |
---|---|
|
Obligatorio: ID de recurso de almacén de datos completamente calificado de Vertex AI Search, en el siguiente formato: |
Ejemplos
Fundamenta la respuesta en datos web públicos con la Búsqueda de Google
Fundamenta la respuesta con datos públicos de la Búsqueda de Google. Incluye la herramienta google_search_retrieval
en la solicitud. No se requieren parámetros adicionales.
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": { "..." } }
Python
NodeJS
Java
Fundamenta la respuesta en datos privados con Vertex AI Search
Fundamenta la respuesta con datos de un almacén de datos de Vertex AI Search. Para obtener más información, consulta Compilador de agentes de Vertex AI.
Antes de fundamentar una respuesta con datos privados, crea un almacén de datos y una app de búsqueda.
ADVERTENCIA: Por el momento, esta interfaz de "puesta a tierra" no admite el "modo de fragmento" de Vertex AI Search.
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.
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": { "..." } }
Python
NodeJS
Java
¿Qué sigue?
Para obtener documentación detallada, consulta lo siguiente: