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ível | Caminho recomendado | Por quê |
|---|---|---|
| URL HTTPS pública já existente | Envie a URL diretamente | Sem upload duplicado e com o menor corpo de requisição. |
| Arquivo local no dispositivo | Faça o upload e envie a public_url | Confiável para arquivos grandes e reutilizável entre novas tentativas. |
| Imagem pequena inline, e o modelo aceita Base64 explicitamente | Base64 é aceitável | Use apenas quando o contrato do modelo escolhido permitir. |
#Fluxo de upload de arquivo local
- 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
Criar uma política de upload
Envie kind, um content_type concreto e o tamanho exato em bytes.
POST /v1/media/upload-policy - 3
Enviar o arquivo
Faça POST de todas as entradas de fields retornadas, mais o arquivo, para upload_url.
multipart/form-data - 4
Usar a URL retornada
Coloque public_url no campo de mídia suportado pelo modelo.
public_url
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.
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
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.