O Gemini no Google Distributed Cloud (GDC) air-gapped permite-lhe enviar comandos de vídeo através de dois métodos principais:
- Codificação base64 inline: codifique o vídeo no formato base64 e envie-o como dados inline no pedido da API.
- Recipiente de armazenamento: carregue o vídeo para um recipiente de armazenamento e faculte o URL do vídeo no recipiente como parte do pedido.
Esta página explica como configurar as configurações de contentores adicionais necessárias para comandos de vídeo com o Gemini no GDC, para que o gateway de inferência possa ter acesso ao contentor.
Antes de começar
Antes de configurar o contentor para comandos de vídeo do Gemini no GDC, tem de cumprir os seguintes pré-requisitos:
- Instale as ferramentas de CLI
jqeyq. Para ver detalhes sobre a configuração do contentor de ferramentas, que contémjqeyq, consulte o manual de instruções OOPS-P0065. - Obtenha a função de administrador secreto do Inference Gateway (
inference-gateway-secret-admin) no espaço de nomesaics-systempara criar um recursoSecret. Para mais detalhes, consulte o manual de procedimentos IAM-R0005. - Crie uma organização do Gemini.
Configure o contentor de armazenamento para comandos de vídeo
Configure um contentor de armazenamento de objetos para permitir que os utilizadores enviem comandos de vídeo na sua organização de clientes.
Crie um contentor
no projeto aics-system com os seguintes valores:
- Nome do segmento:
aics-inference-gateway - Namespace:
aics-system - Descrição:
Bucket for video prompts
Por predefinição, o contentor é automaticamente encriptado com V2 encryption e a localização está na mesma zona que a gestão kube-apiserver onde cria o recurso. Por conseguinte, tem de criar um recurso Bucket zonal no servidor da API Management da organização do cliente, localizado na zona do Gemini. Para mais informações sobre a API Storage, consulte a
vista geral da API Storage.
O recurso Bucket tem de ser semelhante ao seguinte exemplo:
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.
Configure o acesso ao contentor
Siga estes passos para configurar o acesso ao contentor que criou para comandos de vídeo:
Crie uma conta de serviço no servidor da API de gestão a partir 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 para o ficheiro kubeconfig do servidor da API de gestão da organização do cliente.Aplique os recursos
RoleeRoleBindingque dão à conta de serviço acesso de leitura e escrita ao contentor: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 gestão da organização do cliente. Esta chave de acesso é montada na implementação do Inference Gateway e o Inference Gateway usa-a para aceder ao contentor. Siga estes passos para copiar a chave de acesso de um servidor de API para outro:
Obtenha o nome do segredo 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 ficheiro kubeconfig do servidor da API de gestão da organização do cliente.O resultado tem de ser semelhante ao seguinte exemplo:
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 segredo 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 ficheiro kubeconfig do cluster de infraestrutura da organização do cliente.