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 vivo 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.
  • Actualidad de los datos máxima
  • No hay costos adicionales de indexación ni almacenamiento.
  • No es necesario compactar los datos estructurados en registros uniformes.

Ten en cuenta las siguientes desventajas de conectar en comparación con importar:

  • Este enfoque solo admite consultas estructuradas, no semánticas ni semisemánticas.
  • La configuración es un poco más compleja que la importación de 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 tablas y columnas, pero no a nivel de 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 de la consola de Google Cloud .

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 en 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 el lenguaje natural de AlloyDB AI (un conjunto seleccionado de preguntas en lenguaje natural con las consultas en SQL correspondientes) es especialmente ú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 un control de acceso específico para cada usuario.

Se usa una cuenta de servicio para conectarse a tu instancia de AlloyDB y, también, interactuar con ella. Para habilitar esta opción, debes establecer la configuración de Identity and Access Management (IAM) en el proyecto de 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 de usuario de la base de datos de Cloud AlloyDB a la siguiente principal: service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com

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

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

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

    • Las consultas 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 se supone que deben 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 tu 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 la de 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 minúsculas, dígitos, guiones bajos y guiones.

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

    • INSTANCE_PATH: Es la ruta de acceso de tu instancia de AlloyDB, en 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: la contraseña del usuario de la base de datos de AlloyDB.

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

  2. Adjunta tu almacén de datos a una app de Gemini Enterprise existente 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.