Menu Docs
Página inicial do Docs
/
Atlas
/ / /

Use extensões de IA do Vertex para queries do MongoDB em linguagem natural

Observação

As extensões Vertex AI estão em versão prévia e sujeitas a alterações. Entre em contato com seu representante do Google Cloud para aprender como acessar este recurso.

Além de usar a Vertex AI com o MongoDB Vector Search para implementar o RAG, você pode usar o Vertex AI Extensions para personalizar ainda mais como você usa os modelos da Vertex AI para interagir com o Atlas. Neste tutorial, você cria uma extensão Vertex AI que permite consultar seus dados no Atlas em tempo real usando linguagem natural.

Diagrama do fluxo de trabalho com extensões Vertex AI e MongoDB Atlas
clique para ampliar

Este tutorial utiliza os seguintes componentes para habilitar consultas em linguagem natural com o Atlas:

  • SDK do Vertex AI do Google Cloud Platform para gerenciar modelos de IA e habilitar extensões personalizadas para o Vertex AI. Este tutorial utiliza o Gêmeos 1.5 Modelo Pro.

  • Google Cloud Run para implantar uma função que serve como um ponto de extremidade de API entre o Vertex AI e o Atlas.

  • Especificação OpenAPI 3 para a API do MongoDB para definir como as queries de linguagem natural são mapeadas para operações do MongoDB. Para saber mais, consulte Especificação OpenAPI.

  • Vertex AI Extensions para permitir a interação em tempo real com o Atlas a partir da Vertex AI e configurar como as queries de linguagem natural são processadas.

  • Google Cloud Secrets Manager para armazenar suas chaves de API do MongoDB.

Observação

Para obter instruções detalhadas de código e configuração, consulte o repositório do GitHub para este exemplo.

Antes de começar, você deve ter o seguinte:

  • Uma conta do MongoDB Atlas. Para cadastrar-se, use o Google Cloud Marketplace ou registre uma nova conta.

  • Um cluster do Atlas com o conjunto de dados de amostra carregado. Para saber mais, consulte Criar um cluster.

  • Um projetodo Google Cloud Platform.

  • Um bucket do Google Cloud Storage para armazenar a especificação do OpenAPI.

  • As seguintes APIs habilitadas para seu projeto:

    • API de construção na nuvem

    • API de funções da nuvem

    • API de registro na nuvem

    • API do Cloud Pub/Sub

  • Um ambiente Colab Enterprise.

Nesta seção, você cria uma função do Google Cloud Run que serve como um ponto de extremidade da API entre a Extensão Vertex AI e seu cluster Atlas. A função lida com a autenticação, conecta-se ao seu cluster do Atlas e realiza operações de banco de dados com base nas solicitações do Vertex AI.

1

No console da Google Cloud Platform, abra a página Cloud Run e clique em Write a function.

2
  1. Especifique um nome de função e região do Google Cloud Platform onde você deseja implantar sua função.

  2. Selecione a versão mais recente de Python disponível como Runtime.

  3. No site Authentication section, selecione Allow unauthenticated invocations.

  4. Use os valores padrão para as configurações restantes e clique em Next.

Para obter etapas de configuração detalhadas, consulte a documentação do Cloud Run.

3

Cole o seguinte código em seus respectivos arquivos:

4
  1. Renomeie o Entry Point como mongodb_crud.

  2. Clique em Deploy para implantar a função.

  3. Copie e armazene o ponto de extremidade HTTPS para acionar a função da nuvem localmente.

  4. Navegue até a página Details da função e copie e armazene o nome da conta de serviço utilizado pela função.

Nesta seção, você cria uma extensão Vertex AI que habilita consultas de linguagem natural em seus dados no Atlas usando o Gemini 1.5 Modelo Pro. Esta extensão usa uma especificação OpenAPI e a função Cloud Run que você criou para mapear a linguagem natural para operações de banco de dados e consultar seus dados no Atlas.

Para implementar esta extensão, você utiliza um notebook Python interativo, que permite executar trechos de código Python individualmente. Para este tutorial, você cria um notebook chamado mongodb-vertex-ai-extension.ipynb em um ambiente Colab Enterprise.

