A API Gemini permite fazer upload de arquivos de mídia separadamente da entrada de comando, o que permite reutilizar sua mídia em várias solicitações e comandos. Para mais detalhes, consulte o guia Comandos com mídia.
Método: media.upload
Faz upload de dados para uma ragStore, pré-processa e divide em partes antes de armazenar em um documento RagStore.
Endpoint
- URI de upload, para solicitações de upload de mídia:
https: / /generativelanguage.googleapis.com /upload /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
- URI de metadados, para solicitações somente de metadados:
https: / /generativelanguage.googleapis.com /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
Parâmetros de caminho
ragStoreName
string
Obrigatório. Imutável. O nome do RagStore
em que o arquivo será enviado. Exemplo: ragStores/my-rag-store-123
. Ele tem a forma ragStores/{ragstore}
.
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
displayName
string
Opcional. Nome de exibição do documento criado.
customMetadata[]
object (CustomMetadata
)
Metadados personalizados a serem associados aos dados.
chunkingConfig
object (ChunkingConfig
)
Opcional. Configuração para informar ao serviço como dividir os dados em partes. Se não for fornecido, o serviço vai usar parâmetros padrão.
mimeType
string
Opcional. Tipo MIME dos dados. Se não for fornecido, ele será inferido do conteúdo enviado.
Corpo da resposta
Esta é uma cópia de google.longrunning.Operation. Precisamos copiar porque, para interagir com o Scotty, é necessário adicionar um campo específico que não pode ser adicionado no proto de operação de nível superior.
Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:
name
string
O nome atribuído pelo servidor, que é exclusivo somente no mesmo serviço que o retorna originalmente. Se você usar o mapeamento padrão de HTTP, name
precisa ser um nome de recurso que termine com operations/{unique_id}
.
metadata
object
Metadados específicos do serviço associados à operação. Eles geralmente contêm informações sobre o progresso e metadados comuns, como a hora da criação. Em alguns serviços, esses metadados talvez não sejam fornecidos. Em qualquer método que retorna uma operação de longa duração, o tipo de metadados, se houver, deve ser documentado.
Um objeto contendo campos de um tipo arbitrário. Um campo adicional "@type"
contém uma URI que identifica o tipo. Exemplo: { "id": 1234, "@type": "types.example.com/standard/id" }
.
done
boolean
Se o valor for false
, significa que a operação ainda está em andamento. Se for true
, a operação será concluída e error
ou response
estarão disponíveis.
result
Union type
error
ou uma response
válida. Se done
== false
, nem error
ou response
estão definidos. Se done
== true
, será possível definir exatamente um entre error
ou response
. Alguns serviços podem não fornecer o resultado. result
pode ser apenas um dos seguintes:error
object (Status
)
Resultado do erro da operação em caso de falha ou cancelamento.
response
object
A resposta normal e bem-sucedida da operação. Se o método original não retornar dados em caso de êxito, como Delete
, a resposta será google.protobuf.Empty
. Se o método original for Get
/Create
/Update
padrão, a resposta será o recurso. Para outros métodos, a resposta precisa ser do tipo XxxResponse
, em que Xxx
é o nome do método original. Por exemplo, se o nome do método original for TakeSnapshot()
, o tipo inferido de resposta será TakeSnapshotResponse
.
Um objeto contendo campos de um tipo arbitrário. Um campo adicional "@type"
contém uma URI que identifica o tipo. Exemplo: { "id": 1234, "@type": "types.example.com/standard/id" }
.
Representação JSON |
---|
{
"name": string,
"metadata": {
"@type": string,
field1: ...,
...
},
"done": boolean,
// result
"error": {
object ( |
ChunkingConfig
Parâmetros para informar ao serviço como dividir o arquivo em partes, inspirados em google3/cloud/ai/platform/extension/lib/retrieval/config/chunker_config.proto
config
Union type
config
pode ser apenas de um dos tipos a seguir:whiteSpaceConfig
object (WhiteSpaceConfig
)
Configuração de divisão de espaço em branco.
Representação JSON |
---|
{
// config
"whiteSpaceConfig": {
object ( |
WhiteSpaceConfig
Configuração para um algoritmo de divisão de espaço em branco [delimitado por espaço em branco].
maxTokensPerChunk
integer
Número máximo de tokens por trecho. Os tokens são definidos como palavras para esse algoritmo de divisão. Observação: definimos tokens como palavras divididas por espaços em branco, e não como a saída de um tokenizador. A janela de contexto do modelo de embedding do Gemini mais recente, em 17/04/2025, é de 8.192 tokens. Consideramos que a palavra média tem cinco caracteres. Portanto, definimos o limite superior como 2**9, que é 512 palavras ou 2.560 tokens, considerando o pior caso de um caractere por token. Essa é uma estimativa conservadora para evitar o estouro da janela de contexto.
maxOverlapTokens
integer
Número máximo de tokens sobrepostos entre dois blocos adjacentes.
Representação JSON |
---|
{ "maxTokensPerChunk": integer, "maxOverlapTokens": integer } |
Método: files.get
Recebe os metadados do File
especificado.
Endpoint
gethttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
Parâmetros de caminho
name
string
Obrigatório. O nome do File
a ser recebido. Exemplo: files/abc-123
. Ele tem a forma files/{file}
.
Corpo da solicitação
O corpo da solicitação precisa estar vazio.
Exemplo de solicitação
Python
Node.js
Go
Concha
Corpo da resposta
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de File
.
Método: files.list
Lista os metadados dos File
s pertencentes ao projeto solicitante.
Endpoint
gethttps: / /generativelanguage.googleapis.com /v1beta /files
Parâmetros de consulta
pageSize
integer
Opcional. Número máximo de File
s a serem retornados por página. Se não for especificado, o padrão será 10. O valor máximo de pageSize
é 100.
pageToken
string
Opcional. Um token de página de uma chamada files.list
anterior.
Corpo da solicitação
O corpo da solicitação precisa estar vazio.
Exemplo de solicitação
Python
Node.js
Go
Concha
Corpo da resposta
Resposta para files.list
.
Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:
files[]
object (File
)
A lista de File
s.
nextPageToken
string
Um token que pode ser enviado como um pageToken
em uma chamada files.list
subsequente.
Representação JSON |
---|
{
"files": [
{
object ( |
Método: files.delete
Exclui o File
.
Endpoint
deletehttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
Parâmetros de caminho
name
string
Obrigatório. O nome do File
a ser excluído. Exemplo: files/abc-123
. Ele tem a forma files/{file}
.
Corpo da solicitação
O corpo da solicitação precisa estar vazio.
Exemplo de solicitação
Python
Node.js
Go
Concha
Corpo da resposta
Se não houver nenhum problema, o corpo da resposta será um objeto JSON vazio.
Recurso REST: files
Recurso: File
Um arquivo enviado para a API. Próximo ID: 15
name
string
Imutável. Identificador. O nome do recurso File
. O ID (nome sem o prefixo "files/") pode conter até 40 caracteres alfanuméricos minúsculos ou traços (-). O ID não pode começar nem terminar com um traço. Se o nome estiver vazio na criação, um nome exclusivo será gerado. Exemplo: files/123-456
displayName
string
Opcional. O nome de exibição legível para o File
. O nome de exibição não pode ter mais de 512 caracteres, incluindo espaços. Exemplo: "Imagem de boas-vindas"
mimeType
string
Apenas saída. Tipo MIME do arquivo.
sizeBytes
string (int64 format)
Apenas saída. Tamanho do arquivo em bytes.
createTime
string (Timestamp
format)
Apenas saída. O carimbo de data/hora de quando o File
foi criado.
Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
ou "2014-10-02T15:01:23+05:30"
.
updateTime
string (Timestamp
format)
Apenas saída. O carimbo de data/hora da última atualização do File
.
Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
ou "2014-10-02T15:01:23+05:30"
.
expirationTime
string (Timestamp
format)
Apenas saída. O carimbo de data/hora de quando o File
será excluído. Só é definido se a File
estiver programada para expirar.
Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
ou "2014-10-02T15:01:23+05:30"
.
sha256Hash
string (bytes format)
Apenas saída. Hash SHA-256 dos bytes enviados.
Uma string codificada em base64.
uri
string
Apenas saída. O URI do File
.
downloadUri
string
Apenas saída. O URI de download do File
.
state
enum (State
)
Apenas saída. Estado de processamento do arquivo.
source
enum (Source
)
Origem do arquivo.
error
object (Status
)
Apenas saída. Status de erro se o processamento do arquivo falhar.
metadata
Union type
metadata
pode ser apenas de um dos tipos a seguir:videoMetadata
object (VideoFileMetadata
)
Apenas saída. Metadados de um vídeo.
Representação JSON |
---|
{ "name": string, "displayName": string, "mimeType": string, "sizeBytes": string, "createTime": string, "updateTime": string, "expirationTime": string, "sha256Hash": string, "uri": string, "downloadUri": string, "state": enum ( |
VideoFileMetadata
Metadados de um vídeo File
.
videoDuration
string (Duration
format)
Duração do vídeo.
Duração em segundos com até nove dígitos fracionários, terminando em "s
". Exemplo: "3.5s"
.
Representação JSON |
---|
{ "videoDuration": string } |
Estado
Estados do ciclo de vida de um arquivo.
Tipos enumerados | |
---|---|
STATE_UNSPECIFIED |
O valor padrão. Esse valor é usado se o estado for omitido. |
PROCESSING |
O arquivo está sendo processado e ainda não pode ser usado para inferência. |
ACTIVE |
O arquivo é processado e fica disponível para inferência. |
FAILED |
Falha ao processar o arquivo. |
Origem
Tipos enumerados | |
---|---|
SOURCE_UNSPECIFIED |
Usado se a origem não for especificada. |
UPLOADED |
Indica que o arquivo foi enviado pelo usuário. |
GENERATED |
Indica que o arquivo foi gerado pelo Google. |
REGISTERED |
Indica que o arquivo é registrado, ou seja, um arquivo do Google Cloud Storage. |
Status
O tipo Status
define um modelo de erro lógico que é adequado a diferentes ambientes de programação, incluindo APIs REST e RPC. É usado por gRPC. Cada mensagem Status
contém três partes de dados: código do erro, mensagem de erro e detalhes do erro.
É possível descobrir mais sobre esse modelo de erro e como trabalhar com ele no Guia de design de API.
code
integer
O código de status, que precisa ser um valor de enumeração de google.rpc.Code
.
message
string
Uma mensagem de erro em inglês para o desenvolvedor. Qualquer mensagem de erro para o usuário precisa ser localizada e enviada no campo google.rpc.Status.details
, ou localizada pelo cliente.
details[]
object
Uma lista de mensagens com os detalhes do erro. Há um conjunto comum de tipos de mensagens para as APIs usarem.
Um objeto contendo campos de um tipo arbitrário. Um campo adicional "@type"
contém uma URI que identifica o tipo. Exemplo: { "id": 1234, "@type": "types.example.com/standard/id" }
.
Representação JSON |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |