Por recurso

Enviar arquivos

Use o fluxo de upload de arquivos da plataforma quando um cliente tiver apenas uma imagem, vídeo, áudio, PDF, planilha ou outro arquivo local. A API retorna um destino de upload temporário e uma public_url estável; os detalhes de implementação do armazenamento ficam ocultos para o cliente.

#Escolha entre URL, upload ou Base64

Entrada disponívelCaminho recomendadoPor quê
URL HTTPS pública já existenteEnvie a URL diretamenteSem upload duplicado e com o menor corpo de requisição.
Arquivo local no dispositivoFaça o upload e envie a public_urlConfiável para arquivos grandes e reutilizável entre novas tentativas.
Imagem pequena inline, e o modelo aceita Base64 explicitamenteBase64 é aceitávelUse apenas quando o contrato do modelo escolhido permitir.

#Fluxo de upload de arquivo local

  1. 1

    Ler o limite atual

    Use a mesma chave de API para que os limites específicos do usuário sejam aplicados.

    GET /v1/media/upload-policy
  2. 2

    Criar uma política de upload

    Envie kind, um content_type concreto e o tamanho exato em bytes.

    POST /v1/media/upload-policy
  3. 3

    Enviar o arquivo

    Faça POST de todas as entradas de fields retornadas, mais o arquivo, para upload_url.

    multipart/form-data
  4. 4

    Usar a URL retornada

    Coloque public_url no campo de mídia suportado pelo modelo.

    public_url
create-policy.sh
curl https://www.aisplice.store/v1/media/upload-policy \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "file",
    "content_type": "application/pdf",
    "size": 1048576
  }'

#Trate os campos de upload como opacos

Envie todas as chaves e valores retornados em fields sem renomear, filtrar ou armazenar em cache. A política de upload tem curta duração e fica vinculada a um caminho de arquivo gerado.

browser.ts
const form = new FormData();
for (const [key, value] of Object.entries(policy.fields)) {
  form.append(key, String(value));
}
form.append("file", file); // keep the file field last

const uploaded = await fetch(policy.upload_url, {
  method: "POST",
  body: form,
});
if (!uploaded.ok) throw new Error(await uploaded.text());

const modelInputUrl = policy.public_url;

#Tipos de arquivo e suporte dos modelos

Upload bem-sucedido não significa que o modelo aceita

O endpoint de upload consegue armazenar arquivos genéricos, como PDF, Excel e texto, mas um modelo só consegue consumi-los quando o contrato de requisição dele documenta um campo de arquivo ou URL correspondente. Modelos só de imagem não leem uma planilha só porque ela tem uma URL pública.
Confira o contrato do modelo escolhido

Todos os campos: /v1/media/upload-policy na referência da API →

Ainda com problemas?

Envie para nós o ID da requisição ou a mensagem de erro e vamos investigar.