Se connecter aux données d'AlloyDB pour PostgreSQL (aperçu)

Vous pouvez connecter votre instance AlloyDB à Gemini Enterprise pour accéder à vos données en temps réel.

Par rapport à l'importation depuis AlloyDB, la connexion présente les avantages suivants :

  • Vous n'avez pas besoin d'importer, d'indexer ni de dupliquer les données.
  • Fraîcheur maximale des données.
  • Aucuns frais supplémentaires d'indexation et de stockage.
  • Il n'est pas nécessaire d'aplatir les données structurées en enregistrements uniformes.

Voici quelques inconvénients de la connexion par rapport à l'importation :

  • Cette approche n'accepte que les requêtes structurées, et non les requêtes sémantiques ou semi-sémantiques.
  • La configuration est légèrement plus complexe que l'importation des données.

Limites

La connexion à AlloyDB présente les limites suivantes :

  • Gemini Enterprise est compatible avec le contrôle des accès au niveau des objets de base de données, tels que les tables et les colonnes, mais pas au niveau des utilisateurs. Tous les utilisateurs ayant accès à votre application Gemini Enterprise peuvent voir les mêmes données.
  • Vous pouvez créer un data store AlloyDB à l'aide de l'API, mais pas de la console Google Cloud .

Avant de commencer

La connexion à AlloyDB est disponible en version preview avec une liste d'autorisation. Pour utiliser cette fonctionnalité, inscrivez-vous à l'aide du formulaire suivant : Activer/Désactiver l'utilisation de Gemini Enterprise et la connexion aux données d'AlloyDB

Après votre inscription, attendez de recevoir la confirmation de l'activation avant de suivre les instructions de cette page.

Configurer le langage naturel AlloyDB AI

Ce connecteur s'appuie sur le langage naturel AlloyDB AI dans AlloyDB, qui traduit les requêtes en langage naturel en requêtes SQL.

Avant de vous connecter, configurez le langage naturel AlloyDB AI dans votre base de données en suivant les étapes décrites dans Générer des requêtes SQL qui répondent à des questions en langage naturel de la documentation AlloyDB.

Notez que l'ajout de modèles en langage naturel AlloyDB AI (un ensemble organisé de questions en langage naturel avec les requêtes SQL correspondantes) est particulièrement utile pour la qualité. Lorsque vous ajoutez des modèles, Google vous recommande de procéder comme suit :

  • Utilisez ORDER BY pour éviter le non-déterminisme. Exemple : SELECT customers.id FROM customers ORDER BY customers.id;.

Configurer l'authentification entre Gemini Enterprise et AlloyDB

Gemini Enterprise accède à AlloyDB à l'aide d'un compte de service dédié et d'un utilisateur de base de données dans votre instance AlloyDB. Avec cette approche, chaque utilisateur Gemini Enterprise peut voir les mêmes données, sans contrôle d'accès spécifique à l'utilisateur.

Un compte de service est utilisé pour se connecter à votre instance AlloyDB et interagir avec elle. Pour ce faire, vous devez configurer les paramètres Identity and Access Management (IAM) dans le Google Cloud projet où réside votre instance de base de données.

Pour configurer l'authentification, procédez comme suit :

  1. Accédez à la page de configuration IAM du projet qui héberge votre instance AlloyDB.
  2. Attribuez le rôle Utilisateur de base de données Cloud AlloyDB au principal suivant : service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com

    Remplacez PROJECT_NUMBER par le numéro du projet Google Cloud dans lequel vous utilisez Gemini Enterprise.

  3. Dans votre instance AlloyDB, créez un utilisateur de base de données qui sera utilisé par Gemini Enterprise pour exécuter des requêtes SQL.

    Il est très important que vous accordiez à cet utilisateur un accès en lecture seule, et uniquement pour les tables, les vues et les colonnes qui doivent être accessibles depuis Gemini Enterprise. Vous vous assurez ainsi que :

    • Les requêtes de Gemini Enterprise ne peuvent pas modifier ni supprimer vos données. Gemini Enterprise est conçu pour lire uniquement les données de votre base de données et ne rien modifier. Toutefois, Google ne peut pas exclure totalement la possibilité que l'IA génère des requêtes d'écriture involontaires.

    • Les utilisateurs de Gemini Enterprise ne peuvent voir que les données auxquelles ils sont censés avoir accès.

      Exemple :

      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;
      

      Lorsque vous associez Gemini Enterprise à AlloyDB, indiquez le nom d'utilisateur et le mot de passe dans les champs Utilisateur et Mot de passe de alloydbConnectionConfig.

Associer Gemini Enterprise à AlloyDB

Pour connecter votre instance AlloyDB, procédez comme suit :

  1. Créez un data store dans Gemini Enterprise avec les détails de votre connexion AlloyDB à l'aide de l'API, y compris federatedSearchConfig.alloyDbConfig.

    L'exemple suivant :

    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"]
    }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous utilisez Gemini Enterprise.
    • LOCATION : emplacement de votre data store. Il doit s'agir du même emplacement que celui de votre instance Gemini Enterprise.

    • DATA_STORE_ID : ID du data store que vous souhaitez créer. Cet ID ne peut contenir que des lettres minuscules, des chiffres, des traits de soulignement et des traits d'union.

    • DATA_STORE_NAME : nom à afficher du data store que vous souhaitez créer.

    • INSTANCE_PATH : chemin d'accès à votre instance AlloyDB, au format projects/.../locations/.../clusters/.../instances/....

    • DATABASE_NAME : ID de la base de données AlloyDB.

    • DATABASE_USER_NAME : ID de l'utilisateur de la base de données AlloyDB.

    • DATABASE_USER_PASSWORD : mot de passe de l'utilisateur de la base de données AlloyDB.

    • NL_CONFIG_ID : ID de la configuration du langage naturel AlloyDB AI.

  2. Associez votre data store à une application Gemini Enterprise existante ou créez-en une, puis sélectionnez votre connecteur en suivant les étapes décrites dans Créer une application.

  3. Pour prévisualiser l'apparence de vos résultats de recherche une fois votre application configurée, consultez Prévisualiser les résultats de recherche.