Por capacidad

Subir archivos

Usa el flujo de subida de archivos de la plataforma cuando un cliente solo tenga una imagen, un video, un audio, un PDF, una hoja de cálculo u otro archivo local. La API devuelve un destino de subida temporal y una public_url estable; los detalles de implementación del almacenamiento son opacos para el cliente.

#Elige URL, subida o Base64

Entrada disponibleMétodo recomendadoPor qué
URL HTTPS pública existenteEnvía la URL directamenteSin subidas duplicadas y con el cuerpo de solicitud más pequeño.
Archivo local en el dispositivoSube el archivo y luego envía public_urlFiable para archivos grandes y reutilizable entre reintentos.
Imagen pequeña en línea y el modelo admite Base64 explícitamenteBase64 es aceptableÚsalo solo cuando el contrato del modelo seleccionado lo permita.

#Flujo de subida de archivos locales

  1. 1

    Leer el límite actual

    Usa la misma clave de API para que se apliquen los límites específicos del usuario.

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

    Crear una política de subida

    Envía kind, un content_type concreto y el tamaño exacto en bytes.

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

    Subir el archivo

    Haz POST de todas las entradas de fields devueltas junto con el archivo a upload_url.

    multipart/form-data
  4. 4

    Usar la URL devuelta

    Pon public_url en el campo multimedia que admita el 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
  }'

#Trata los campos de subida como opacos

Envía cada clave y valor devueltos en fields sin renombrarlos, filtrarlos ni almacenarlos en caché. La política de subida es de corta duración y está vinculada a una ruta de archivo generada.

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 archivo y compatibilidad de modelos

Subir un archivo no significa que el modelo lo acepte

El endpoint de subida puede almacenar archivos genéricos como PDF, Excel y texto, pero un modelo solo puede usarlos cuando su contrato de solicitud documenta un campo de archivo o URL correspondiente. Los modelos solo de imagen no pueden leer una hoja de cálculo solo porque tenga una URL pública.
Revisa el contrato del modelo seleccionado

Todos los campos: /v1/media/upload-policy en la referencia de la API →

¿Sigues con el problema?

Envíanos el ID de solicitud o el mensaje de error y lo revisaremos.