Com o Gemini no Google Distributed Cloud (GDC) com isolamento físico, é possível enviar comandos de vídeo por dois métodos principais:
- Codificação base64 inline: codifique o vídeo no formato base64 e envie como dados inline na solicitação de API.
- Bucket de armazenamento: envie o vídeo para um bucket de armazenamento e forneça o URL dele no bucket como parte da solicitação.
Nesta página, você vai aprender a configurar outras configurações de bucket necessárias para comandos de vídeo com o Gemini no GDC para que o gateway de inferência tenha acesso ao bucket.
Antes de começar
Antes de configurar o bucket para comandos de vídeo do Gemini no GDC, é necessário atender aos seguintes pré-requisitos:
- Instale as ferramentas CLI
jqeyq. Para detalhes sobre a configuração do contêiner de ferramentas, que contémjqeyq, consulte o runbook OOPS-P0065. - Consiga a função de administrador secreto do Inference Gateway (
inference-gateway-secret-admin) no namespaceaics-systempara criar um recursoSecret. Para mais detalhes, consulte o runbook IAM-R0005. - Crie uma organização do Gemini.
Configurar o bucket de armazenamento para comandos de vídeo
Configure um bucket de armazenamento de objetos para permitir que os usuários enviem comandos de vídeo na sua organização de clientes.
Crie um bucket
no projeto aics-system com os seguintes valores:
- Nome do bucket:
aics-inference-gateway - Namespace:
aics-system - Descrição:
Bucket for video prompts
Por padrão, o bucket é criptografado automaticamente com V2 encryption, e o local está na mesma zona que o kube-apiserver de gerenciamento em que você cria o recurso. Portanto, é necessário criar um recurso zonal Bucket no servidor da API de gerenciamento da organização do cliente, localizado na zona do Gemini. Para mais informações sobre a API Storage, consulte a
visão geral da API Storage.
O recurso Bucket precisa ser semelhante ao exemplo a seguir:
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
Substitua GEMINI_ZONE pelo nome da zona do Gemini.
Configurar o acesso ao bucket
Siga estas etapas para configurar o acesso ao bucket criado para solicitações de vídeo:
Crie uma conta de serviço no servidor da API de gerenciamento da organização do 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 EOFSubstitua
CUS_ORG_MGMT_KUBECONFIG_PATHpelo caminho do arquivo kubeconfig do servidor da API de gerenciamento da organização do cliente.Aplique os recursos
RoleeRoleBindingque dão à conta de serviço acesso de leitura e gravação ao 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 EOFCopie a chave de acesso do servidor da API de gerenciamento da organização do cliente. Essa chave de acesso é montada na implantação do Inference Gateway, que a usa para acessar o bucket. Siga estas etapas para copiar a chave de acesso de um servidor de API para outro:
Extraia o nome do secret que contém a chave de acesso:
MGMT_KUBECONFIG=CUS_ORG_MGMT_KUBECONFIG_PATH kubectl get secret -n aics-system \ --kubeconfig {MGMT_KUBECONFIG:?} | grep object-storage-keySubstitua
CUS_ORG_MGMT_KUBECONFIG_PATHpelo caminho para o arquivo kubeconfig do servidor da API de gerenciamento da organização do cliente.A saída será semelhante ao exemplo a seguir:
object-storage-key-sysstd-sa-5adjkgdmmn6fyd4o6ybnrnuaiomsbihq4jluymifw4jvcf7w7aya Opaque 3 14mCopie a chave de acesso:
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.yamlCrie um novo secret com a chave de acesso no cluster de infraestrutura da organização:
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.yamlSubstitua
CUS_ORG_CP_KUBECONFIG_PATHpelo caminho para o arquivo kubeconfig do cluster de infraestrutura da organização do cliente.