Gemini su Google Distributed Cloud (GDC) con air gap ti consente di inviare prompt video tramite due metodi principali:
- Codifica Base64 incorporata: Codifica il video in formato Base64 e invialo come dati incorporati nella richiesta API.
- Bucket di archiviazione: carica il video in un bucket di archiviazione e fornisci l'URL del video nel bucket nell'ambito della richiesta.
Questa pagina ti guida nella configurazione dei bucket aggiuntivi necessari per i prompt video con Gemini su GDC, in modo che l'Inference Gateway possa accedere al bucket.
Prima di iniziare
Prima di configurare il bucket per i prompt video di Gemini in GDC, devi soddisfare i seguenti prerequisiti:
- Installa gli strumenti CLI
jqeyq. Per informazioni dettagliate sulla configurazione del contenitore degli strumenti, che contienejqeyq, consulta il runbook OOPS-P0065. - Ottieni il ruolo di amministratore dei secret di Inference Gateway (
inference-gateway-secret-admin) nello spazio dei nomiaics-systemper creare una risorsaSecret. Per ulteriori dettagli, consulta il runbook IAM-R0005. - Crea un'organizzazione Gemini.
Configurare il bucket di archiviazione per i prompt video
Configura un bucket di archiviazione oggetti per consentire agli utenti di inviare prompt video nella tua organizzazione cliente.
Crea un bucket
nel progetto aics-system con i seguenti valori:
- Nome bucket:
aics-inference-gateway - Namespace:
aics-system - Descrizione:
Bucket for video prompts
Per impostazione predefinita, il bucket viene criptato automaticamente con V2 encryption e la
posizione si trova nella stessa zona della gestione kube-apiserver in cui crei
la risorsa. Pertanto, devi creare una risorsa Bucket zonale nel server API di gestione dell'organizzazione cliente, che si trova nella zona Gemini. Per ulteriori informazioni sull'API Storage, consulta la
panoramica dell'API Storage.
La risorsa Bucket deve essere simile all'esempio seguente:
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
Sostituisci GEMINI_ZONE con il nome della zona Gemini.
Configura l'accesso al bucket
Segui questi passaggi per configurare l'accesso al bucket che hai creato per i prompt video:
Crea un account di servizio nel server API di gestione dall'organizzazione 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 EOFSostituisci
CUS_ORG_MGMT_KUBECONFIG_PATHcon il percorso del file kubeconfig del server API di gestione dell'organizzazione del cliente.Applica le risorse
RoleeRoleBindingche concedono all'account di servizio l'accesso in lettura e scrittura 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 chiave di accesso dal server API di gestione dell'organizzazione cliente. Questa chiave di accesso viene montata sul deployment di Inference Gateway e Inference Gateway la utilizza per accedere al bucket. Segui questi passaggi per copiare la chiave di accesso da un server API a un altro:
Recupera il nome del secret che contiene la chiave di accesso:
MGMT_KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH kubectl get secret -n aics-system \ --kubeconfig {MGMT_KUBECONFIG:?} | grep object-storage-keySostituisci
CUS_ORG_MGMT_KUBECONFIG_PATHcon il percorso del file kubeconfig del server API di gestione dell'organizzazione del cliente.L'output deve essere simile all'esempio seguente:
object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya Opaque 3 14mCopia la chiave di accesso:
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 nuovo secret con la chiave di accesso nel cluster dell'infrastruttura dell'organizzazione:
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.yamlSostituisci
CUS_ORG_CP_KUBECONFIG_PATHcon il percorso del file kubeconfig del cluster di infrastruttura dell'organizzazione dell'organizzazione cliente.