Installer AlloyDB AI dans AlloyDB Omni

Cette page vous explique comment installer AlloyDB Omni et intégrer AlloyDB AI.

AlloyDB AI est une suite de fonctionnalités incluses avec AlloyDB Omni qui vous permet de créer des applications d'IA générative d'entreprise. Pour en savoir plus sur les fonctionnalités d'IA/ML d'AlloyDB, consultez Créer des applications d'IA générative.

AlloyDB Omni avec AlloyDB AI vous permet d'interroger des modèles de ML distants pour travailler avec des prédictions en ligne et des embeddings de texte générés à partir de modèles de ML. AlloyDB Omni avec AlloyDB AI peut également traiter des représentations vectorielles continues à partir d'autres contenus, tels qu'une image, par exemple, si vous utilisez l'interface google_ml.predict_row et effectuez la traduction vous-même dans la requête.

En fonction de l'emplacement où vous souhaitez installer AlloyDB Omni avec l'IA AlloyDB, sélectionnez l'une des options suivantes:

Configurer votre instance AlloyDB Omni pour interroger des modèles distants

AlloyDB Omni peut interroger des modèles de ML distants à l'aide de l'extension google_ml_integration.

Si vous souhaitez interroger des modèles Vertex AI, vous pouvez configurer le compte de service AlloyDB Omni avec Vertex AI avant d'installer AlloyDB Omni.

Pour configurer AlloyDB Omni afin de interroger des modèles distants, procédez comme suit:

  1. Créez un compte de service avecGoogle Cloud.

  2. Créez une clé de compte de service au format JSON, puis téléchargez-la. Notez la clé du compte de service, car vous l'utiliserez plus tard dans cette procédure.

  3. Copiez la clé du compte de service que vous avez créée dans KEY_PATH. Le chemin de clé doit être un chemin sur votre hôte accessible et détenu par l'utilisateur qui exécutera votre conteneur AlloyDB Omni.

  4. Activez l'API Vertex AI dans votre Google Cloud projet.

    gcloud services enable aiplatform.googleapis.com
    
  5. Ajoutez les autorisations IAM (Identity and Access Management) Vertex AI au projet et au compte de service appropriés.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_ID" \
        --role="roles/aiplatform.user"
    

    Remplacez les éléments suivants :

    • PROJECT_ID: ID de votre Google Cloud projet.

    • SERVICE_ACCOUNT_ID: ID du compte de service que vous avez créé à l'étape 1. Cela inclut le suffixe @PROJECT_ID.iam.gserviceaccount.com complet. Exemple : my-service@my-project.iam.gserviceaccount.com.

Configurer AlloyDB AI pour AlloyDB Omni

