Speicher für Gemini-Video-Prompts konfigurieren

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- und yq-Befehlszeilentools. Weitere Informationen zur Einrichtung des Tool-Containers, der jq und yq enthält, finden Sie im OOPS-P0065-Runbook.
  • Weisen Sie sich die Rolle „Inference Gateway Secret Admin“ (inference-gateway-secret-admin) im Namespace aics-system zu, um eine Secret-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:

  1. 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
    EOF
    

    Ersetzen Sie CUS_ORG_MGMT_KUBECONFIG_PATH durch den Pfad zur kubeconfig-Datei des Management-API-Servers der Kundenorganisation.

  2. Wenden Sie die Ressourcen Role und RoleBinding an, 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
    EOF
    
  3. Kopieren 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:

    1. 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-key
      

      Ersetzen Sie CUS_ORG_MGMT_KUBECONFIG_PATH durch 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      14m
      
    2. Kopieren 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.yaml
      
    3. Erstellen 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.yaml
      

      Ersetzen Sie CUS_ORG_CP_KUBECONFIG_PATH durch den Pfad zur kubeconfig-Datei des Infrastrukturclusters der Organisation der Kundenorganisation.

Nächste Schritte