MoonshotAI: Kimi K3 (batch)
Kimi K3 هو نموذج استدلال أصلي متعدد الوسائط من Moonshot AI لمهام البرمجة الطويلة والعمل المعرفي. يقرأ النصوص والصور والفيديو، وينتج نصوصًا، ويدعم مسارات العمل المعتمدة على الأدوات بسياق بطول 1٬048٬576 رمزًا وسجل تفكير محفوظ عبر الخطوات.
عن النموذج
يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.
Kimi K3 هو نموذج وكلاء متعدد الوسائط مفتوح الأوزان من Moonshot AI للبرمجة طويلة الأمد والعمل المعرفي والاستدلال. يجمع النص مع فهم بصري أصلي للصور والفيديو، وينتج إجابة نصية أو طلب أداة. تبرز الشركة المصنّعة الجلسات الهندسية الممتدة والمستودعات الكبيرة والمهام التي تستخدم لقطات الشاشة أو التغذية الراجعة البصرية إلى جانب الشيفرة. يعرّف الموجز المفيد المُنتَج المرغوب والأدلة الواجب استخدامها والشرط الذي يعلن اكتمال العمل.
البنية والسياق الطويل
تصف بطاقة النموذج مزيج خبراء متناثرًا بإجمالي 2٫8 تريليون معلمة و104 مليارات معلمة مفعّلة. يختار تصميم Stable LatentMoE فيه 16 من 896 خبيرًا لكل رمز، مستخدمًا Kimi Delta Attention وAttention Residuals مع الانتباه المبوب. يبلغ طول السياق الدقيق 1٬048٬576 رمزًا. هذه مساحة لسياق مهمة كبير، وليست سببًا لإهمال حدود المصادر أو المساحة اللازمة للنتيجة.
يستخدم المُنتَج الأصلي المنشور تدريبًا واعيًا بالتكميم بأوزان MXFP4 وتفعيلات MXFP8. هذا تنسيق الإصدار لدى الشركة المصنّعة، وهو منفصل عن إصدار مكمّم مقدّم على نحو مستقل أو ادعاء بشأن طريقة تقديم مسار معيّن للنموذج. لا تحوّل الأوزان المفتوحة وعدد المعلمات الكبير رقم المعلمات النشطة إلى متطلبات التخزين أو العتاد الإجمالية.
إعداد مهمة برمجية كبيرة
قدّم مواد المستودع ذات الصلة والسلوك القائم والتغيير المطلوب وقيود التوافق. حدّد الملفات أو الواجهة التي يجب أن تؤثر فيها النتيجة، والفحوص التي تحدّد النجاح، وأي خطأ أو مدخل مقدّم يكشف المشكلة. يمكن لنتيجة مفيدة أن تكون تغيير شيفرة مركّزًا مع شرح وأدلة من الفحوص التي شُغّلت فعلًا، بدلًا من وصف إجراءات لم تُنفَّذ قط.
لمهمة تطوير بصري، ضمّن لقطة شاشة أو عرضًا واضحًا للنتيجة المقصودة مع الشيفرة ذات الصلة واختلاف محدّد. تصف الشركة المطوّرة مسارات عمل تشمل الواجهات الأمامية والألعاب وCAD وتستخدم التغذية الراجعة البصرية. اطلب التغيير الذي يربط الشيفرة بالنتيجة الملحوظة، واحتفظ بالمرجع حتى يُفحَص المُنتَج المُسلَّم بمقارنته به.
إعداد الصور والفيديو والعمل المعرفي
يستخدم دليل البدء السريع لدى الشركة المنتجة كائنات محتوى ذات أنواع محدّدة للرسائل البصرية؛ فـcontent مصفوفة، وليس تمثيلًا مُسلسَلًا لتلك المصفوفة. يستخدم سير الصور بيانات صور مرمّزة أو مرجع ملف مدعومًا بدلًا من عنوان صورة عام. ويرفع مثال الفيديو ملف فيديو ويقدّم المرجع الناتج مع سؤال عن محتواه. قدّم مصدرًا واضحًا وحدّد الملاحظة أو الفترة أو العلاقة المهمة. يقبل سير الرؤية لدى الشركة المنتجة صور JPEG وPNG وGIF وWebP وBMP وHEIC وHEIF، وفيديو MP4 وMPEG وMOV وAVI وFLV وMPG وWebM وWMV و3GPP. ويمكن فك ترميز GIF أو WebP المتحرك كفيديو. قدّم مصدر SVG كنص. توصي الشركة المطوّرة بصور حتى 4096 × 2160 وفيديو حتى 1920 × 1080؛ وهذه توصيات دقة، لا عتبات رفض. أبقِ جسم الطلب ضمن حد الحجم الموثّق 100M، وارفع الوسائط الكبيرة أو المتكررة الاستخدام كملفات.
للبحث الكثيف بالمستندات، ضع تسميات للمصادر واذكر الأسئلة التي يجب أن يجيب عنها التقرير النهائي. ولشرح فيديو، حدّد الأحداث أو التسلسل المطلوب تحليله بدلًا من طلب تعليقات بلا حدود. يستخدم K3 المحتوى البصري كدليل للاستدلال ويعيد نصوصًا أو طلبات أدوات. يستطيع التطبيق تمرير تلك الطلبات إلى أدوات وسائط لإنشاء مُنتَجات صور أو فيديو منفصلة.
التفكير مفعّل دائمًا
التفكير مفعّل دائمًا في واجهة الشركة المنتجة لـK3. يقبل الإعداد العلوي reasoning_effort القيم low وhigh وmax، مع max كقيمة افتراضية. هذه اختيارات خاصة بالنموذج؛ وينبغي عدم افتراض إعداد بلا تفكير أو قيمة جهد من عائلة أخرى. تميّز إرشادات الانتقال لدى الشركة المطوّرة K3 عن K2.x باستخدام reasoning_effort بدلًا من نقل إعداد thinking الأقدم.
توثّق الشركة المنتجة حقل reasoning_content منفصلًا عن محتوى الإجابة النهائية في النتائج المتدفقة. لمحادثة متعددة الأدوار أو سير أدوات، تشترط إعادة تمرير رسالة المساعد المعادة كاملةً دون تغيير، بما يشمل reasoning_content وtool_calls. يؤدي الاحتفاظ بالإجابة النهائية المرئية وحدها إلى فقدان معلومات يتوقعها سير التفكير المحفوظ للنموذج في الخطوة التالية.
الإجابات النهائية المنظّمة والاستكمال الجزئي
يوثّق دليل البدء السريع مخرجات صارمة بمخطط JSON لمحتوى الرسالة النهائية. عرّف الحقول ومعانيها حول المُنتَج الذي يحتاجه التطبيق، وحلّل ذلك المحتوى النهائي بدلًا من جمعه مع حقل الاستدلال. يمكن لنتيجة منظّمة تمثيل معلومات مستخرجة من مواد مقدّمة أو تنسيق تقرير معرّف؛ يقيّد المخطط شكلها، بينما تحدّد أدلة المصدر صحة قيمها.
يمكن لوضع Partial استكمال بادئة نصية مقدّمة. يضع مثال الشركة المنتجة رسالة مساعد جزئية في نهاية السجل، ويجمع تلك البادئة مع الاستكمال المعاد للعرض. استخدم ذلك حين تكون للمُنتَج المطلوب بداية ثابتة ذات معنى، مع إبقاء البادئة منفصلة عن البقية المُولَّدة.
الأدوات واستمرارية نتائجها
يدعم K3 أدوات دوال مخصّصة. يفرض مثال الشركة المنتجة استخدام أداة في الدور الأول، ويحتفظ برسالة المساعد كاملةً، وينفّذ كل استدعاء معاد، ويلحق نتيجة أداة مطابقة قبل طلب الإجابة النهائية. الاستدعاء المقترح ليس دليلًا على نجاح العملية؛ فالنتيجة المعادة فعلًا تصبح الدليل للخطوة التالية.
يُدخل سير التحميل الديناميكي تعريف أداة كاملًا عند نقطة محدّدة من سجل الرسائل. يحتاج التعريف إلى اسمه وغرضه ومعلماته، ويجب أن يبقى في السجل اللاحق لأن الخادم لا يحتفظ بذلك الإعلان بصورة مستقلة. أبقِ قدرات الأدوات والوسائط المقدّمة والملاحظات الحقيقية مرتبطة حتى تواصل مهمة طويلة من العمل المكتمل بالفعل.
ضوابط المخرجات والسياق المتكرر
توثّق الشركة المنتجة سماح إكمال افتراضيًا من 131٬072 رمزًا، قابلًا للتهيئة حتى 1٬048٬576 ضمن قيود السياق الإجمالية للنموذج. تثبّت واجهة K3 API الحالية لديها temperature عند 1.0 وtop_p عند 0.95، ونتيجة واحدة، وعقوبتي الحضور والتكرار عند الصفر، وتوجّه المستدعين إلى إغفال ضوابط أخذ العينات تلك. هذه إعدادات متغيّر الشركة المنتجة المحدّد، وليست قائمة قابلة للنقل لضوابط يمكن تعديلها.
التخزين المؤقت للسياق تلقائي للبوادئ المتكررة المؤهلة، مع خيارَي مدة بقاء TTL موثّقين من 5 دقائق وساعة واحدة، و5 دقائق كخيار افتراضي. تظل كتل الذاكرة المؤقتة الجزئية حالات إخفاق في إصابة الذاكرة المؤقتة. أبقِ السياق القابل لإعادة الاستخدام ثابتًا وافحص الاستخدام الفعلي بدلًا من تأكيد إصابة الذاكرة المؤقتة من تكرار النص وحده. للمُنتَج النهائي، احتفظ بالمصادر المقدّمة وأدلة الأدوات الفعلية وبنية المخرجات المطلوبة، وافحص استيفاء الإجابة الطويلة أو النتيجة الهندسية لمعايير الإكمال المعلنة.
Ailoot Ultra · المعالجة الدفعية POST /v1/batches moonshotai/kimi-k3:batch
moonshotai/kimi-k3:batchالبداية
Kimi K3 هو نموذج استدلال أصلي متعدد الوسائط من Moonshot AI لمهام البرمجة الطويلة والعمل المعرفي. يقرأ النصوص والصور والفيديو، وينتج نصوصًا، ويدعم مسارات العمل المعتمدة على الأدوات بسياق بطول 1٬048٬576 رمزًا وسجل تفكير محفوظ عبر الخطوات.
- المدخلات المقبولة
- النص
- النتائج
- النص
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · المعالجة الدفعية POST /v1/batches
- الإدخال
text- الإخراج
text- صيغة الإخراج
- محتوى JSON مضمّن في results[].response.body
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلendpoint | النوعstring | المتطلبمطلوب | القيم والحدود /v1/chat/completions | القيمة الافتراضية— |
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود moonshotai/kimi-k3:batch | القيمة الافتراضية— |
الحقلrequests | النوعbatch_item[] | المتطلبمطلوب | القيم والحدود الحد الأدنى للعناصر: 1 | القيمة الافتراضية— |
الحقلrequests[].custom_id | النوعstring | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلrequests[].body.messages | النوعmessage[] | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلcompletion_window | النوعstring | المتطلباختياري | القيم والحدود 24h | القيمة الافتراضية— |
الحقلprovider | النوعobject|null | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلrequests[].body.model | النوعstring | المتطلباختياري | القيم والحدود moonshotai/kimi-k3:batch, moonshotai/kimi-k3 | القيمة الافتراضية— |
الحقلprovider.only | النوعstring[] | المتطلباختياري | القيم والحدود deepinfra/bf16 | القيمة الافتراضية— |
الحقلprovider.allow_fallbacks | النوعboolean|null | المتطلباختياري | القيم والحدود false, null | القيمة الافتراضية— |
معلمات الطريقة ودورة حياتها
| المعلمة | المواصفات |
|---|---|
المعلمةcontent_type | المواصفاتapplication/json |
المعلمةrequired | المواصفاتendpoint, model, requests |
المعلمةmaterial_types | المواصفاتtext |
المعلمةrepresentation | المواصفاتطلبات requests[] مضمّنة؛ يحتوي كل عنصر على custom_id وbody |
المعلمةrequest_endpoint_profile | المواصفات/v1/chat/completions |
المعلمةfile_material | المواصفاتيمكن للمستدعي قراءة محتوى JSONL الفعلي بترميز UTF-8 محليًا إلى requests[]. لا يُستخدم غرض للرفع ولا input_file_id ولا مرجع إلى ملف. إذا كانت مواد العميل مفقودة أو فارغة، يتوقف التحضير قبل POST. |
المعلمةserialization_order | المواصفاتendpoint, model, provider (إذا تم توفيره), completion_window (إذا تم توفيره), requests في النهاية |
المعلمةoptional_controls | المواصفاتprovider.only, provider.allow_fallbacks, completion_window |
المعلمةschema_scope | المواصفاتأجسام طلبات Text Chat Completions ضمن غلاف Batch المضمّن الموثّق. |
دورة الحياة: asynchronous
GET /v1/batches/{operation_id} · قيمة response.id الفعلية من استجابة الإنشاء الأصلية؛ مع المستخدم والمفتاح والمجموعة نفسها
الباقات
مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.
- الوضع السريع
- غير محدد عند اختيار الوضع السريع
- الوضع المرن
- غير محدد عند اختيار وضع flex
- أقصى جهد للاستدلال
- غير محدد عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال
- تسعير التخزين المؤقت الصريح
- غير مفعّل عند طلب التخزين المؤقت الصريح
تعرفات Ailoot
الأسعار حسب الإعدادات
طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.
| الإعدادات | جدول التعرفة | رموز السياق، أكثر من | رموز السياق، حتى القيمة شاملةً | الرسوم |
|---|---|---|---|---|
| الإعداداتالتعرفات الأساسية للرموز | جدول التعرفةالتعرفة الأساسية | رموز السياق، أكثر من— | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.00456 / 1K من الرموز الإخراج · رموز الإخراج $0.0228 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.000456 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة — / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.00456 / 1K من الرموز الإخراج · رموز الإخراج $0.0228 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.000456 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة — / 1K من الرموز |
تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. كيفية عمل حجز المبلغ وتسوية الرسوم →
أمثلة للطلبات
Ailoot Ultra · المعالجة الدفعية
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"moonshotai/kimi-k3:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen
def prepare_requests(customer_path):
path = Path(customer_path)
if not path.is_file(): raise ValueError("Customer JSONL file is missing")
items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
if not items: raise ValueError("Customer JSONL contains no requests")
ids = set()
for item in items:
if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
cid = item["custom_id"]
if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
ids.add(cid)
if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
supplied_model = item["body"].get("model")
if supplied_model is not None and supplied_model not in ['moonshotai/kimi-k3:batch', 'moonshotai/kimi-k3']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"moonshotai/kimi-k3:batch", "requests":items}
if __name__ == "__main__":
material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
body = prepare_requests(material)
key = os.environ.get("AILOOT_API_KEY", "")
if not key: raise SystemExit("Set AILOOT_API_KEY")
request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
with urlopen(request) as response:
raw = response.read()
Path("batch-create-response.json").write_bytes(raw)
print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
استلام النتائج وحفظها
Ailoot Ultra · المعالجة الدفعية
محتوى JSON مضمّن في results[].response.body
GET /v1/batches/{operation_id}
التحقق من حالة المهمة
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
الاحتفاظ بكل النتائج المكتملة
احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.
احتفظ بمحتوى JSON الكامل للحالة الأصلية، وبكل نتيجة وcustom_id، وبجسم الاستجابة أو الخطأ كاملًا. احفظ results[] المكتملة بصيغة JSONL دون تصفية.
عند الحاجة إلى التحقق من الاستجابة الأصلية
احتفظ بمعرّف العملية الأصلي. تتضمن الاستجابة 503 result_pending_check الترويسة X-Should-Retry:false؛ لا تُعِد إرسال الدفعة الأصلية التي لا تُعرف نتيجتها مطلقًا.
حقول الاستجابة
| الحقل | النوع |
|---|---|
الحقلresults[].custom_id | النوعstring |
الحقلresults[].response.body.choices[].message.content | النوعstring|null |
الحقلresults[].error | النوعobject|null |
الحقلusage | النوعobject|null |
الحقلid | النوعstring |
الحقلmodel | النوعstring |
الحقلendpoint | النوعstring |
الحقلstatus | النوعstring |
الحقلrequest_counts | النوعobject |
الحقلresults[].id | النوعstring |
الحقلresults[].response.status_code | النوعinteger |
الحقلresults[].response.request_id | النوعstring |
الأخطاء والخطوات التالية
| الاستجابة | الشرط | الخطوة التالية |
|---|---|---|
الاستجابة400 · invalid_request_error | الشرطالغلاف المضمّن الموثّق غير صالح، أو توجد مفاتيح مكررة أو مشكلة في هوية العناصر، أو تعارض مع قدرات النموذج المضبوطة. | الخطوة التاليةصحح الحقول المحددة قبل أي إرسال جديد. |
الاستجابة401 · authentication_error | الشرطمفتاح API غير صالح. | الخطوة التاليةاستخدم مفتاح Ailoot المصرّح به. |
الاستجابة403 · permission_error | الشرطمجموعة المعالجة الدفعية غير متاحة. | الخطوة التاليةتحقق من صلاحية الوصول الممنوحة للمفتاح والمجموعة. |
الاستجابة422 · invalid_request_error | الشرطتستخدم المعالجة الدفعية الفوترة من الرصيد؛ ويُرفض إنشاؤها عبر الاشتراك. | الخطوة التاليةاستخدم المجموعة المصرّح بها التي تُخصم رسومها من الرصيد. |
الاستجابة422 · price_unavailable | الشرطلا يمكن تقديم تقدير تكلفة لمدخلات المعالجة الدفعية. | الخطوة التاليةاحتفظ بالاستجابة؛ واستخدم المدخلات الموثّقة لعائلة الواجهات. |
الاستجابة402 · billing_error | الشرطحجز الرصيد للمعالجة الدفعية غير متاح. | الخطوة التاليةعالج ما يمنع قبول الطلب قبل إرسال طلب جديد. |
الاستجابة503 · price_unavailable | الشرطسعر طريقة المعالجة الدفعية أو تعرفاتها الأصلية غير متاحة. | الخطوة التاليةاحتفظ بالاستجابة؛ ولا تستبدل الأسعار. |
الاستجابة503 · api_error | الشرطمسار المورّد المحدد غير متاح. | الخطوة التاليةاحتفظ بالاستجابة لإصلاح المسار. |
الاستجابة503 · result_pending_check | الشرطالنتيجة الأصلية تتطلب التحقق؛ X-Should-Retry:false. | الخطوة التاليةاحتفظ بقيمة operation_id/id الأصلية واقرأ حالتها؛ ولا تُكرر POST الأصلي مطلقًا. |
الاستجابة404 · not_found | الشرطعملية حالة المعالجة الدفعية غير موجودة أو مملوكة لهوية أخرى. | الخطوة التاليةاستخدم id الأصلي كما هو، والمستخدم والمفتاح والمجموعة نفسها. |
الأسماء البديلة
الأسماء البديلة للنموذج
Ailoot Ultra moonshotai/kimi-k3:batch
الأسماء البديلة لمسارات الطرائق
استخدم مسارات الطرائق المعروضة أعلاه.
معرّفات النماذج ذات الصلة IDs
FAQ · MoonshotAI: Kimi K3 (batch)
- ما المدخلات والنتائج المتاحة؟
POST /v1/batches·moonshotai/kimi-k3:batch:text→text- ما الحقول التي يستخدمها الطلب؟
POST /v1/batches·moonshotai/kimi-k3:batch:endpoint,model,requests,completion_window,provider- ما الحدود المطبقة؟
POST /v1/batches·moonshotai/kimi-k3:batch:requests.min_items:1