Conéctate a los datos de AlloyDB para PostgreSQL (vista previa)

Puedes conectar tu instancia de AlloyDB a Gemini Enterprise, lo que permite el acceso en tiempo real a tus datos.

En comparación con la importación desde AlloyDB, la conexión tiene las siguientes ventajas:

  • Evita la necesidad de importar, indexar y duplicar datos.
  • Máxima actualidad de los datos
  • No hay costos adicionales de indexación ni almacenamiento.
  • No es necesario aplanar los datos estructurados en registros uniformes.

Ten en cuenta las siguientes desventajas de la conexión en comparación con la importación:

  • Este enfoque solo admite consultas estructuradas, no consultas semánticas o semisemánticas.
  • La configuración es un poco más compleja en comparación con la importación de los datos.

Limitaciones

La conexión a AlloyDB tiene las siguientes limitaciones:

  • Gemini Enterprise admite el control de acceso a nivel de los objetos de la base de datos, como las tablas y las columnas, pero no a nivel de cada usuario. Todos los usuarios con acceso a tu app de Gemini Enterprise pueden ver los mismos datos.
  • La creación de un almacén de datos de AlloyDB se admite a través de la API, no a través de la consola de Google Cloud .

Antes de comenzar

La conexión a AlloyDB se encuentra en versión preliminar con una lista de entidades permitidas. Para usar esta función, regístrate con el siguiente formulario: Habilita o inhabilita el uso de Gemini Enterprise y la conexión a datos de AlloyDB

Después de registrarte, espera a recibir la confirmación de habilitación antes de seguir las instrucciones de esta página.

Configura el lenguaje natural de AlloyDB AI

Este conector se basa en el lenguaje natural de AlloyDB AI en AlloyDB, que traduce las consultas en lenguaje natural a consultas en SQL.

Antes de conectarte, configura el lenguaje natural de AlloyDB AI en tu base de datos siguiendo los pasos que se indican en Genera consultas en SQL que respondan preguntas en lenguaje natural en la documentación de AlloyDB.

Ten en cuenta que agregar plantillas en lenguaje natural de AlloyDB AI (un conjunto seleccionado de preguntas en lenguaje natural con las consultas en SQL correspondientes) es particularmente útil para la calidad. Cuando agregues plantillas, Google recomienda lo siguiente:

  • Usa ORDER BY para evitar el no determinismo. Por ejemplo: SELECT customers.id FROM customers ORDER BY customers.id;.

Configura la autenticación entre Gemini Enterprise y AlloyDB

Gemini Enterprise accede a AlloyDB con una cuenta de servicio dedicada y un usuario de base de datos en tu instancia de AlloyDB. Con este enfoque, todos los usuarios de Gemini Enterprise pueden ver los mismos datos, sin control de acceso específico para el usuario.

Se usa una cuenta de servicio para conectarse a tu instancia de AlloyDB y, luego, interactuar con ella. Para habilitar esta opción, debes configurar los parámetros de configuración de Identity and Access Management (IAM) en el proyecto Google Cloud en el que reside tu instancia de base de datos.

Para configurar la autenticación, haz lo siguiente:

  1. Navega a la página de configuración de IAM del proyecto que aloja tu instancia de AlloyDB.
  2. Otorga el rol Usuario de base de datos de Cloud AlloyDB al siguiente principal: service-PROJECT_NUMBER@gcp-sa-discoveryengine.

    Reemplaza PROJECT_NUMBER por el número de proyecto Google Cloud en el que usas Gemini Enterprise.

  3. En tu instancia de AlloyDB, crea un usuario de la base de datos para que Gemini Enterprise lo use para ejecutar consultas de SQL.

    Es muy importante que le otorgues a este usuario acceso de solo lectura y solo para las tablas, las vistas y las columnas a las que se debe poder acceder desde Gemini Enterprise. Esto garantiza lo siguiente:

    • Las preguntas de Gemini Enterprise no pueden cambiar ni borrar tus datos. Gemini Enterprise está diseñado para solo leer datos de tu base de datos y no cambiar nada, pero Google no puede excluir por completo la posibilidad de que la IA genere consultas de escritura no deseadas.

    • Los usuarios de Gemini Enterprise solo pueden ver los datos que deberían ver.

      Por ejemplo:

      CREATE ROLE USER_NAME WITH LOGIN PASSWORD 'PASSWORD';
      GRANT SELECT ON TABLE "public"."TABLE_NAME_1" TO USER_NAME;
      GRANT SELECT ON TABLE "public"."TABLE_NAME_2" TO USER_NAME;
      

      Cuando vincules Gemini Enterprise con AlloyDB, proporciona el nombre de usuario y la contraseña en los campos Usuario y Contraseña de alloydbConnectionConfig.

Vincula Gemini Enterprise con AlloyDB

Para conectar tu instancia de AlloyDB, sigue estos pasos:

  1. Crea un almacén de datos en Gemini Enterprise con los detalles de conexión de AlloyDB a través de la API, incluido federatedSearchConfig.alloyDbConfig.

    En el ejemplo siguiente, se realizan estas acciones:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -H "X-Goog-User-Project: PROJECT_ID" \
      "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" -d '{
      "displayName": "DATA_STORE_NAME",
      "federatedSearchConfig": {
        "alloyDbConfig": {
          "alloydbConnectionConfig": {
            "instance": "INSTANCE_PATH",
            "database": "DATABASE_NAME",
            "user": "DATABASE_USER_NAME",
            "password": "DATABASE_USER_PASSWORD",
            "authMode": "AUTH_MODE_SERVICE_ACCOUNT"
          },
          "alloydb_ai_nl_config": { "nlConfigId": "NL_CONFIG_ID" }
        }
      },
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"]
    }'
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto en el que usas Gemini Enterprise.
    • LOCATION: Es la ubicación de tu almacén de datos. Debe ser la misma ubicación que tu instancia de Gemini Enterprise.

    • DATA_STORE_ID: Es el ID del almacén de datos que deseas crear. Este ID solo puede contener letras en minúscula, dígitos, guiones bajos y guiones.

    • DATA_STORE_NAME: Es el nombre visible del almacén de datos que deseas crear.

    • INSTANCE_PATH: Es la ruta de acceso a tu instancia de AlloyDB, con el formato projects/.../locations/.../clusters/.../instances/....

    • DATABASE_NAME: Es el ID de la base de datos de AlloyDB.

    • DATABASE_USER_NAME: Es el ID del usuario de la base de datos de AlloyDB.

    • DATABASE_USER_PASSWORD: Es la contraseña del usuario de la base de datos de AlloyDB.

    • NL_CONFIG_ID: Es el ID de la configuración en lenguaje natural de AlloyDB AI.

  2. Adjunta tu almacén de datos a una app existente de Gemini Enterprise o crea una app nueva y selecciona tu conector siguiendo los pasos que se indican en Crea una app.

  3. Para obtener una vista previa de cómo aparecerán los resultados de la búsqueda después de configurar tu app, consulta Obtén una vista previa de los resultados de la búsqueda.