الملفات
تقبل النماذج التي تتعامل مع الصور أو الفيديو أو الصوت هذه الملفات بأي صيغة من ثلاث. وتحدد صفحة كل نموذج معلمات ملفاته (مثل image وimages وvideos وaudios).
1. عنوان URL عام
أي عنوان URL يبدأ بـ https:// (أو http://) ويمكن للنموذج تنزيله:
{ "image": "https://example.com/photos/product.jpg" }
يجب أن يكون الملف متاحًا دون ملفات تعريف ارتباط أو تسجيل دخول، وأن يظل متاحًا حتى بدء الطلب. وتسرد صفحة كل نموذج حدود الحجم والأبعاد لمعلمات ملفاته.
2. معرّف بيانات URI
يمكن تضمين الملفات الصغيرة في سطر واحد على هيئة URI من النوع data: بحد أقصى 10 MB:
{ "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." }
يجعل Base64 الجسم أكبر بنحو الثلث من الملف، لذا يُفضّل الرفع لأي ملف كبير.
3. رفع ملف
بالنسبة إلى الملفات المحلية، اطلب عنوان URL للرفع، ونفّذ PUT للبايتات إليه، ومرّر file_url المُعاد إلى النموذج. إنشاء عنوان URL للرفع مجاني.
curl -X POST "https://api.doitong.com/v1/files" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{"filename": "product.jpg", "content_type": "image/jpeg", "size": 482113}'
{
"object": "upload",
"upload_url": "https://…signed upload URL…",
"file_url": "https://content.doitong.com/…/product.jpg",
"method": "PUT",
"headers": { "Content-Type": "image/jpeg" },
"content_type": "image/jpeg",
"expires_in": 3600,
"max_bytes": 15728640
}
curl -X PUT "<upload_url>" -H "Content-Type: image/jpeg" --data-binary @product.jpg
curl -X POST "https://api.doitong.com/v1/run/{model_id}?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{"image": "https://content.doitong.com/…/product.jpg", "prompt": "..."}'
- عمليات الرفع المدعومة:
.jpgو.jpegو.pngو.webp(حتى 15 MB)، و.mp4و.movو.webm(حتى 200 MB). تحدد اللاحقة النوع؛ ويجب أن تطابقهاcontent_type. - يظل عنوان URL للرفع صالحًا لمدة ساعة واحدة. ويبقى
file_urlصالحًا. - بالنسبة إلى الصوت، استخدم عنوان URL عامًا أو معرّف بيانات URI.
ملفات المخرج
تختار مدة الاحتفاظ بملفات المخرج:
- إلى الأبد (
permanent، الافتراضي): حتى تحذفها، مقابل 100 أرصدة API (0.10 $) لكل GB شهريًا، تُفرض مرة يوميًا من رصيد API (1 GB = 1024³ bytes). - 7 يومًا (
temporary): مجانًا، ثم تُحذف من تخزيننا.
عيّن الإعداد الافتراضي باستخدام مفتاح التبديل "الاحتفاظ بالملفات إلى الأبد" في لوحة التحكم، أو باستخدام PATCH /account/storage، وتجاوزه لكل تشغيل باستخدام ?storage=temporary (أو permanent):
curl -X PATCH "https://api.doitong.com/v1/account/storage" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{"mode": "temporary"}'
يعرض كل طلب storage الخاص به (mode وbytes وexpires_at وexpired). ينطبق الإعداد على الطلبات الجديدة؛ وتبقى الملفات التي تحتفظ بها إلى الأبد حتى تحذفها باستخدام DELETE /requests/{id}/files (راجع الطلبات). إذا تعذر على رصيد API دفع تكلفة التخزين، فستتلقى بريدًا إلكترونيًا ولديك 30 يومًا لشحن الرصيد قبل أن تصبح الملفات المحتفظ بها مؤقتة.