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 disponible | Método recomendado | Por qué |
|---|---|---|
| URL HTTPS pública existente | Envía la URL directamente | Sin subidas duplicadas y con el cuerpo de solicitud más pequeño. |
| Archivo local en el dispositivo | Sube el archivo y luego envía public_url | Fiable para archivos grandes y reutilizable entre reintentos. |
| Imagen pequeña en línea y el modelo admite Base64 explícitamente | Base64 es aceptable | Úsalo solo cuando el contrato del modelo seleccionado lo permita. |
#Flujo de subida de archivos locales
- 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
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
Subir el archivo
Haz POST de todas las entradas de fields devueltas junto con el archivo a upload_url.
multipart/form-data - 4
Usar la URL devuelta
Pon public_url en el campo multimedia que admita el 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
}'#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.
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
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.