API de fundamentación

Los fundamentos permiten que los modelos conecten sus resultados con fuentes de información confiables. El procedimiento de fundamentación garantiza que el resultado del modelo esté vinculado a datos específicos, lo que minimiza las alucinaciones. La Búsqueda de Google se puede usar para los fundamentos con datos web disponibles de forma pública, o los usuarios pueden usar sus propios datos de Vertex AI Search como un almacén de datos.

Modelos compatibles:

  • Gemini 1.0 Pro
    • gemini-1.0-pro-001
    • gemini-1.0-pro-002

Limitaciones

  • Admite datos en inglés.
  • Los fundamentos solo están disponibles para las respuestas de texto.

Lista de parámetros

Para habilitar los fundamentos, especifica una tool de recuperación en tu solicitud. Las opciones son

  • GoogleSearchRetrieval: Usa datos web públicos para los fundamentos.
  • Retrieval: Usa Vertex AI Search para conectarse a fuentes de datos privadas.

GoogleSearchRetrieval

Fundamenta la respuesta con datos públicos. Incluye la herramienta de google_search_retrieval en la solicitud. No se requieren parámetros adicionales.

Recuperación

Fundamentos con datos privados a través de Vertex AI Search. Define una herramienta de recuperación a la que el modelo puede llamar para acceder al conocimiento externo.

Parámetros

source

VertexAISearch

Se configuró para usar fuentes de datos con la tecnología de Vertex AI Search.

VertexAISearch

Recupera el almacén de datos de Vertex AI Search para los fundamentos. Para obtener más información, consulta Compilador de agentes de Vertex AI.

Parámetros

datastore

string

Un ID de recurso de Datastore completamente calificado para Vertex AI Search.projects/<>/locations/<>/collections/<>/dataStores/<>

Ejemplos

  • PROJECT_ID = PROJECT_ID
  • REGION = us-central1
  • MODEL_ID = gemini-1.0-pro

Respuesta básica sobre datos web públicos

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  http://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:generateContent \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{
        "text": "What did Lincoln do for fun?"
      }]
    }],
    "tools": [{
      "googleSearchRetrieval": {}
    }]
  }'

Python

import vertexai
from vertexai.generative_models import GenerativeModel, Tool
from vertexai.preview import generative_models as preview_generative_models

vertexai.init(project=PROJECT_ID, location=REGION)

gemini_model = GenerativeModel(MODEL_ID)
google_search_tool = Tool.from_google_search_retrieval(
    google_search_retrieval=preview_generative_models.grounding.GoogleSearchRetrieval()
)

model_response = gemini_model.generate_content(
    "What did Lincoln do for fun?", tools=[google_search_tool]
)

print(model_response)

Respuesta fundamental sobre datos privados mediante Vertex AI Search

Requisitos: primero debes crear un almacén de datos de búsqueda .

Configura la ruta de acceso del recurso del almacén de datos a la variable DATASTORE para usar en este ejemplo.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  http://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:generateContent \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{
        "text": "How to make appointment to renew driving license?"
      }]
    }],
    "tools": [{
      "retrieval": {
        "vertexAiSearch": {
          "datastore": "'${DATASTORE}'"
        }
      }
    }]
  }'

Python

import vertexai
from vertexai.generative_models import GenerativeModel, Tool
from vertexai.preview import generative_models as preview_generative_models

vertexai.init(project=PROJECT_ID, location=REGION)

gemini_model = GenerativeModel(MODEL_ID)
vertex_search_tool = Tool.from_retrieval(
    retrieval=preview_generative_models.grounding.Retrieval(
        source=preview_generative_models.grounding.VertexAISearch(datastore=DATASTORE),
    )
)

model_response = gemini_model.generate_content(
    "How to make appointment to renew driving license?", tools=[vertex_search_tool]
)

print(model_response)

Explora más

Para obtener documentación detallada, consulta lo siguiente: