Instalar AlloyDB AI en AlloyDB Omni

Selecciona una versión de la documentación:

En esta página se explica cómo instalar AlloyDB Omni e integrar AlloyDB AI.

AlloyDB AI es un conjunto de funciones incluidas en AlloyDB Omni que te permiten crear aplicaciones empresariales de IA generativa. Para obtener más información sobre las funciones de IA/ML de AlloyDB, consulta Crear aplicaciones de IA generativa.

AlloyDB Omni con AlloyDB AI te permite consultar modelos de aprendizaje automático remotos para trabajar con predicciones online e incrustaciones de texto generadas a partir de modelos de aprendizaje automático. AlloyDB Omni con AlloyDB AI también puede procesar incrustaciones de vectores de otro contenido, como una imagen, por ejemplo, si usas la interfaz google_ml.predict_row y haces la traducción tú mismo en la consulta.

Configurar la instancia de AlloyDB Omni para consultar modelos remotos

Puedes consultar modelos remotos mediante la gestión de endpoints de modelos habilitando googleMLExtension en el manifiesto de tu clúster de base de datos.

Si quieres consultar modelos de Vertex AI, debes configurar la cuenta de servicio de AlloyDB con Vertex AI, crear un secreto de Kubernetes con la clave y definir el secreto de Kubernetes en el manifiesto del clúster de la base de datos.

Añadir los permisos de Vertex AI a la cuenta de servicio de AlloyDB

Para configurar AlloyDB Omni de forma que consulte modelos remotos de Vertex AI, sigue estos pasos:

  1. Crea una cuenta de servicio con Google Cloud.

  2. Crea una clave de cuenta de servicio y guárdala en formato JSON en el archivo private-key.json. Después, descárgala.

  3. Guarda la clave en una ubicación permanente de tu sistema de archivos. Se encuentra en esta ubicación durante la vida útil de tu servidor AlloyDB Omni.

    Anota su ubicación en el sistema de archivos, ya que la necesitarás en los pasos siguientes.

  4. Añade permisos de gestión de identidades y accesos (IAM) de Vertex AI al proyecto y a la cuenta de servicio correspondientes.

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

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de tu proyecto de Google Cloud .

    • SERVICE_ACCOUNT_ID: el ID de la cuenta de servicio que has creado en el paso anterior. Esto incluye el sufijo @PROJECT_ID.iam.gserviceaccount.com completo, por ejemplo, my-service@my-project.iam.gserviceaccount.com.

Crear un secreto de Kubernetes con la clave de la cuenta de servicio

Para crear un secreto de Kubernetes basado en la clave de cuenta de servicio descargada en los pasos anteriores, ejecuta el siguiente comando:

kubectl create secret generic SECRET_NAME \
--from-file=PATH_TO_SERVICE_ACCOUNT_KEY/private-key.json \
-n NAMESPACE

Haz los cambios siguientes:

  • SECRET_NAME: el nombre del secreto que se usa al crear un manifiesto de DBCluster para permitir que AlloyDB Omni acceda a las funciones de AlloyDB AI. Por ejemplo, vertex-ai-key-alloydb.

  • PATH_TO_SERVICE_ACCOUNT_KEY: la ruta a la ubicación donde has descargado la clave de la cuenta de servicio private-key.json.

  • NAMESPACE: el espacio de nombres del clúster de la base de datos.

Instalar el operador de AlloyDB Omni

Instala el operador AlloyDB Omni siguiendo los pasos que se indican en Instalar el operador AlloyDB Omni.

Crear un clúster de base de datos con AlloyDB AI

  1. Crea un clúster de base de datos con AlloyDB AI.

    Si asignas el valor enabled a true en el campo googleMLExtension, podrás consultar modelos remotos. Define vertexAIKeyRef en el secreto de Kubernetes si quieres consultar modelos de Vertex AI.

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DB_CLUSTER_NAME
    type: Opaque
    data:
      DB_CLUSTER_NAME: "ENCODED_PASSWORD"
    ---
    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: DB_CLUSTER_NAME
    spec:
    databaseVersion: "16.8.0"
    primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DB_CLUSTER_NAME
        features:
          googleMLExtension:
            enabled: true
            config:
              vertexAIKeyRef: VERTEX_AI_SECRET_NAME
              vertexAIRegion: VERTEX_AI_REGION
        resources:
          cpu: CPU_COUNT
          memory: MEMORY_SIZE
          disks:
          - name: DataDisk
            size: DISK_SIZE
            storageClass: standard
    

    Haz los cambios siguientes:

    • DB_CLUSTER_NAME: el nombre de este clúster de base de datos. Por ejemplo, my-db-cluster.

    • VERTEX_AI_SECRET_NAME (opcional): el secreto de Vertex AI que has creado en los pasos anteriores. Debes definir esta opción si quieres llamar a modelos de Vertex AI.

    • VERTEX_AI_REGION (Opcional): el endpoint regional de Vertex AI al que quieres enviar tu solicitud. Por ejemplo, us-west4. El valor predeterminado es us-central1.

    • ENCODED_PASSWORD: la contraseña de inicio de sesión de la base de datos del rol de usuario postgres predeterminado, codificada como una cadena base64. Por ejemplo, Q2hhbmdlTWUxMjM= para ChangeMe123.

    • CPU_COUNT: número de CPUs disponibles para cada instancia de base de datos de este clúster de bases de datos.

    • MEMORY_SIZE: la cantidad de memoria por instancia de base de datos de este clúster de bases de datos. Recomendamos que este valor sea de 8 gigabytes por CPU. Por ejemplo, si has definido cpu como 2 en este manifiesto, te recomendamos que definas memory como 16Gi.

    • DISK_SIZE: el tamaño del disco por instancia de base de datos. Por ejemplo, 10Gi.

  2. Aplica el archivo de manifiesto.

    kubectl apply -f DB_CLUSTER_YAML

    Haz los cambios siguientes:

    • DB_CLUSTER_YAML: el nombre de este archivo de manifiesto del clúster de bases de datos. Por ejemplo, alloydb-omni-db-cluster.yaml.

Conectarse mediante psql preinstalado

Puedes hacer una conexión de prueba con un cliente psql que ya esté instalado en el pod que ejecuta la base de datos.

Para ello, ejecuta los siguientes comandos:

export DBPOD=`kubectl get pod --selector=alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`
kubectl exec -ti $DBPOD -c database -- psql -h localhost -U postgres

Sustituye DB_CLUSTER_NAME por el nombre de tu clúster de base de datos. Es el mismo nombre de clúster de base de datos que declaraste cuando lo creaste.

Después de introducir el comando, el servidor de la base de datos te pedirá una contraseña. Introduce la contraseña cuya versión codificada en base64 proporcionaste como secreto de Kubernetes al crear el clúster de base de datos. Por ejemplo, si ha creado el clúster de base de datos con el secreto Q2hhbmdlTWUxMjM=, la contraseña de inicio de sesión que debe usar aquí es ChangeMe123.

Verificar la instalación de AlloyDB Omni con AlloyDB AI

Para verificar que la instalación se ha realizado correctamente y que usa la predicción del modelo, introduce lo siguiente:

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

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

El resultado es similar al siguiente:

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

En la consulta anterior, la llamada embedding() genera incrustaciones para el texto de entrada AlloyDB AI. array_dims devuelve las dimensiones de la matriz devuelta por embedding(). Como el modelo text-embedding-005 devuelve un resultado con 768 dimensiones, el resultado es [768].

Siguientes pasos