Par capacité
Envoyer des fichiers
Utilisez le flux d'envoi de fichiers de la plateforme lorsqu'un client ne dispose que d'une image, d'une vidéo, d'un audio, d'un PDF, d'un tableur ou d'un autre fichier en local. L'API renvoie une destination d'envoi temporaire et une public_url stable ; les détails d'implémentation du stockage restent opaques pour le client.
#Choisir entre URL, envoi ou Base64
| Entrée disponible | Méthode recommandée | Pourquoi |
|---|---|---|
| URL HTTPS publique existante | Envoyer l'URL directement | Pas d'envoi en double et le corps de requête le plus léger. |
| Fichier local sur l'appareil | Envoyer le fichier, puis transmettre public_url | Fiable pour les gros fichiers et réutilisable d'une tentative à l'autre. |
| Petite image intégrée, et le modèle prend explicitement en charge le Base64 | Le Base64 est acceptable | Uniquement si le contrat du modèle sélectionné l'autorise. |
#Flux d'envoi de fichier local
- 1
Lire la limite actuelle
Utilisez la même clé API pour que les limites propres à l'utilisateur s'appliquent.
GET /v1/media/upload-policy - 2
Créer une politique d'envoi
Envoyez kind, un content_type précis et la taille exacte en octets.
POST /v1/media/upload-policy - 3
Envoyer le fichier
Envoyez en POST toutes les entrées fields renvoyées ainsi que le fichier vers upload_url.
multipart/form-data - 4
Utiliser l'URL renvoyée
Placez public_url dans le champ média pris en charge par le modèle.
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
}'#Traiter les champs d'envoi comme opaques
Envoyez chaque clé et chaque valeur renvoyées dans fields sans les renommer, les filtrer ni les mettre en cache. La politique d'envoi est de courte durée et liée à un chemin de fichier généré.
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;#Types de fichiers et prise en charge par les modèles
Un envoi réussi ne garantit pas que le modèle accepte le fichier
Tous les champs : /v1/media/upload-policy dans la référence API →
Toujours bloqué ?
Envoyez-nous l'ID de requête ou le message d'erreur, et nous examinerons le problème.