Installer AlloyDB AI dans AlloyDB Omni

Sélectionnez une version de la documentation :

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

AlloyDB AI est une suite de fonctionnalités incluses dans AlloyDB Omni qui vous permettent de créer des applications d'IA générative pour les entreprises. 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 à distance 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 les embeddings vectoriels provenant d'autres contenus, comme une image, par exemple, si vous utilisez l'interface google_ml.predict_row et que vous effectuez vous-même la traduction dans la requête.

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

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

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

Pour configurer AlloyDB Omni afin d'interroger des modèles à distance, 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 et 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é de compte de service que vous avez créée dans KEY_PATH. Le chemin d'accès à la clé doit être un chemin d'accès sur votre hôte accessible et appartenant à l'utilisateur qui exécutera votre conteneur AlloyDB Omni.

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

    gcloud services enable aiplatform.googleapis.com
    
  5. Ajoutez les autorisations Vertex AI Identity and Access Management (IAM) 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 projet Google Cloud .

    • SERVICE_ACCOUNT_ID : ID du compte de service que vous avez créé à l'étape 1. Cela inclut le suffixe complet @PROJECT_ID.iam.gserviceaccount.com. 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 Configurer AlloyDB Omni pour interroger des modèles basés sur le cloud.

  2. Si un conteneur portant le 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 si 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 sur lequel le conteneur doit publier son propre port 5432. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez 5432.
  4. Rendez 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 hôte au fichier de clé de votre 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 l'installation a réussi et qu'elle utilise la prédiction du modèle, saisissez la commande suivante :

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].

Étapes suivantes