Pour installer AlloyDB Omni et intégrer AlloyDB AI, procédez comme suit en tant qu'utilisateur racine:

  1. Suivez toutes les étapes décrites dans la section Configurer AlloyDB Omni pour interroger des modèles cloud.

  2. Si un conteneur du même nom existe déjà, arrêtez-le et supprimez-le.

    Docker

    docker stop CONTAINER_NAME
    docker rm CONTAINER_NAME

    Docker

    docker stop CONTAINER_NAME
    docker rm CONTAINER_NAME

    Podman

    podman stop CONTAINER_NAME
    podman rm CONTAINER_NAME

    Podman

    podman stop CONTAINER_NAME
    podman rm CONTAINER_NAME

    Remplacez les éléments suivants :

    • CONTAINER_NAME: nom à attribuer à votre conteneur AlloyDB Omni dans le registre de conteneurs de votre machine hôte. Exemple :my-omni-1
  3. Démarrez un nouveau conteneur AlloyDB Omni en installant la clé dans le conteneur.

    Docker

    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v "KEY_PATH":/etc/postgresql/private-key.json \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest
    

    Docker

    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v "KEY_PATH":/etc/postgresql/private-key.json \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:latest
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v "KEY_PATH":/etc/postgresql/private-key.json \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest
    

    Podman

    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -v "KEY_PATH":/etc/postgresql/private-key.json \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:latest
    

    Remplacez les variables suivantes :

    • CONTAINER_NAME: nom à attribuer à votre conteneur AlloyDB Omni dans le registre de conteneurs de votre machine hôte. Exemple :my-omni-1
    • NEW_PASSWORD: mot de passe attribué à l'utilisateur postgres du nouveau conteneur après sa création. Notez que NEW_PASSWORD ne définira un nouveau mot de passe que lorsque DATA_DIR est un nouvel emplacement.
    • DATA_DIR: chemin d'accès au répertoire hôte dans lequel vos données sont stockées.
    • KEY_PATH: chemin d'accès au fichier de clé de votre compte de service.
    • HOST_PORT: port TCP sur la machine hôte auquel le conteneur doit publier son propre port 5432. Pour utiliser également le port par défaut PostgreSQL sur la machine hôte, spécifiez 5432.
  4. Rendre le fichier de clé lisible par l'utilisateur postgres dans le conteneur AlloyDB Omni.

    Docker

    docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
    docker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json

    Docker

    docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
    docker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json

    Podman

    podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
    podman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json

    Podman

    podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
    podman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json

    Remplacez les variables suivantes :

    • CONTAINER_NAME: nom à attribuer à votre conteneur AlloyDB Omni dans le registre de conteneurs de votre machine hôte. Exemple :my-omni-1
    • KEY_PATH: chemin d'accès à l'hôte pour votre fichier de clé de compte de service.
  5. Mettez à jour AlloyDB Omni en ajoutant les options de configuration suivantes.

    Docker

    docker exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf
    omni_enable_ml_agent_process = 'on'
    omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'
    EOF"
    

    Docker

    docker exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf
    omni_enable_ml_agent_process = 'on'
    omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'
    EOF"
    

    Podman

    podman exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf
    omni_enable_ml_agent_process = 'on'
    omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'
    EOF"
    

    Podman

    podman exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf
    omni_enable_ml_agent_process = 'on'
    omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'
    EOF"
    

    Remplacez les variables suivantes :

    • CONTAINER_NAME: nom à attribuer à votre conteneur AlloyDB Omni dans le registre de conteneurs de votre machine hôte. Exemple :my-omni-1
  6. Redémarrez le conteneur AlloyDB Omni.

    Docker

    docker restart CONTAINER_NAME
    

    Docker

    docker restart CONTAINER_NAME
    

    Podman

    podman restart CONTAINER_NAME
    

    Podman

    podman restart CONTAINER_NAME
    

    Remplacez la variable suivante :

    • CONTAINER_NAME: nom à attribuer à votre conteneur AlloyDB Omni dans le registre de conteneurs de votre machine hôte. Exemple :my-omni-1

Se connecter à l'aide de psql conteneurisé

Pour vous connecter au serveur de base de données AlloyDB Omni à l'aide de sa propre copie conteneurisée de psql, exécutez la commande suivante:

Docker

docker exec -it CONTAINER_NAME psql -U postgres

Docker

docker exec -it CONTAINER_NAME psql -U postgres

Podman

podman exec -it CONTAINER_NAME psql -U postgres

Podman

podman exec -it CONTAINER_NAME psql -U postgres

Remplacez la variable suivante :

  • CONTAINER_NAME: nom à attribuer à votre conteneur AlloyDB Omni dans le registre de conteneurs de votre machine hôte. Exemple :my-omni-1

Vérifier l'installation d'AlloyDB Omni avec AlloyDB AI

Pour vérifier que votre installation a réussi et qu'elle utilise la prédiction du modèle, saisissez ce qui suit:

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

SELECT array_dims(embedding('text-embedding-005', 'AlloyDB AI')::real[]);

La sortie ressemble à ceci :

array_dims
------------
[1:768]
(1 row) 

Dans la requête précédente, l'appel embedding() génère des embeddings pour le texte d'entrée AlloyDB AI. array_dims renvoie les dimensions du tableau renvoyé par embedding(). Étant donné que le modèle text-embedding-005 renvoie une sortie avec 768 dimensions, la sortie est [768].

Étape suivante