Gemini sur Google Distributed Cloud (GDC) sous air gap vous permet d'envoyer des requêtes vidéo de deux manières principales :
- Encodage base64 intégré : encodez la vidéo au format base64 et envoyez-la en tant que données intégrées dans la requête API.
- Bucket de stockage : Mettez en ligne la vidéo dans un bucket de stockage et fournissez l'URL de la vidéo dans le bucket dans la requête.
Cette page vous explique comment configurer des buckets supplémentaires nécessaires aux requêtes vidéo avec Gemini sur GDC afin que la passerelle d'inférence puisse accéder au bucket.
Avant de commencer
Avant de configurer le bucket pour les requêtes vidéo Gemini dans GDC, vous devez remplir les conditions préalables suivantes :
- Installez les outils CLI
jqetyq. Pour en savoir plus sur la configuration du conteneur d'outils, qui contientjqetyq, consultez le runbook OOPS-P0065. - Obtenez le rôle d'administrateur de secrets Inference Gateway (
inference-gateway-secret-admin) dans l'espace de nomsaics-systempour créer une ressourceSecret. Pour en savoir plus, consultez le runbook IAM-R0005. - Créez une organisation Gemini.
Configurer le bucket de stockage pour les suggestions vidéo
Configurez un bucket de stockage d'objets pour permettre aux utilisateurs d'envoyer des requêtes vidéo dans votre organisation cliente.
Créez un bucket dans le projet aics-system avec les valeurs suivantes :
- Nom du bucket :
aics-inference-gateway - Namespace (Espace de noms) :
aics-system - Description :
Bucket for video prompts
Par défaut, le bucket est automatiquement chiffré avec V2 encryption et l'emplacement se trouve dans la même zone que le kube-apiserver de gestion où vous créez la ressource. Vous devez donc créer une ressource Bucket zonale dans le serveur de l'API Management de l'organisation cliente, située dans la zone Gemini. Pour en savoir plus sur l'API Storage, consultez la présentation de l'API Storage.
La ressource Bucket doit ressembler à l'exemple suivant :
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
Remplacez GEMINI_ZONE par le nom de la zone Gemini.
Configurer l'accès au bucket
Pour configurer l'accès au bucket que vous avez créé pour les suggestions vidéo, procédez comme suit :
Créez un compte de service sur le serveur de l'API Management à partir de l'organisation 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 EOFRemplacez
CUS_ORG_MGMT_KUBECONFIG_PATHpar le chemin d'accès au fichier kubeconfig du serveur d'API de gestion de l'organisation cliente.Appliquez les ressources
RoleetRoleBindingqui accordent au compte de service un accès en lecture et en écriture au 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 EOFCopiez la clé d'accès du serveur de l'API Management de l'organisation cliente. Cette clé d'accès est installée sur le déploiement Inference Gateway, qui l'utilise pour accéder au bucket. Pour copier la clé d'accès d'un serveur d'API à un autre, procédez comme suit :
Obtenez le nom du secret contenant la clé d'accès :
MGMT_KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH kubectl get secret -n aics-system \ --kubeconfig {MGMT_KUBECONFIG:?} | grep object-storage-keyRemplacez
CUS_ORG_MGMT_KUBECONFIG_PATHpar le chemin d'accès au fichier kubeconfig du serveur d'API de gestion de l'organisation cliente.Le résultat doit ressembler à l'exemple suivant :
object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya Opaque 3 14mCopiez la clé d'accès :
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.yamlCréez un secret avec une clé d'accès dans le cluster d'infrastructure de l'organisation :
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.yamlRemplacez
CUS_ORG_CP_KUBECONFIG_PATHpar le chemin d'accès au fichier kubeconfig du cluster d'infrastructure de l'organisation du client.