Gemini en Google Distributed Cloud (GDC) aislado te permite enviar instrucciones de video a través de dos métodos principales:
- Codificación en Base64 intercalada: Codifica el video en formato Base64 y envíalo como datos intercalados en la solicitud de API.
- Bucket de almacenamiento: Sube el video a un bucket de almacenamiento y proporciona la URL del video en el bucket como parte de la solicitud.
En esta página, se explica cómo configurar bucket adicionales necesarios para las instrucciones de video con Gemini en GDC, de modo que Inference Gateway pueda acceder a bucket.
Antes de comenzar
Antes de configurar el bucket para las instrucciones de video de Gemini en GDC, debes cumplir con los siguientes requisitos previos:
- Instala las herramientas de la CLI de
jqyyq. Para obtener detalles sobre la configuración del contenedor de herramientas, que contienejqyyq, consulta el manual de ejecución OOPS-P0065. - Obtén el rol de administrador de Inference Gateway Secret (
inference-gateway-secret-admin) en el espacio de nombresaics-systempara crear un recursoSecret. Para obtener más detalles, consulta el runbook IAM-R0005. - Crea una organización de Gemini.
Configura el bucket de almacenamiento para las instrucciones de video
Configura un bucket de almacenamiento de objetos para permitir que los usuarios envíen instrucciones de video en tu organización de clientes.
Crea un bucket en el proyecto aics-system con los siguientes valores:
- Nombre del bucket:
aics-inference-gateway - Espacio de nombres:
aics-system - Descripción:
Bucket for video prompts
De forma predeterminada, el bucket se encripta automáticamente con V2 encryption, y la ubicación se encuentra en la misma zona que el kube-apiserver de administración en el que creas el recurso. Por lo tanto, debes crear un recurso Bucket zonal en el servidor de la API de administración de la organización del cliente, ubicado en la zona de Gemini. Para obtener más información sobre la API de Storage, consulta la descripción general de la API de Storage.
El recurso Bucket debe verse como el siguiente ejemplo:
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
labels:
object.gdc.goog/bucket-type: normal
object.gdc.goog/encryption-version: v2
object.gdc.goog/tenant-category: system
name: aics-inference-gateway
namespace: aics-system
spec:
description: Bucket for video prompts
location: GEMINI_ZONE
storageClass: Standard
Reemplaza GEMINI_ZONE por el nombre de la zona de Gemini.
Configura el acceso al bucket
Sigue estos pasos para configurar el acceso al bucket que creaste para las instrucciones de video:
Crea una cuenta de servicio en el servidor de la API de administración desde la organización del cliente:
KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH kubectl --kubeconfig ${KUBECONFIG:?} apply -f - << EOF apiVersion: v1 kind: ServiceAccount metadata: name: aics-inference-gateway namespace: aics-system EOFReemplaza
CUS_ORG_MGMT_KUBECONFIG_PATHpor la ruta de acceso al archivo kubeconfig del servidor de la API de administración de la organización del cliente.Aplica los recursos
RoleyRoleBindingque otorgan a la cuenta de servicio acceso de lectura y escritura al bucket:kubectl --kubeconfig ${KUBECONFIG:?} apply -f - << EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: labels: logging.private.gdch.goog/loggingpipeline-name: default name: aics-inference-gateway-buckets-role namespace: aics-system rules: - apiGroups: - object.gdc.goog resourceNames: - aics-inference-gateway resources: - buckets verbs: - read-object - write-object EOF kubectl --kubeconfig ${KUBECONFIG:?} apply -f - << EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: labels: logging.private.gdch.goog/loggingpipeline-name: default name: audit-logs-loki-pa-buckets-binding namespace: aics-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: aics-inference-gateway-buckets-role subjects: - kind: ServiceAccount name: aics-inference-gateway namespace: aics-system EOFCopia la clave de acceso del servidor de la API de administración de la organización del cliente. Esta clave de acceso se activa en la implementación de Inference Gateway, y esta la usa para acceder al bucket. Sigue estos pasos para copiar la clave de acceso de un servidor de API a otro:
Obtén el nombre del secreto que contiene la clave de acceso:
MGMT_KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH kubectl get secret -n aics-system \ --kubeconfig {MGMT_KUBECONFIG:?} | grep object-storage-keyReemplaza
CUS_ORG_MGMT_KUBECONFIG_PATHpor la ruta de acceso al archivo kubeconfig del servidor de la API de administración de la organización del cliente.El resultado debe ser similar al siguiente ejemplo:
object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya Opaque 3 14mCopia la clave de acceso:
SECRET_NAME=object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya kubectl get secret/$SECRET_NAME -n aics-system --kubeconfig {MGMT_KUBECONFIG:?} -o yaml | yq .data > access-key.yamlCrea un secreto nuevo con la clave de acceso en el clúster de infraestructura de la organización:
CP_KUBECONFIG=CUS_ORG_CP_KUBECONFIG_PATH (echo "apiVersion: v1"; echo "kind: Secret"; echo "metadata:"; echo " name: object-storage-key-std-sa"; \ echo " namespace: aics-system"; echo "data:"; sed 's/^/ /' access-key.yaml | cat -) > object-storage-key-std-sa.yaml kubectl apply --kubeconfig {CP_KUBECONFIG} -f object-storage-key-std-sa.yamlReemplaza
CUS_ORG_CP_KUBECONFIG_PATHpor la ruta de acceso al archivo kubeconfig del clúster de infraestructura de la organización del cliente.
¿Qué sigue?
- Configura una cuenta de servicio para acceder a Gemini
- Más información sobre las capacidades de video