Mit Gemini in Google Distributed Cloud (GDC) mit Air Gap können Sie Videoprompts auf zwei Arten einreichen:
- Inline-Base64-Codierung: Das Video wird im Base64-Format codiert und als Inline-Daten in der API-Anfrage gesendet.
- Storage-Bucket: Laden Sie das Video in einen Storage-Bucket hoch und geben Sie die URL des Videos im Bucket als Teil der Anfrage an.
Auf dieser Seite erfahren Sie, wie Sie zusätzliche Bucket-Konfigurationen für Video-Prompts mit Gemini auf GDC einrichten, damit das Inference Gateway auf den Bucket zugreifen kann.
Hinweise
Bevor Sie den Bucket für Gemini-Video-Prompts in GDC einrichten, müssen die folgenden Voraussetzungen erfüllt sein:
- Installieren Sie die
jq- undyq-Befehlszeilentools. Weitere Informationen zur Einrichtung des Tool-Containers, derjqundyqenthält, finden Sie im OOPS-P0065-Runbook. - Weisen Sie sich die Rolle „Inference Gateway Secret Admin“ (
inference-gateway-secret-admin) im Namespaceaics-systemzu, um eineSecret-Ressource zu erstellen. Weitere Informationen finden Sie im Runbook IAM-R0005. - Gemini-Organisation erstellen
Speicher-Bucket für Video-Prompts konfigurieren
Konfigurieren Sie einen Objektspeicher-Bucket, damit Nutzer in Ihrer Kundenorganisation Video-Prompts senden können.
Erstellen Sie einen Bucket im Projekt aics-system mit den folgenden Werten:
- Bucket-Name:
aics-inference-gateway - Namespace:
aics-system. - Description:
Bucket for video prompts
Standardmäßig wird der Bucket automatisch mit V2 encryption verschlüsselt und der Standort befindet sich in derselben Zone wie die Verwaltungs-kube-apiserver, in der Sie die Ressource erstellen. Daher müssen Sie eine zonale Bucket-Ressource auf dem Management-API-Server der Kundenorganisation erstellen, der sich in der Gemini-Zone befindet. Weitere Informationen zur Storage API finden Sie in der Übersicht über die Storage API.
Die Bucket-Ressource muss wie im folgenden Beispiel aussehen:
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
Ersetzen Sie GEMINI_ZONE durch den Namen der Gemini-Zone.
Zugriff auf den Bucket konfigurieren
So konfigurieren Sie den Zugriff auf den Bucket, den Sie für Video-Prompts erstellt haben:
Erstellen Sie ein Dienstkonto auf dem Management API-Server der Kundenorganisation:
KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH kubectl --kubeconfig ${KUBECONFIG:?} apply -f - << EOF apiVersion: v1 kind: ServiceAccount metadata: name: aics-inference-gateway namespace: aics-system EOFErsetzen Sie
CUS_ORG_MGMT_KUBECONFIG_PATHdurch den Pfad zur kubeconfig-Datei des Management-API-Servers der Kundenorganisation.Wenden Sie die Ressourcen
RoleundRoleBindingan, die dem Dienstkonto Lese- und Schreibzugriff auf den Bucket gewähren: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 EOFKopieren Sie den Zugriffsschlüssel vom Management API-Server der Kundenorganisation. Dieser Zugriffsschlüssel wird in der Inference Gateway-Bereitstellung eingebunden und vom Inference Gateway für den Zugriff auf den Bucket verwendet. So kopieren Sie den Zugriffsschlüssel von einem API-Server auf einen anderen:
Rufen Sie den Namen des Secrets ab, das den Zugriffsschlüssel enthält:
MGMT_KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH kubectl get secret -n aics-system \ --kubeconfig {MGMT_KUBECONFIG:?} | grep object-storage-keyErsetzen Sie
CUS_ORG_MGMT_KUBECONFIG_PATHdurch den Pfad zur kubeconfig-Datei des Management-API-Servers der Kundenorganisation.Die Ausgabe muss in etwa so aussehen:
object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya Opaque 3 14mKopieren Sie den Zugriffsschlüssel:
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.yamlErstellen Sie ein neues Secret mit dem Zugriffsschlüssel im Infrastrukturcluster der 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.yamlErsetzen Sie
CUS_ORG_CP_KUBECONFIG_PATHdurch den Pfad zur kubeconfig-Datei des Infrastrukturclusters der Organisation der Kundenorganisation.