Copie e cole o código a seguir no seu notebook.

1
  1. Autentique sua conta do Google Cloud e defina o ID do grupo.

    from google.colab import auth
    auth.authenticate_user("GCP project id")
    !gcloud config set project {"GCP project id"}
  2. Instale as dependências necessárias.

    !pip install --force-reinstall --quiet google_cloud_aiplatform
    !pip install --force-reinstall --quiet langchain==0.0.298
    !pip install --upgrade google-auth
    !pip install bigframes==0.26.0
  3. Reinicie o kernel.

    import IPython
    app = IPython.Application.instance()
    app.kernel.do_shutdown(True)
  4. Defina as variáveis de ambiente.

    Substitua os valores de amostra pelos valores corretos que correspondem ao seu projeto.

    import os
    # These are sample values; replace them with the correct values that correspond to your project
    os.environ['PROJECT_ID'] = 'gcp project id' # GCP Project ID
    os.environ['REGION'] = "us-central1" # Project Region
    os.environ['STAGING_BUCKET'] = "gs://vertexai_extensions" # GCS Bucket location
    os.environ['EXTENSION_DISPLAY_HOME'] = "MongoDb Vertex API Interpreter" # Extension Config Display Name
    os.environ['EXTENSION_DESCRIPTION'] = "This extension makes api call to mongodb to do all crud operations" # Extension Config Description
    os.environ['MANIFEST_NAME'] = "mdb_crud_interpreter" # OPEN API Spec Config Name
    os.environ['MANIFEST_DESCRIPTION'] = "This extension makes api call to mongodb to do all crud operations" # OPEN API Spec Config Description
    os.environ['OPENAPI_GCS_URI'] = "gs://vertexai_extensions/mongodbopenapispec.yaml" # OPEN API GCS URI
    os.environ['API_SECRET_LOCATION'] = "projects/787220387490/secrets/mdbapikey/versions/1" # API KEY secret location
    os.environ['LLM_MODEL'] = "gemini-1.5-pro" # LLM Config
2

Baixe a especificação da Open API do GitHub e faça upload do arquivo YAML para o bucket do Google Cloud Storage.

from google.cloud import aiplatform
from google.cloud.aiplatform.private_preview import llm_extension
PROJECT_ID = os.environ['PROJECT_ID']
REGION = os.environ['REGION']
STAGING_BUCKET = os.environ['STAGING_BUCKET']
aiplatform.init(
project=PROJECT_ID,
location=REGION,
staging_bucket=STAGING_BUCKET,
)
3

O seguinte manifesto é um objeto JSON estruturado que configura componentes principais para a extensão. Substitua <service-account> pelo nome da conta de serviço usado pela função do Cloud Run.

from google.cloud import aiplatform
from vertexai.preview import extensions
mdb_crud = extensions.Extension.create(
display_name = os.environ['EXTENSION_DISPLAY_HOME'],
# Optional.
description = os.environ['EXTENSION_DESCRIPTION'],
manifest = {
"name": os.environ['MANIFEST_NAME'],
"description": os.environ['MANIFEST_DESCRIPTION'],
"api_spec": {
"open_api_gcs_uri": (
os.environ['OPENAPI_GCS_URI']
),
},
"authConfig": {
"authType": "OAUTH",
"oauthConfig": {"service_account": "<service-account>"}
},
},
)
mdb_crud
4

Valide a extensão e imprima o esquema e os parâmetros da operação:

print("Name:", mdb_crud.gca_resource.name)
print("Display Name:", mdb_crud.gca_resource.display_name)
print("Description:", mdb_crud.gca_resource.description)
import pprint
pprint.pprint(mdb_crud.operation_schemas())

No Vertex AI, clique em Extensions no menu de navegação à esquerda. Sua nova extensão chamada MongoDB Vertex API Interpreter aparece na lista de extensões.

Os exemplos a seguir demonstram duas consultas de linguagem natural diferentes que você pode usar para consultar seus dados no Atlas:

Voltar

Google Vertex AI

Nesta página