{
  "aboutHtml": "<p>Gemini Embedding 2 هو نموذج التضمين المتعدد الوسائط من Google للتمثيل الرقمي للنصوص والصور والفيديو والصوت وPDF. ويحوّل أنواع الوسائط المختلفة إلى فضاء مشترك، حتى يتمكن التطبيق من مقارنة المعنى عبرها. والنتيجة متجه أعداد مفيد للبحث الدلالي أو استرجاع المستندات أو التوصية أو التصنيف أو التجميع؛ وليست إجابة مكتوبة أو ملف وسائط مولّدًا. وتوثّق Google تغطية دلالية عبر أكثر من 100 لغة.</p><p>بالنسبة إلى قاعدة معرفة، أنشئ متجهات للمقاطع المصدرية، وقارن استعلام المستخدم بها، واسترجع المادة ذات الصلة. ويمكن لنموذج نصي منفصل بعد ذلك صياغة إجابة باستخدام تلك المصادر. وفي مجموعة وسائط، يمكن لوصف نصي البحث عن صور أو فيديو ذي صلة؛ ويمكن للصورة أيضًا أن تكون الاستعلام. حافظ على اتصال كل متجه بالمحتوى الأصلي، بما في ذلك مرجع الصفحة أو المقطع، حتى يمكن فحص النتيجة المسترجعة وعرضها في سياقها الأصلي.</p><p>حد المدخلات الإجمالي هو 8,192 رمزًا. ويتيح دليل النموذج المستقر ما يصل إلى ست صور PNG أو JPEG، وما يصل إلى 180 ثانية من صوت MP3 أو WAV، وما يصل إلى 120 ثانية من فيديو MP4 أو MOV. وترميزات الفيديو الموثّقة هي H264 وH265 وAV1 وVP9. وتستخدم معالجة الفيديو 32 إطارًا كحد أقصى: تُؤخذ عينات من المقاطع التي تصل إلى 32 ثانية بمعدل إطار واحد في الثانية، بينما تُؤخذ عينات موزعة بالتساوي من المقاطع الأطول وصولًا إلى 32 إطارًا. ولا يُعالج المسار الصوتي للفيديو ضمن مدخل الفيديو هذا؛ أنشئ تضمينًا لصوته على نحو منفصل عندما يكون مهمًا للاسترجاع.</p><p>يقبل مدخل PDF ملفًا واحدًا حتى ست صفحات. وتوصي Google بصفحة واحدة لكل PDF للحصول على أفضل جودة. قسّم المصدر الأكبر إلى صفحات أو أقسام ذات معنى، واحتفظ بعلاقتها بالمستند الأصلي. واختر مقتطفًا يمثّل ما ينبغي أن يكون قابلًا للاسترجاع، بدلًا من جمع مواد غير مرتبطة لمجرد أنها تلائم الحد. ويظل حد الرموز المشترك منطبقًا على طلب الوسائط المختلطة. وتستهلك كل صفحة PDF عددًا قدره 258 رمزًا مرئيًا، إضافة إلى رموز النص المستخرج منها. وفي سير العمل الموثّق لدى Google، يُقتطع المحتوى الذي يتجاوز الحد المشترك البالغ 8,192 رمزًا من دون خطأ.</p><p>عدد أبعاد المخرجات مرن من 128 إلى 3,072، بقيمة افتراضية تبلغ 3,072 وأحجام موصى بها هي 768 و1,536 و3,072. ويستخدم النموذج Matryoshka Representation Learning، لذلك تظل بدايات المتجه مفيدة عند الأبعاد الأصغر. ويوثّق دليله التطبيع التلقائي لكل من المتجهات الافتراضية والمختصرة. اختر بُعدًا متسقًا للسجلات والاستعلامات التي يقارنها تطبيقك؛ فالحجم المطلوب يغيّر التمثيل الرقمي، لا المحتوى المصدري نفسه.</p><p>في المهام النصية فقط، أدرج الغرض داخل النص بدلًا من استخدام الحقل الأقدم task_type. وتفرّق Google بين الاسترجاع غير المتناظر والمقارنة المتناظرة. ويستخدم استعلام البحث “task: search result | query: {content}”، بينما يستخدم المستند المصدري “title: {title} | text: {content}”؛ واستخدم “title: none” إذا لم يكن له عنوان. ولمهام الإجابة عن الأسئلة والتحقق من الحقائق واسترجاع الشيفرة بادئات استعلام خاصة بها. وفي التصنيف أو التجميع أو تشابه الجمل، استخدم تنسيق المهمة نفسه بصورة متسقة على الجانبين. وينصح الدليل عمومًا بعدم إضافة بادئة خاصة بالمهمة إلى الجزء النصي من تمثيل متعدد الوسائط مجمّع.</p><p>تحدّد بنية المدخل ما إذا كانت النتيجة تمثّل عنصرًا مجمّعًا واحدًا أم عناصر منفصلة. فالأجزاء المتعددة المقدَّمة معًا تنشئ تضمينًا مجمّعًا؛ وتنشئ كائنات Content المنفصلة تضمينات منفصلة لكل عنصر. وفي منشور يتضمن نصًا وصورة، يمكن لتمثيل مجمّع التقاط العلاقة بينهما. وبالنسبة إلى السجلات القابلة للبحث بصورة مستقلة، أبقها منفصلة. ويؤثر هذا الاختيار في مستوى تفصيل الاسترجاع: فمتجه واحد لمنشور كامل يختلف عن متجه لكل مقطع أو صورة.</p><p>يذكر الدليل أن متجهات Gemini Embedding 001 وGemini Embedding 2 تشغل فضاءين غير متوافقين، ولا يمكن مقارنتها مباشرةً. وتحتاج المجموعة المنقولة من النموذج الأقدم إلى إعادة إنشاء تضميناتها للفضاء الجديد. حافظ على اتساق اختيار النموذج والأبعاد مع المتجهات التي تُقارَن، واحتفظ بالنصوص والوسائط الأصلية منفصلة عن الفهرس الرقمي. وتشابه التضمين إشارة للاسترجاع، وليس شرحًا واقعيًا لسبب إجابة مستند عن سؤال المستخدم.</p><p>في كتالوج عملي، أنشئ تضمينًا لصورة المنتج مع وصفه المعتمد عندما ينبغي استرجاع الزوج بوصفه عنصرًا واحدًا. وفي مجموعة مستندات، أنشئ تضمينات لمقاطع محددة الموضوع، وقارنها باستعلام مصوغ وفق الغرض، ثم اعرض المقاطع المصدرية بجانب نتيجة البحث. وبالنسبة إلى الصوت أو الفيديو، اختر الجزء الذي يصف الحدث القابل للبحث واحتفظ بنطاقه الزمني الأصلي. والناتج المفيد تمثيل رقمي مرتبط بأدلة مصدرية للخطوة التالية من البحث أو التحليل في التطبيق.</p>",
  "aboutText": "Gemini Embedding 2 هو نموذج التضمين المتعدد الوسائط من Google للتمثيل الرقمي للنصوص والصور والفيديو والصوت وPDF. ويحوّل أنواع الوسائط المختلفة إلى فضاء مشترك، حتى يتمكن التطبيق من مقارنة المعنى عبرها. والنتيجة متجه أعداد مفيد للبحث الدلالي أو استرجاع المستندات أو التوصية أو التصنيف أو التجميع؛ وليست إجابة مكتوبة أو ملف وسائط مولّدًا. وتوثّق Google تغطية دلالية عبر أكثر من 100 لغة.\n\nبالنسبة إلى قاعدة معرفة، أنشئ متجهات للمقاطع المصدرية، وقارن استعلام المستخدم بها، واسترجع المادة ذات الصلة. ويمكن لنموذج نصي منفصل بعد ذلك صياغة إجابة باستخدام تلك المصادر. وفي مجموعة وسائط، يمكن لوصف نصي البحث عن صور أو فيديو ذي صلة؛ ويمكن للصورة أيضًا أن تكون الاستعلام. حافظ على اتصال كل متجه بالمحتوى الأصلي، بما في ذلك مرجع الصفحة أو المقطع، حتى يمكن فحص النتيجة المسترجعة وعرضها في سياقها الأصلي.\n\nحد المدخلات الإجمالي هو 8,192 رمزًا. ويتيح دليل النموذج المستقر ما يصل إلى ست صور PNG أو JPEG، وما يصل إلى 180 ثانية من صوت MP3 أو WAV، وما يصل إلى 120 ثانية من فيديو MP4 أو MOV. وترميزات الفيديو الموثّقة هي H264 وH265 وAV1 وVP9. وتستخدم معالجة الفيديو 32 إطارًا كحد أقصى: تُؤخذ عينات من المقاطع التي تصل إلى 32 ثانية بمعدل إطار واحد في الثانية، بينما تُؤخذ عينات موزعة بالتساوي من المقاطع الأطول وصولًا إلى 32 إطارًا. ولا يُعالج المسار الصوتي للفيديو ضمن مدخل الفيديو هذا؛ أنشئ تضمينًا لصوته على نحو منفصل عندما يكون مهمًا للاسترجاع.\n\nيقبل مدخل PDF ملفًا واحدًا حتى ست صفحات. وتوصي Google بصفحة واحدة لكل PDF للحصول على أفضل جودة. قسّم المصدر الأكبر إلى صفحات أو أقسام ذات معنى، واحتفظ بعلاقتها بالمستند الأصلي. واختر مقتطفًا يمثّل ما ينبغي أن يكون قابلًا للاسترجاع، بدلًا من جمع مواد غير مرتبطة لمجرد أنها تلائم الحد. ويظل حد الرموز المشترك منطبقًا على طلب الوسائط المختلطة. وتستهلك كل صفحة PDF عددًا قدره 258 رمزًا مرئيًا، إضافة إلى رموز النص المستخرج منها. وفي سير العمل الموثّق لدى Google، يُقتطع المحتوى الذي يتجاوز الحد المشترك البالغ 8,192 رمزًا من دون خطأ.\n\nعدد أبعاد المخرجات مرن من 128 إلى 3,072، بقيمة افتراضية تبلغ 3,072 وأحجام موصى بها هي 768 و1,536 و3,072. ويستخدم النموذج Matryoshka Representation Learning، لذلك تظل بدايات المتجه مفيدة عند الأبعاد الأصغر. ويوثّق دليله التطبيع التلقائي لكل من المتجهات الافتراضية والمختصرة. اختر بُعدًا متسقًا للسجلات والاستعلامات التي يقارنها تطبيقك؛ فالحجم المطلوب يغيّر التمثيل الرقمي، لا المحتوى المصدري نفسه.\n\nفي المهام النصية فقط، أدرج الغرض داخل النص بدلًا من استخدام الحقل الأقدم task_type. وتفرّق Google بين الاسترجاع غير المتناظر والمقارنة المتناظرة. ويستخدم استعلام البحث “task: search result | query: {content}”، بينما يستخدم المستند المصدري “title: {title} | text: {content}”؛ واستخدم “title: none” إذا لم يكن له عنوان. ولمهام الإجابة عن الأسئلة والتحقق من الحقائق واسترجاع الشيفرة بادئات استعلام خاصة بها. وفي التصنيف أو التجميع أو تشابه الجمل، استخدم تنسيق المهمة نفسه بصورة متسقة على الجانبين. وينصح الدليل عمومًا بعدم إضافة بادئة خاصة بالمهمة إلى الجزء النصي من تمثيل متعدد الوسائط مجمّع.\n\nتحدّد بنية المدخل ما إذا كانت النتيجة تمثّل عنصرًا مجمّعًا واحدًا أم عناصر منفصلة. فالأجزاء المتعددة المقدَّمة معًا تنشئ تضمينًا مجمّعًا؛ وتنشئ كائنات Content المنفصلة تضمينات منفصلة لكل عنصر. وفي منشور يتضمن نصًا وصورة، يمكن لتمثيل مجمّع التقاط العلاقة بينهما. وبالنسبة إلى السجلات القابلة للبحث بصورة مستقلة، أبقها منفصلة. ويؤثر هذا الاختيار في مستوى تفصيل الاسترجاع: فمتجه واحد لمنشور كامل يختلف عن متجه لكل مقطع أو صورة.\n\nيذكر الدليل أن متجهات Gemini Embedding 001 وGemini Embedding 2 تشغل فضاءين غير متوافقين، ولا يمكن مقارنتها مباشرةً. وتحتاج المجموعة المنقولة من النموذج الأقدم إلى إعادة إنشاء تضميناتها للفضاء الجديد. حافظ على اتساق اختيار النموذج والأبعاد مع المتجهات التي تُقارَن، واحتفظ بالنصوص والوسائط الأصلية منفصلة عن الفهرس الرقمي. وتشابه التضمين إشارة للاسترجاع، وليس شرحًا واقعيًا لسبب إجابة مستند عن سؤال المستخدم.\n\nفي كتالوج عملي، أنشئ تضمينًا لصورة المنتج مع وصفه المعتمد عندما ينبغي استرجاع الزوج بوصفه عنصرًا واحدًا. وفي مجموعة مستندات، أنشئ تضمينات لمقاطع محددة الموضوع، وقارنها باستعلام مصوغ وفق الغرض، ثم اعرض المقاطع المصدرية بجانب نتيجة البحث. وبالنسبة إلى الصوت أو الفيديو، اختر الجزء الذي يصف الحدث القابل للبحث واحتفظ بنطاقه الزمني الأصلي. والناتج المفيد تمثيل رقمي مرتبط بأدلة مصدرية للخطوة التالية من البحث أو التحليل في التطبيق.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "651896c7014fa29e37141fe279c2014ab6a815a26017a4c8729b00503d317604",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ar",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">G</span><h2 id=\"sheet-title\">Google: Gemini Embedding 2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"إغلاق\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/gemini-embedding-2</code><button type=\"button\" id=\"copy-id\">نسخ ID</button></div><nav class=\"card-jump-nav\" aria-label=\"أقسام بطاقة النموذج\"><button type=\"button\" data-card-jump=\"overview\">البداية</button><button type=\"button\" data-card-jump=\"methods\">المدخلات والطرائق</button><button type=\"button\" data-card-jump=\"pricing\">الباقات</button><button type=\"button\" data-card-jump=\"examples\">أمثلة</button><button type=\"button\" data-card-jump=\"results\">النتائج</button><button type=\"button\" data-card-jump=\"aliases\">الأسماء البديلة</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"طرائق API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|embeddings|/v1/embeddings|google%2Fgemini-embedding-2\">التضمينات</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">البداية</h3><p class=\"mdesc-full\">يحوّل Gemini Embedding 2 النصوص والصور والصوت والفيديو وPDF إلى فضاء رقمي مشترك. وتدعم متجهاته البحث عبر الوسائط والاسترجاع والتصنيف والتجميع، بأبعاد مرنة وحد مدخلات من 8,192 رمزًا.</p><dl class=\"card-io\" data-card-io><div><dt>المدخلات المقبولة</dt><dd>النص · token_ids</dd></div><div><dt>النتائج</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>عن النموذج</summary><p class=\"note-s\" data-model-method-boundary>يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.</p><div class=\"mabout\" id=\"m-about\"><p>Gemini Embedding 2 هو نموذج التضمين المتعدد الوسائط من Google للتمثيل الرقمي للنصوص والصور والفيديو والصوت وPDF. ويحوّل أنواع الوسائط المختلفة إلى فضاء مشترك، حتى يتمكن التطبيق من مقارنة المعنى عبرها. والنتيجة متجه أعداد مفيد للبحث الدلالي أو استرجاع المستندات أو التوصية أو التصنيف أو التجميع؛ وليست إجابة مكتوبة أو ملف وسائط مولّدًا. وتوثّق Google تغطية دلالية عبر أكثر من 100 لغة.</p><p>بالنسبة إلى قاعدة معرفة، أنشئ متجهات للمقاطع المصدرية، وقارن استعلام المستخدم بها، واسترجع المادة ذات الصلة. ويمكن لنموذج نصي منفصل بعد ذلك صياغة إجابة باستخدام تلك المصادر. وفي مجموعة وسائط، يمكن لوصف نصي البحث عن صور أو فيديو ذي صلة؛ ويمكن للصورة أيضًا أن تكون الاستعلام. حافظ على اتصال كل متجه بالمحتوى الأصلي، بما في ذلك مرجع الصفحة أو المقطع، حتى يمكن فحص النتيجة المسترجعة وعرضها في سياقها الأصلي.</p><p>حد المدخلات الإجمالي هو 8,192 رمزًا. ويتيح دليل النموذج المستقر ما يصل إلى ست صور PNG أو JPEG، وما يصل إلى 180 ثانية من صوت MP3 أو WAV، وما يصل إلى 120 ثانية من فيديو MP4 أو MOV. وترميزات الفيديو الموثّقة هي H264 وH265 وAV1 وVP9. وتستخدم معالجة الفيديو 32 إطارًا كحد أقصى: تُؤخذ عينات من المقاطع التي تصل إلى 32 ثانية بمعدل إطار واحد في الثانية، بينما تُؤخذ عينات موزعة بالتساوي من المقاطع الأطول وصولًا إلى 32 إطارًا. ولا يُعالج المسار الصوتي للفيديو ضمن مدخل الفيديو هذا؛ أنشئ تضمينًا لصوته على نحو منفصل عندما يكون مهمًا للاسترجاع.</p><p>يقبل مدخل PDF ملفًا واحدًا حتى ست صفحات. وتوصي Google بصفحة واحدة لكل PDF للحصول على أفضل جودة. قسّم المصدر الأكبر إلى صفحات أو أقسام ذات معنى، واحتفظ بعلاقتها بالمستند الأصلي. واختر مقتطفًا يمثّل ما ينبغي أن يكون قابلًا للاسترجاع، بدلًا من جمع مواد غير مرتبطة لمجرد أنها تلائم الحد. ويظل حد الرموز المشترك منطبقًا على طلب الوسائط المختلطة. وتستهلك كل صفحة PDF عددًا قدره 258 رمزًا مرئيًا، إضافة إلى رموز النص المستخرج منها. وفي سير العمل الموثّق لدى Google، يُقتطع المحتوى الذي يتجاوز الحد المشترك البالغ 8,192 رمزًا من دون خطأ.</p><p>عدد أبعاد المخرجات مرن من 128 إلى 3,072، بقيمة افتراضية تبلغ 3,072 وأحجام موصى بها هي 768 و1,536 و3,072. ويستخدم النموذج Matryoshka Representation Learning، لذلك تظل بدايات المتجه مفيدة عند الأبعاد الأصغر. ويوثّق دليله التطبيع التلقائي لكل من المتجهات الافتراضية والمختصرة. اختر بُعدًا متسقًا للسجلات والاستعلامات التي يقارنها تطبيقك؛ فالحجم المطلوب يغيّر التمثيل الرقمي، لا المحتوى المصدري نفسه.</p><p>في المهام النصية فقط، أدرج الغرض داخل النص بدلًا من استخدام الحقل الأقدم task_type. وتفرّق Google بين الاسترجاع غير المتناظر والمقارنة المتناظرة. ويستخدم استعلام البحث “task: search result | query: {content}”، بينما يستخدم المستند المصدري “title: {title} | text: {content}”؛ واستخدم “title: none” إذا لم يكن له عنوان. ولمهام الإجابة عن الأسئلة والتحقق من الحقائق واسترجاع الشيفرة بادئات استعلام خاصة بها. وفي التصنيف أو التجميع أو تشابه الجمل، استخدم تنسيق المهمة نفسه بصورة متسقة على الجانبين. وينصح الدليل عمومًا بعدم إضافة بادئة خاصة بالمهمة إلى الجزء النصي من تمثيل متعدد الوسائط مجمّع.</p><p>تحدّد بنية المدخل ما إذا كانت النتيجة تمثّل عنصرًا مجمّعًا واحدًا أم عناصر منفصلة. فالأجزاء المتعددة المقدَّمة معًا تنشئ تضمينًا مجمّعًا؛ وتنشئ كائنات Content المنفصلة تضمينات منفصلة لكل عنصر. وفي منشور يتضمن نصًا وصورة، يمكن لتمثيل مجمّع التقاط العلاقة بينهما. وبالنسبة إلى السجلات القابلة للبحث بصورة مستقلة، أبقها منفصلة. ويؤثر هذا الاختيار في مستوى تفصيل الاسترجاع: فمتجه واحد لمنشور كامل يختلف عن متجه لكل مقطع أو صورة.</p><p>يذكر الدليل أن متجهات Gemini Embedding 001 وGemini Embedding 2 تشغل فضاءين غير متوافقين، ولا يمكن مقارنتها مباشرةً. وتحتاج المجموعة المنقولة من النموذج الأقدم إلى إعادة إنشاء تضميناتها للفضاء الجديد. حافظ على اتساق اختيار النموذج والأبعاد مع المتجهات التي تُقارَن، واحتفظ بالنصوص والوسائط الأصلية منفصلة عن الفهرس الرقمي. وتشابه التضمين إشارة للاسترجاع، وليس شرحًا واقعيًا لسبب إجابة مستند عن سؤال المستخدم.</p><p>في كتالوج عملي، أنشئ تضمينًا لصورة المنتج مع وصفه المعتمد عندما ينبغي استرجاع الزوج بوصفه عنصرًا واحدًا. وفي مجموعة مستندات، أنشئ تضمينات لمقاطع محددة الموضوع، وقارنها باستعلام مصوغ وفق الغرض، ثم اعرض المقاطع المصدرية بجانب نتيجة البحث. وبالنسبة إلى الصوت أو الفيديو، اختر الجزء الذي يصف الحدث القابل للبحث واحتفظ بنطاقه الزمني الأصلي. والناتج المفيد تمثيل رقمي مرتبط بأدلة مصدرية للخطوة التالية من البحث أو التحليل في التطبيق.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">متاح في Ailoot · المدخلات والطرائق</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · التضمينات</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>الإدخال</dt><dd><code>text</code>, <code>token_ids</code></dd></div><div><dt>الإخراج</dt><dd><code>embedding</code></dd></div><div><dt>السياق</dt><dd>⁦8,192⁩ tokens</dd></div><div><dt>صيغة الإخراج</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>الحقل</th><th>النوع</th><th>المتطلب</th><th>القيم والحدود</th><th>القيمة الافتراضية</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>google/gemini-embedding-2</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string|string[]|integer[]|integer[][]</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الحد الأدنى للعناصر: ⁦1⁩</div><div>الشروط: دفعة متجانسة غير فارغة. معرّفات التوكنات أعداد صحيحة غير سالبة.</div><div>سعة الإدخال: الحد الأقصى: ⁦8,192⁩ · وحدة النص: بايتات UTF8 · وحدة الرموز: عناصر مصفوفة الرموز</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>float</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"known\"><span class=\"card-cell-label\">القيمة الافتراضية</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>integer</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>غير مدعوم</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الحد الأدنى: ⁦1⁩</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>json_value</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الشروط: يسمح المصدر بحقل البيانات الوصفية هذا بصيغة JSON؛ ويعتمد المعنى الدقيق لدى المزوّد الأصلي على النموذج.</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>json_value</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الشروط: يسمح المصدر بحقل البيانات الوصفية هذا بصيغة JSON؛ ويعتمد المعنى الدقيق لدى المزوّد الأصلي على النموذج.</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>json_value</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الشروط: يسمح المصدر بحقل البيانات الوصفية هذا بصيغة JSON؛ ويعتمد المعنى الدقيق لدى المزوّد الأصلي على النموذج.</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>object</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الشروط: تم رفض provider.options</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>تركيبات مواد الإدخال</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>معلمات الطريقة ودورة حياتها</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>المعلمة</th><th>المواصفات</th></tr></thead><tbody><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>content_type</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>application/json</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>required</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>model, input</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>input_shapes</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[]</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>encoding_format</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>float</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>dimensions_override</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>false</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>max_input_budget_units</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>8192</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>multimodal_objects</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>false</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>material_types</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>text, token_ids</td></tr></tbody></table></div><p>دورة الحياة: <code>synchronous_json</code></p><p class=\"note-s\">احتفظ بفهرس كل متجه وبُعده.</p><p class=\"note-s\">اسم النموذج متعدد الوسائط لا يتيح استخدام كائنات الصور على هذا المسار المحدد.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">الباقات</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.</p><dl data-price-conditions><dt>الوضع السريع</dt><dd>التعرفة القياسية <span class=\"note-s\">عند اختيار الوضع السريع</span></dd><dt>الوضع المرن</dt><dd>التعرفة القياسية <span class=\"note-s\">عند اختيار وضع flex</span></dd><dt>أقصى جهد للاستدلال</dt><dd>التعرفة القياسية <span class=\"note-s\">عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال</span></dd></dl></div><div data-declared-tariff-pricing><h4>تعرفات Ailoot</h4><h4>الأسعار حسب الإعدادات</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>الإعدادات</th><th>جدول التعرفة</th><th>الرسوم</th></tr></thead><tbody><tr><th data-cell-label=\"الإعدادات\" scope=\"row\"><span class=\"card-cell-label\">الإعدادات</span>التعرفات الأساسية للرموز</th><td data-cell-label=\"جدول التعرفة\"><span class=\"card-cell-label\">جدول التعرفة</span>التعرفة الأساسية</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإدخال · رموز الإدخال</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإخراج · رموز الإخراج</span> <b>$0</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · قراءة ذاكرة التخزين المؤقت</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · الكتابة إلى ذاكرة التخزين المؤقت</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. <a href=\"/docs/ar/billing/reserve/\">كيفية عمل حجز المبلغ وتسوية الرسوم →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">أمثلة للطلبات</h3><h4>Ailoot Ultra · التضمينات</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"خيارات الشيفرة\"><button class=\"cg-tab\" id=\"model-code-1487-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1487-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1487-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1487-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"نسخ الشيفرة\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1487-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1487-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;google/gemini-embedding-2&quot;, &quot;input&quot;: [&quot;First document&quot;, &quot;Second document&quot;]}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;data&quot;,[]): print(json.dumps({&quot;index&quot;:x.get(&quot;index&quot;),&quot;embedding&quot;:x.get(&quot;embedding&quot;)}))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1487-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1487-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.embeddings.create(model=&#39;google/gemini-embedding-2&#39;,input=[&quot;First document&quot;,&quot;Second document&quot;])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">استلام النتائج وحفظها</h3><h4>Ailoot Ultra · التضمينات</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>الاحتفاظ بكل النتائج المكتملة</h5><p class=\"note-s\">احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.</p><p class=\"note-s\">احتفظ بكل متجه مع فهرسه. يجب أن يساوي عدد المتجهات عدد المدخلات، وأن تكون الأبعاد متسقة.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>عند الحاجة إلى التحقق من الاستجابة الأصلية</h5><p class=\"note-s\">لا تُستحدث نقطة نهاية لمهام التضمين.</p></div><details class=\"card-about\" data-output-fields><summary>حقول الاستجابة</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>الحقل</th><th>النوع</th></tr></thead><tbody><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">object</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>string</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>string</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>integer</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>finite float[]</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>الأخطاء والخطوات التالية</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>الاستجابة</th><th>الشرط</th><th>الخطوة التالية</th></tr></thead><tbody><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>حقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>صحّح الحقول المحددة قبل طلب إنشاء جديد.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">الأسماء البديلة</h3><h4>الأسماء البديلة للنموذج</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=google%2Fgemini-embedding-2&amp;route=Ultra&amp;caller=google%2Fgemini-embedding-2&amp;fmt=embeddings\"><code>google/gemini-embedding-2</code></a></span></p><h4>الأسماء البديلة لمسارات الطرائق</h4><p class=\"note-s\">استخدم مسارات الطرائق المعروضة أعلاه.</p><h4>معرّفات النماذج ذات الصلة IDs</h4><p class=\"note-s\"><a href=\"#m=google%2Fgemini-embedding-2&amp;route=Ultra&amp;caller=google%2Fgemini-embedding-2&amp;fmt=embeddings\"><code>google/gemini-embedding-2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/gemini-embedding-2",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "google/gemini-embedding-2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|google%2Fgemini-embedding-2",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every vector with its index. Vector count must equal input count; dimensions must be consistent.",
            "errors": [
              {
                "code": null,
                "condition": "حقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة",
                "http_status": 400,
                "recovery": "صحّح الحقول المحددة قبل طلب إنشاء جديد.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "لا تُستحدث نقطة نهاية لمهام التضمين."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "string",
                  "string[]",
                  "nonnegative_integer_token_array",
                  "nonnegative_integer_token_array[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "احتفظ بكل متجه مع فهرسه. يجب أن يساوي عدد المتجهات عدد المدخلات، وأن تكون الأبعاد متسقة.",
              "default_dimensions": null,
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/gemini-embedding-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 8192,
                  "text_unit": "بايتات UTF8",
                  "token_unit": "عناصر مصفوفة الرموز"
                },
                "conditions": "دفعة متجانسة غير فارغة. معرّفات التوكنات أعداد صحيحة غير سالبة.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]|integer[]|integer[][]"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "unsupported",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "يسمح المصدر بحقل البيانات الوصفية هذا بصيغة JSON؛ ويعتمد المعنى الدقيق لدى المزوّد الأصلي على النموذج.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "يسمح المصدر بحقل البيانات الوصفية هذا بصيغة JSON؛ ويعتمد المعنى الدقيق لدى المزوّد الأصلي على النموذج.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "يسمح المصدر بحقل البيانات الوصفية هذا بصيغة JSON؛ ويعتمد المعنى الدقيق لدى المزوّد الأصلي على النموذج.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "تم رفض provider.options",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mixed input kinds",
              "empty input",
              "image/audio/file objects",
              "encoding_format=base64",
              "dimensions override"
            ]
          },
          "hints": [
            "احتفظ بفهرس كل متجه وبُعده.",
            "اسم النموذج متعدد الوسائط لا يتيح استخدام كائنات الصور على هذا المسار المحدد."
          ],
          "input": {
            "content_type": "application/json",
            "dimensions_override": false,
            "encoding_format": [
              "float"
            ],
            "input_shapes": [
              "string",
              "string[]",
              "nonnegative_integer_token_array",
              "nonnegative_integer_token_array[]"
            ],
            "material_types": [
              "text",
              "token_ids"
            ],
            "max_input_budget_units": 8192,
            "multimodal_objects": false,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_json",
            "unknown": "no embedding job endpoint inferred"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_embedding"
          ],
          "output": {
            "default_dimensions": null,
            "family": "embedding",
            "format": "json",
            "http_success": 200,
            "vectors": "one dense float vector per input; indices/model/usage validated"
          }
        },
        "ctx": 8192,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "التعرفات الأساسية للرموز",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"google/gemini-embedding-2\", \"input\": [\"First document\", \"Second document\"]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='google/gemini-embedding-2',input=[\"First document\",\"Second document\"])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n",
            "label": "Python SDK · all vectors",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "embeddings",
        "hints": [
          "Keep every vector index and dimension.",
          "Multimodal model name does not admit image objects on this exact path."
        ],
        "http": "POST",
        "in": 0.4,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "الوضع السريع",
            "value": "التعرفة القياسية",
            "when": "عند اختيار الوضع السريع"
          },
          {
            "label": "الوضع المرن",
            "value": "التعرفة القياسية",
            "when": "عند اختيار وضع flex"
          },
          {
            "label": "أقصى جهد للاستدلال",
            "value": "التعرفة القياسية",
            "when": "عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "google/gemini-embedding-2",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "google/gemini-embedding-2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "1c4ccd03178a0d61d9d3f0398a595302a17c0d61cf1b048b980d362bb02fc455",
    "input_html_sha256": "b752057f9ebf7ff1cec6c59dcf6401bd392edf137a6c46e2372bdbb57142df48",
    "private_audit_sha256": "894d7935f458080cca0f85e6ab42fea3404f7c60404b8d59388669e51191b2bc",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ar/google-gemini-embedding-2/",
    "description": "يحوّل Gemini Embedding 2 النصوص والصور والصوت والفيديو وPDF إلى فضاء رقمي مشترك. وتدعم متجهاته البحث عبر الوسائط والاسترجاع والتصنيف والتجميع، بأبعاد مرنة وحد مدخلات من 8,192 رمزًا.",
    "locale": "ar",
    "md_url": "https://ailoot.ai/models/ar/google-gemini-embedding-2/index.md",
    "title": "Google: Gemini Embedding 2 — Ailoot",
    "url": "https://ailoot.ai/models/ar/google-gemini-embedding-2/"
  },
  "rawModel": {
    "about": "Gemini Embedding 2 هو نموذج التضمين المتعدد الوسائط من Google للتمثيل الرقمي للنصوص والصور والفيديو والصوت وPDF. ويحوّل أنواع الوسائط المختلفة إلى فضاء مشترك، حتى يتمكن التطبيق من مقارنة المعنى عبرها. والنتيجة متجه أعداد مفيد للبحث الدلالي أو استرجاع المستندات أو التوصية أو التصنيف أو التجميع؛ وليست إجابة مكتوبة أو ملف وسائط مولّدًا. وتوثّق Google تغطية دلالية عبر أكثر من 100 لغة.\n\nبالنسبة إلى قاعدة معرفة، أنشئ متجهات للمقاطع المصدرية، وقارن استعلام المستخدم بها، واسترجع المادة ذات الصلة. ويمكن لنموذج نصي منفصل بعد ذلك صياغة إجابة باستخدام تلك المصادر. وفي مجموعة وسائط، يمكن لوصف نصي البحث عن صور أو فيديو ذي صلة؛ ويمكن للصورة أيضًا أن تكون الاستعلام. حافظ على اتصال كل متجه بالمحتوى الأصلي، بما في ذلك مرجع الصفحة أو المقطع، حتى يمكن فحص النتيجة المسترجعة وعرضها في سياقها الأصلي.\n\nحد المدخلات الإجمالي هو 8,192 رمزًا. ويتيح دليل النموذج المستقر ما يصل إلى ست صور PNG أو JPEG، وما يصل إلى 180 ثانية من صوت MP3 أو WAV، وما يصل إلى 120 ثانية من فيديو MP4 أو MOV. وترميزات الفيديو الموثّقة هي H264 وH265 وAV1 وVP9. وتستخدم معالجة الفيديو 32 إطارًا كحد أقصى: تُؤخذ عينات من المقاطع التي تصل إلى 32 ثانية بمعدل إطار واحد في الثانية، بينما تُؤخذ عينات موزعة بالتساوي من المقاطع الأطول وصولًا إلى 32 إطارًا. ولا يُعالج المسار الصوتي للفيديو ضمن مدخل الفيديو هذا؛ أنشئ تضمينًا لصوته على نحو منفصل عندما يكون مهمًا للاسترجاع.\n\nيقبل مدخل PDF ملفًا واحدًا حتى ست صفحات. وتوصي Google بصفحة واحدة لكل PDF للحصول على أفضل جودة. قسّم المصدر الأكبر إلى صفحات أو أقسام ذات معنى، واحتفظ بعلاقتها بالمستند الأصلي. واختر مقتطفًا يمثّل ما ينبغي أن يكون قابلًا للاسترجاع، بدلًا من جمع مواد غير مرتبطة لمجرد أنها تلائم الحد. ويظل حد الرموز المشترك منطبقًا على طلب الوسائط المختلطة. وتستهلك كل صفحة PDF عددًا قدره 258 رمزًا مرئيًا، إضافة إلى رموز النص المستخرج منها. وفي سير العمل الموثّق لدى Google، يُقتطع المحتوى الذي يتجاوز الحد المشترك البالغ 8,192 رمزًا من دون خطأ.\n\nعدد أبعاد المخرجات مرن من 128 إلى 3,072، بقيمة افتراضية تبلغ 3,072 وأحجام موصى بها هي 768 و1,536 و3,072. ويستخدم النموذج Matryoshka Representation Learning، لذلك تظل بدايات المتجه مفيدة عند الأبعاد الأصغر. ويوثّق دليله التطبيع التلقائي لكل من المتجهات الافتراضية والمختصرة. اختر بُعدًا متسقًا للسجلات والاستعلامات التي يقارنها تطبيقك؛ فالحجم المطلوب يغيّر التمثيل الرقمي، لا المحتوى المصدري نفسه.\n\nفي المهام النصية فقط، أدرج الغرض داخل النص بدلًا من استخدام الحقل الأقدم task_type. وتفرّق Google بين الاسترجاع غير المتناظر والمقارنة المتناظرة. ويستخدم استعلام البحث “task: search result | query: {content}”، بينما يستخدم المستند المصدري “title: {title} | text: {content}”؛ واستخدم “title: none” إذا لم يكن له عنوان. ولمهام الإجابة عن الأسئلة والتحقق من الحقائق واسترجاع الشيفرة بادئات استعلام خاصة بها. وفي التصنيف أو التجميع أو تشابه الجمل، استخدم تنسيق المهمة نفسه بصورة متسقة على الجانبين. وينصح الدليل عمومًا بعدم إضافة بادئة خاصة بالمهمة إلى الجزء النصي من تمثيل متعدد الوسائط مجمّع.\n\nتحدّد بنية المدخل ما إذا كانت النتيجة تمثّل عنصرًا مجمّعًا واحدًا أم عناصر منفصلة. فالأجزاء المتعددة المقدَّمة معًا تنشئ تضمينًا مجمّعًا؛ وتنشئ كائنات Content المنفصلة تضمينات منفصلة لكل عنصر. وفي منشور يتضمن نصًا وصورة، يمكن لتمثيل مجمّع التقاط العلاقة بينهما. وبالنسبة إلى السجلات القابلة للبحث بصورة مستقلة، أبقها منفصلة. ويؤثر هذا الاختيار في مستوى تفصيل الاسترجاع: فمتجه واحد لمنشور كامل يختلف عن متجه لكل مقطع أو صورة.\n\nيذكر الدليل أن متجهات Gemini Embedding 001 وGemini Embedding 2 تشغل فضاءين غير متوافقين، ولا يمكن مقارنتها مباشرةً. وتحتاج المجموعة المنقولة من النموذج الأقدم إلى إعادة إنشاء تضميناتها للفضاء الجديد. حافظ على اتساق اختيار النموذج والأبعاد مع المتجهات التي تُقارَن، واحتفظ بالنصوص والوسائط الأصلية منفصلة عن الفهرس الرقمي. وتشابه التضمين إشارة للاسترجاع، وليس شرحًا واقعيًا لسبب إجابة مستند عن سؤال المستخدم.\n\nفي كتالوج عملي، أنشئ تضمينًا لصورة المنتج مع وصفه المعتمد عندما ينبغي استرجاع الزوج بوصفه عنصرًا واحدًا. وفي مجموعة مستندات، أنشئ تضمينات لمقاطع محددة الموضوع، وقارنها باستعلام مصوغ وفق الغرض، ثم اعرض المقاطع المصدرية بجانب نتيجة البحث. وبالنسبة إلى الصوت أو الفيديو، اختر الجزء الذي يصف الحدث القابل للبحث واحتفظ بنطاقه الزمني الأصلي. والناتج المفيد تمثيل رقمي مرتبط بأدلة مصدرية للخطوة التالية من البحث أو التحليل في التطبيق.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "available": null,
    "canonical_model": "google/gemini-embedding-2",
    "capabilities": {
      "context_length": 8192,
      "manufacturer_input": [
        "text",
        "image",
        "file",
        "audio",
        "video"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "التسعير الكامل للتكوين في التفاصيل."
      }
    ],
    "ctx": 8192,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "google/gemini-embedding-2",
    "input": [
      "text",
      "token_ids"
    ],
    "kind": "embedding",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every vector with its index. Vector count must equal input count; dimensions must be consistent.",
            "errors": [
              {
                "code": null,
                "condition": "حقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة",
                "http_status": 400,
                "recovery": "صحّح الحقول المحددة قبل طلب إنشاء جديد.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "لا تُستحدث نقطة نهاية لمهام التضمين."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "string",
                  "string[]",
                  "nonnegative_integer_token_array",
                  "nonnegative_integer_token_array[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "احتفظ بكل متجه مع فهرسه. يجب أن يساوي عدد المتجهات عدد المدخلات، وأن تكون الأبعاد متسقة.",
              "default_dimensions": null,
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/gemini-embedding-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 8192,
                  "text_unit": "بايتات UTF8",
                  "token_unit": "عناصر مصفوفة الرموز"
                },
                "conditions": "دفعة متجانسة غير فارغة. معرّفات التوكنات أعداد صحيحة غير سالبة.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]|integer[]|integer[][]"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "unsupported",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "يسمح المصدر بحقل البيانات الوصفية هذا بصيغة JSON؛ ويعتمد المعنى الدقيق لدى المزوّد الأصلي على النموذج.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "يسمح المصدر بحقل البيانات الوصفية هذا بصيغة JSON؛ ويعتمد المعنى الدقيق لدى المزوّد الأصلي على النموذج.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "يسمح المصدر بحقل البيانات الوصفية هذا بصيغة JSON؛ ويعتمد المعنى الدقيق لدى المزوّد الأصلي على النموذج.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "تم رفض provider.options",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mixed input kinds",
              "empty input",
              "image/audio/file objects",
              "encoding_format=base64",
              "dimensions override"
            ]
          },
          "hints": [
            "احتفظ بفهرس كل متجه وبُعده.",
            "اسم النموذج متعدد الوسائط لا يتيح استخدام كائنات الصور على هذا المسار المحدد."
          ],
          "input": {
            "content_type": "application/json",
            "dimensions_override": false,
            "encoding_format": [
              "float"
            ],
            "input_shapes": [
              "string",
              "string[]",
              "nonnegative_integer_token_array",
              "nonnegative_integer_token_array[]"
            ],
            "material_types": [
              "text",
              "token_ids"
            ],
            "max_input_budget_units": 8192,
            "multimodal_objects": false,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_json",
            "unknown": "no embedding job endpoint inferred"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_embedding"
          ],
          "output": {
            "default_dimensions": null,
            "family": "embedding",
            "format": "json",
            "http_success": 200,
            "vectors": "one dense float vector per input; indices/model/usage validated"
          }
        },
        "ctx": 8192,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "التعرفات الأساسية للرموز",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"google/gemini-embedding-2\", \"input\": [\"First document\", \"Second document\"]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='google/gemini-embedding-2',input=[\"First document\",\"Second document\"])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n",
            "label": "Python SDK · all vectors",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "embeddings",
        "hints": [
          "Keep every vector index and dimension.",
          "Multimodal model name does not admit image objects on this exact path."
        ],
        "http": "POST",
        "in": 0.4,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "الوضع السريع",
            "value": "التعرفة القياسية",
            "when": "عند اختيار الوضع السريع"
          },
          {
            "label": "الوضع المرن",
            "value": "التعرفة القياسية",
            "when": "عند اختيار وضع flex"
          },
          {
            "label": "أقصى جهد للاستدلال",
            "value": "التعرفة القياسية",
            "when": "عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "google/gemini-embedding-2",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "google/gemini-embedding-2",
        "request_model_id": "google/gemini-embedding-2",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Gemini Embedding 2",
    "price": {
      "in": 0.4,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.4,
      "sort_out": 0,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Эмбеддинги · Base token rates",
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "public_id": "google/gemini-embedding-2",
    "short": "يحوّل Gemini Embedding 2 النصوص والصور والصوت والفيديو وPDF إلى فضاء رقمي مشترك. وتدعم متجهاته البحث عبر الوسائط والاسترجاع والتصنيف والتجميع، بأبعاد مرنة وحد مدخلات من 8,192 رمزًا."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "يحوّل Gemini Embedding 2 النصوص والصور والصوت والفيديو وPDF إلى فضاء رقمي مشترك. وتدعم متجهاته البحث عبر الوسائط والاسترجاع والتصنيف والتجميع، بأبعاد مرنة وحد مدخلات من 8,192 رمزًا.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "1a38670735edb28d1b3fcb985abe412061c3362d9ba04c0b4a1259f5f0381a92",
    "renderer_sha256": "081ee0fd5b6b1b60564b02c52d62547e01e922c8c0a16e91a0d055073e76a10e"
  },
  "sourceRevision": "65161af9b20d31dd6099b94db667c6853c196d0e49c325cbf8b825db2621f8cf"
}
