По возможностям
Загрузка файлов
Используйте загрузку файлов платформы, если у клиента есть только локальное изображение, видео, аудио, PDF, таблица или другой файл. API возвращает временный адрес для загрузки и постоянный public_url; детали реализации хранилища от клиента скрыты.
#URL, загрузка или Base64
| Что есть на входе | Рекомендуемый способ | Почему |
|---|---|---|
| Готовый публичный HTTPS-URL | Передайте URL напрямую | Без повторной загрузки и с минимальным телом запроса. |
| Локальный файл на устройстве | Загрузите и передайте public_url | Надёжно для больших файлов, можно переиспользовать при повторах. |
| Небольшое встроенное изображение, и модель явно поддерживает Base64 | Можно использовать Base64 | Только если это допускает контракт выбранной модели. |
#Загрузка локального файла
- 1
Узнайте текущий лимит
Используйте тот же API-ключ, чтобы применились лимиты пользователя.
GET /v1/media/upload-policy - 2
Создайте политику загрузки
Передайте kind, конкретный content_type и точный размер в байтах.
POST /v1/media/upload-policy - 3
Загрузите файл
Отправьте POST-запросом все полученные записи fields и файл на upload_url.
multipart/form-data - 4
Используйте полученный URL
Укажите public_url в медиаполе, которое поддерживает модель.
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
}'#Не разбирайте поля загрузки
Передавайте все ключи и значения из fields, не переименовывая, не отфильтровывая и не кешируя их. Политика загрузки действует недолго и привязана к одному сгенерированному пути файла.
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;#Типы файлов и поддержка моделями
Успешная загрузка не значит, что модель примет файл
Проблема не решена?
Пришлите нам ID запроса или текст ошибки, и мы разберёмся.