Gemini en Google Distributed Cloud (GDC) aislado te permite enviar peticiones de vídeo de dos formas principales:
- Codificación en base64 insertada: codifica el vídeo en formato base64 y envíalo como datos insertados en la solicitud de la API.
- Contenedor de almacenamiento: sube el vídeo a un contenedor de almacenamiento y proporciona la URL del vídeo en el contenedor como parte de la solicitud.
En esta página se explica cómo configurar las configuraciones de los contenedores adicionales que se necesitan para las peticiones de vídeo con Gemini en GDC, de modo que Inference Gateway pueda acceder al contenedor.
Antes de empezar
Antes de configurar el contenedor para las peticiones de vídeo de Gemini en GDC, debes cumplir los siguientes requisitos previos:
- Instala las herramientas de la CLI
jqyyq. Para obtener información sobre la configuración del contenedor de herramientas, que contienejqyyq, consulta el runbook OOPS-P0065. - Obtén el rol de administrador secreto de Inference Gateway (
inference-gateway-secret-admin) en el espacio de nombresaics-systempara crear un recursoSecret. Para obtener más información, consulta el runbook IAM-R0005. - Crea una organización de Gemini.
Configurar el segmento de almacenamiento de las peticiones de vídeo
Configura un contenedor de almacenamiento de objetos para que los usuarios puedan enviar peticiones de vídeo en tu organización de cliente.
Crea un contenedor
en el proyecto aics-system con los siguientes valores:
- Nombre de la categoría:
aics-inference-gateway - Espacio de nombres:
aics-system - Descripción:
Bucket for video prompts
De forma predeterminada, el segmento se cifra automáticamente con V2 encryption y se encuentra en la misma zona que la gestión kube-apiserver donde creas el recurso. Por lo tanto, debes crear un recurso Bucket zonal en el servidor de la API de gestión de la organización del cliente, ubicado en la zona de Gemini. Para obtener más información sobre la API Storage, consulta la descripción general de la API Storage.
El recurso Bucket debe tener el siguiente aspecto:
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
Sustituye GEMINI_ZONE por el nombre de la zona de Gemini.
Configurar el acceso al segmento
Sigue estos pasos para configurar el acceso al segmento que has creado para las peticiones de vídeo:
Crea una cuenta de servicio en el servidor de la API de gestión de 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 EOFSustituye
CUS_ORG_MGMT_KUBECONFIG_PATHpor la ruta al archivo kubeconfig del servidor de la API de gestión de la organización del cliente.Aplica los recursos
RoleyRoleBindingque dan a la cuenta de servicio acceso de lectura y escritura al segmento: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 gestión de la organización del cliente. Esta clave de acceso se monta en la implementación de Inference Gateway y Inference Gateway la usa para acceder al segmento. 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-keySustituye
CUS_ORG_MGMT_KUBECONFIG_PATHpor la ruta al archivo kubeconfig del servidor de la API de gestión de la organización del cliente.La salida 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 con una 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.yamlSustituye
CUS_ORG_CP_KUBECONFIG_PATHpor la ruta al archivo kubeconfig del clúster de infraestructura de la organización de la organización del cliente.