API Grounding

O embasamento permite que os modelos conectem a saída a fontes de informação confiáveis. O procedimento de embasamento garante que a saída do modelo seja vinculada a dados específicos, minimizando as alucinações artificiais. A Pesquisa Google pode ser usada para embasamento com dados da Web disponíveis publicamente, ou os usuários podem utilizar os próprios dados da Vertex AI para Pesquisa como um repositório de dados.

Modelos compatíveis:

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

Limitações

  • Compatível com dados em inglês.
  • O embasamento está disponível apenas para respostas de texto.

Lista de parâmetros

Para ativar o embasamento, especifique um tool de recuperação na solicitação. As opções são estas:

  • GoogleSearchRetrieval: usa dados públicos da Web para embasamento.
  • Retrieval: usa a Vertex AI para Pesquisa para se conectar a fontes de dados particulares.

GoogleSearchRetrieval

Baseie a resposta com dados públicos. Inclua a ferramenta google_search_retrieval na solicitação. Nenhum parâmetro adicional é necessário.

Recuperação

Embasamento com dados particulares usando a Vertex AI para Pesquisa. Define uma ferramenta de recuperação que o modelo pode chamar para acessar conhecimento externo.

Parâmetros

source

VertexAISearch

Definido para usar fontes de dados com a tecnologia da Vertex AI para Pesquisa.

VertexAISearch

Extrair do repositório de dados da Vertex AI para Pesquisa para embasamento. Para mais informações, consulte Vertex AI para Pesquisa e Conversação.

Parâmetros

datastore

string

Um ID de recurso de repositório de dados totalmente qualificado para a Vertex AI para Pesquisa.projects/<>/locations/<>/collections/<>/dataStores/<>

Examples

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

Resposta empírica em dados públicos da Web

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${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)

Resposta em base em dados particulares usando a Vertex AI para Pesquisa

Pré-requisitos: primeiro é preciso Criar um repositório de dados de pesquisa .

Defina o caminho do recurso do repositório de dados para a variável DATASTORE a ser usada neste exemplo.

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${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)

Mais informações

Para consultar a documentação detalhada, acesse: