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 :
Créez un compte de service avecGoogle Cloud.
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.
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.Activez l'API Vertex AI dans votre projet Google Cloud .
gcloud services enable aiplatform.googleapis.com
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 :
Suivez toutes les étapes décrites dans Configurer AlloyDB Omni pour interroger des modèles basés sur le cloud.
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
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'utilisateurpostgres
du nouveau conteneur après sa création. Notez queNEW_PASSWORD
ne définira un nouveau mot de passe que siDATA_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 port5432
. Pour utiliser également le port PostgreSQL par défaut sur la machine hôte, spécifiez5432
.
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.
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
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
- Exécuter AlloyDB Omni et s'y connecter
- Gérer AlloyDB Omni
- Créer des applications d'IA générative à l'aide d'AlloyDB AI
- Enregistrer et appeler des modèles d'IA distants