Mistral: Mistral Small 4 (batch)
Mistral Small 4 نموذج هجين للنصوص والصور بقدرات التعليمات والاستدلال والبرمجة. يفعّل إصدار مزيج الخبراء، البالغ إجماليه 119 مليار معلمة، 6٫5 مليار معلمة لكل رمز، ويدعم سياقًا تحدده الشركة المطوّرة بطول 256 ألف رمز وجهد استدلال قابلًا للاختيار وJSON واستدعاءات الدوال.
عن النموذج
يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.
يجمع Mistral Small 4 اتباع التعليمات العامة والاستدلال والبرمجة في نموذج واحد متعدد الوسائط. تصفه الشركة المطوّرة بأنه يوحّد عائلات Instruct وMagistral للاستدلال وDevstral للبرمجة. يقبل النصوص والصور ويعيد نصوصًا، مع إتاحة استدعاءات الدوال ومخرجات JSON للتطبيقات التي تستخدم الأدوات.
البنية والميزات الرئيسية
يضم الإصدار 119 مليار معلمة إجمالية ويفعّل 6٫5 مليار لكل رمز. تحتوي بنيته من مزيج الخبراء على 128 خبيرًا، منهم 4 نشطون، وتوثّق الشركة المطوّرة نافذة سياق بطول 256 ألف رمز. يصف عدد المعلمات النشطة والخبراء تنظيم النموذج؛ وهما منفصلان عن كمية المحتوى النصي أو الصوري المدرج في مهمة واحدة.
يوفّر النموذج وظائف التعليمات والاستدلال في نقطة التحقق نفسها. وتحدّد الشركة المطوّرة أيضًا الرؤية والالتزام بموجّه النظام والدعم متعدد اللغات بعشرات اللغات، منها الإنجليزية والفرنسية والإسبانية والألمانية والإيطالية والبرتغالية والهولندية والصينية واليابانية والكورية والعربية. لذلك يمكن لتعليمة نصية السؤال عن صورة أو الجمع بين متطلب مكتوب ودليل مرئي، مع إعادة الإجابة كنص.
يمكن لمهمة بصرية تقديم صفحة مستند وطلب القيم المرتبطة بشرط مسمّى. أبقِ التسميات والوحدات مقروءة، واذكر ما إذا كانت النتيجة يجب أن تحفظ الصياغة الأصلية أو تلخّصها أو تقارنها بمصدر آخر. ويمكن لمهمة واجهة إرفاق لقطة شاشة بهدف المستخدم وطلب عنصر التحكم المرئي ذي الصلة والدليل الذي يدعم خطوة تالية مقترحة.
اختيار وضع التعليمات أو الاستدلال
توثّق البطاقة المنشورة جهد استدلال none لإجابة فورية بأسلوب التعليمات، وhigh للاستدلال، مع التوصية بـhigh للموجّهات المعقّدة. يُختار ذلك لكل طلب ضمن نموذج Small 4 نفسه. يمكن لتصنيف عادي أو إعادة صياغة قصيرة أن يكون له تعاقد إجابة مختلف عن مسألة رياضية أو بصرية أو برمجية تحتاج إلى شرح مفصّل.
توصي الشركة المطوّرة بدرجة حرارة 0.7 لجهد الاستدلال high. وللقيمة none، تحدّد درجات حرارة بين 0.0 و0.7 بحسب المهمة. تصف هذه الإعدادات الأوضاع الموثّقة، ولا تجعل جهد الاستدلال ضمانًا لصحة النتيجة. عرّف الافتراضات وشكل المخرجات والمادة المصدرية ذات الصلة قبل اختيار مقدار الاستدلال الذي تحتاجه المهمة.
لمسألة محلولة، قدّم الشرط كاملًا واطلب الخطوات المهمة المبرّرة يتبعها التعبير النهائي. ولمهمة شيفرة، قدّم المتطلب والدالة المتأثرة ومدخلًا ملموسًا؛ واطلب التنفيذ المقترح منفصلًا عن الشرح والأمثلة. تشمل عروض الاستخدام لدى الشركة المطوّرة اتباع التعليمات وأداة حساب مطبّقة على صورة والاستدلال البصري، بما يوضّح دخول النص والأدلة البصرية في هذه المهام المختلفة.
البرمجة والمستندات والأدوات
يُقدَّم النموذج لاستكشاف قواعد الشيفرة ووكلاء الهندسة البرمجية والمساعدين العامّين وفهم المستندات والبحث. يمكن لطلب وكيل برمجي تسمية الوحدة المطلوب تغييرها والواجهة الواجب الحفاظ عليها والسلوك الذي ينبغي أن ينتج. قدّم المصدر ذا الصلة وأدلة الفشل. يستطيع النموذج اقتراح العملية التالية أو تغيير شيفرة، بينما يوفّر التطبيق الوصول إلى المستودع والتنفيذ والتغذية الراجعة.
لاستخراج مستندات، حدّد الحقول المطلوبة وكيفية تمثيل المعلومات المفقودة. يمكن لسجل مفيد فصل معرّف المستند وعبارة المصدر والمتطلب المفسَّر والسؤال غير المحسوم. تسرد بطاقة خدمة الشركة المطوّرة المخرجات المنظّمة المخصّصة والإجابة عن أسئلة المستندات؛ وتستخدم الأخيرة معالجة المستندات وOCR لإعداد النص والبنية قبل تحليل النموذج اللغوي. وينبغي أن يحتفظ سؤال الصورة المباشر وسير المستندات بمساعدة OCR بإعداد المدخلات الخاص بكل منهما.
يتطلب استدعاء الدوال أدوات موصوفة بوضوح. يختار النموذج دالة وينشئ الوسائط؛ وينفّذ التطبيق العملية ويعيد نتيجتها للإجابة اللاحقة. ينطبق المنطق نفسه سواء كانت المهمة بحثًا أو حسابًا أو عملية برمجية. ينظّم تنسيق JSON إجابة، بينما يطلب استدعاء أداة إجراءً خارجيًا؛ وينبغي عدم التعامل معهما كنتيجتين قابلتين للاستبدال.
تسرد بطاقة الخدمة أيضًا المخرجات المتوقعة وبوادئ الإجابات والمعالجة الدفعية ومحادثات الوكلاء. تفيد المخرجات المتوقعة حين يجب إعادة توليد مستند أو ملف شيفرة بتغيير محدود فقط مع معرفة بقية المحتوى. حدّد التعديل والمواد الواجب الحفاظ عليها. يستخدم الاستكمال من بادئة بداية معروفة للاستجابة، بينما تتعلق المعالجة الدفعية بإرسال العمل، لا بوضع استدلال إضافي.
حدود السياق والإصدار
خطّط المهمة المكتوبة والمواد البصرية والمحادثة والإجابة المرغوبة حول السياق الموثّق البالغ 256 ألف رمز. يضبط مثال الاستخدام المنشور سياقًا من 262٬144 رمزًا، بينما مثال التوليد من 1٬024 رمزًا ليس سعة قصوى منفصلة للمخرجات. لا تقدّم المصادر التي جرت قراءتها حدًا صارمًا مستقلًا لطول الإجابة يُستعاض به عن طول المهمة المختار.
لـSmall 4 بنية خاصة من مزيج الخبراء بإجمالي 119 مليار معلمة وأوضاع هجينة خاصة به. وينبغي ألا يرث بنية Medium 3.5 الكثيفة بحجم 128 مليار معلمة أو إصداري Instruct وReasoning المنفصلين من Ministral 3. وتنشر الشركة المطوّرة أيضًا مُنتَجات منفصلة مكمّمة وأخرى لفك الترميز التخميني؛ وهي مُنتَجات نشر منفصلة، لا وسائط محتوى مختلفة. حافظ على إصدار Small 4 المسمّى والوضع المطلوب للشرح الفعلي أو السجل المنظّم أو نتيجة الشيفرة.
Ailoot Ultra · المعالجة الدفعية POST /v1/batches mistralai/mistral-small-2603:batch
mistralai/mistral-small-2603:batch
mistralai/mistral-small-2603:batchالبداية
Mistral Small 4 نموذج هجين للنصوص والصور بقدرات التعليمات والاستدلال والبرمجة. يفعّل إصدار مزيج الخبراء، البالغ إجماليه 119 مليار معلمة، 6٫5 مليار معلمة لكل رمز، ويدعم سياقًا تحدده الشركة المطوّرة بطول 256 ألف رمز وجهد استدلال قابلًا للاختيار وJSON واستدعاءات الدوال.
- المدخلات المقبولة
- النص
- النتائج
- النص
متاح في Ailoot · المدخلات والطرائق
Ailoot Ultra · المعالجة الدفعية POST /v1/batches
- الإدخال
text- الإخراج
text- صيغة الإخراج
- محتوى JSON مضمّن في results[].response.body
| الحقل | النوع | المتطلب | القيم والحدود | القيمة الافتراضية |
|---|---|---|---|---|
الحقلendpoint | النوعstring | المتطلبمطلوب | القيم والحدود /v1/chat/completions | القيمة الافتراضية— |
الحقلmodel | النوعstring | المتطلبمطلوب | القيم والحدود mistralai/mistral-small-2603:batch | القيمة الافتراضية— |
الحقلrequests | النوعbatch_item[] | المتطلبمطلوب | القيم والحدود الحد الأدنى للعناصر: 1 | القيمة الافتراضية— |
الحقلrequests[].custom_id | النوعstring | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلrequests[].body.messages | النوعmessage[] | المتطلبمطلوب | القيم والحدود | القيمة الافتراضية— |
الحقلcompletion_window | النوعstring | المتطلباختياري | القيم والحدود 24h | القيمة الافتراضية— |
الحقلprovider | النوعobject|null | المتطلباختياري | القيم والحدود | القيمة الافتراضية— |
الحقلrequests[].body.model | النوعstring | المتطلباختياري | القيم والحدود mistralai/mistral-small-2603:batch, mistralai/mistral-small-2603 | القيمة الافتراضية— |
الحقلprovider.only | النوعstring[] | المتطلباختياري | القيم والحدود mistral | القيمة الافتراضية— |
الحقل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.00015 / 1K من الرموز الإخراج · رموز الإخراج $0.0006 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.000015 / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت — / 1K من الرموز الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة — / 1K من الرموز |
| الإعداداتالشريحة 1 لطول الطلب | جدول التعرفة— | رموز السياق، أكثر من0 | رموز السياق، حتى القيمة شاملةًلا يوجد حد أقصى | الرسوم الإدخال · رموز الإدخال $0.00015 / 1K من الرموز الإخراج · رموز الإخراج $0.0006 / 1K من الرموز الإدخال · قراءة ذاكرة التخزين المؤقت $0.000015 / 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":"mistralai/mistral-small-2603: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 ['mistralai/mistral-small-2603:batch', 'mistralai/mistral-small-2603']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"mistralai/mistral-small-2603: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 mistralai/mistral-small-2603:batch
الأسماء البديلة لمسارات الطرائق
استخدم مسارات الطرائق المعروضة أعلاه.
معرّفات النماذج ذات الصلة IDs
FAQ · Mistral: Mistral Small 4 (batch)
- ما المدخلات والنتائج المتاحة؟
POST /v1/batches·mistralai/mistral-small-2603:batch:text→text- ما الحقول التي يستخدمها الطلب؟
POST /v1/batches·mistralai/mistral-small-2603:batch:endpoint,model,requests,completion_window,provider- ما الحدود المطبقة؟
POST /v1/batches·mistralai/mistral-small-2603:batch:requests.min_items:1