{
  "aboutHtml": "<p>Pengenalan: edisi penglihatan-bahasa 7B</p><p>Qwen2-VL-7B-Instruct ialah ahli 7B dalam Qwen2-VL yang ditala mengikut arahan. Model ini menggabungkan arahan teks dengan imej atau video dan menghasilkan jawapan teks. Output yang berguna termasuk penjelasan halaman, perbandingan gambar, huraian peristiwa yang kelihatan atau respons kepada soalan tentang carta. Model ini kekal sebagai keluaran Qwen2-VL yang tepat ini; titik semak Qwen2.5-VL dan Qwen3-VL yang lebih baharu mempunyai keupayaan dan identitinya sendiri.</p><p>Tambahan daripada Qwen2-VL</p><p>Qwen menerangkan pemahaman visual merentas resolusi imej dan nisbah bidang yang berbeza, serta menjawab soalan video, dialog dan penciptaan kandungan. Keupayaan video keluarga ini yang didokumenkan merangkumi bahan melebihi 20 minit. Tempoh semata-mata tidak menetapkan bilangan bingkai yang diproses oleh aplikasi atau menjamin ingatan tentang setiap peristiwa. Pemahaman teks dalam imej berbilang bahasa merangkumi bahasa Inggeris dan Cina, banyak bahasa Eropah, bahasa Jepun, Korea, Arab dan Vietnam.</p><p>Pembuat juga menerangkan integrasi dengan telefon, robot dan peranti lain melalui pemerhatian visual dan arahan teks. Itu ialah aliran kerja aplikasi: model mentafsir persekitaran visual dan membantu memilih tindakan, sementara perisian atau perkakasan yang disambungkan melaksanakannya. Pengecaman skrin tidak dengan sendirinya memberikan kawalan terhadap skrin itu.</p><p>Perubahan seni bina</p><p>Resolusi dinamik menukarkan imej kepada bilangan token visual yang berubah-ubah dan bukannya memaksa setiap input ke dalam representasi yang sama. M-ROPE memisahkan maklumat kedudukan bagi teks, imej dua dimensi dan maklumat video tiga dimensi, sambil menggabungkan struktur ruang dan masa. Konfigurasi 7B yang diterbitkan menyenaraikan 32,768 kedudukan. Teks, token visual dan output yang dijana berkongsi peruntukan urutan yang terhad, jadi resolusi imej dan pensampelan video mempengaruhi jumlah bahan yang boleh dimasukkan dalam permintaan.</p><p>Penyediaan imej dan perbualan</p><p>Contoh rasmi menyokong satu imej, beberapa imej dan perbualan teks sahaja. Lampirkan imej bersama soalan khusus, bukannya bergantung pada arahan luas seperti “analisis semuanya”. Untuk halaman dokumen, minta medan tertentu dan kekalkan tanda baca dalam petikan. Untuk dua tangkap layar reka bentuk, labelkannya sebagai pertama dan kedua, kemudian minta jadual perubahan yang kelihatan. Untuk carta, minta label, unit dan nilai yang menyokong trend yang dinyatakan. Ini ialah aplikasi praktikal menjawab soalan visual, bukannya janji pengekstrakan tanpa ralat.</p><p>Utiliti pembuat menerima imej daripada fail setempat, data imej yang dikodkan atau lokasi imej; contoh video yang didokumenkan menggunakan fail video setempat atau senarai bingkai tersusun. Format muat naik aplikasi kekal sebagai keputusan antara muka yang berasingan. Kekalkan urutan bingkai asal dan nyatakan selang masa yang diwakili senarai bingkai. Contoh tersebut menjana teks; titik semak ini tidak diterangkan sebagai penjana imej atau video.</p><p>Resolusi dan penyediaan video</p><p>Pemproses Qwen menggunakan julat lalai empat hingga 16,384 token visual bagi setiap imej. Pemproses ini menyediakan min_pixels dan max_pixels untuk mengimbangkan butiran dengan memori dan pengiraan, dengan contoh terdokumen yang menyasarkan 256–1,280 token visual. Imej diubah saiz dalam batas yang dipilih sambil mengekalkan nisbah bidangnya. Dimensi saiz semula yang dinyatakan secara nyata dibundarkan kepada gandaan 28. Jadual padat atau tulisan kecil mungkin memerlukan resolusi yang mencukupi untuk kekal boleh dibaca; peningkatan resolusi juga menggunakan lebih banyak peruntukan visual dan konteks yang tersedia.</p><p>Contoh video menunjukkan kadar pensampelan satu bingkai sesaat dan batas piksel yang boleh dikonfigurasikan. Itu ialah tetapan contoh, bukannya kadar wajib sejagat atau had media mutlak. Untuk semakan peristiwa, berikan klip yang berkaitan dan minta catatan tersusun tentang perubahan yang kelihatan. Peristiwa yang berlaku hampir serentak mungkin memerlukan pensampelan lebih terperinci berbanding ringkasan adegan umum. Qwen2-VL tidak memahami maklumat audio dalam video, jadi dialog pertuturan atau kesan bunyi memerlukan aliran kerja audio yang berasingan.</p><p>Batasan yang diketahui</p><p>Qwen merekodkan tarikh akhir data latihan imej pada Jun 2023, tanpa jaminan pengetahuan tentang orang, produk atau peristiwa selepas itu. Pengecaman individu tertentu dan harta intelek tidak lengkap. Arahan berbilang langkah yang kompleks, bilangan objek dalam adegan sesak dan hubungan ruang—terutamanya dalam tiga dimensi—ialah kelemahan yang didokumenkan. Bahagikan tugasan visual yang rumit kepada soalan jelas, minta bukti yang kelihatan yang menyokong hasil dan semak angka yang diekstrak serta teks yang dipetik dengan imej. Kapsyen yang munasabah tidak patut dianggap sebagai kiraan tepat atau lokasi tiga dimensi yang diukur.</p><p>Contoh penjanaan pendek pada kad ini tidak menetapkan had output mutlak yang berasingan. Rancang saiz jawapan bersama input teks dan visual, dan kekalkan butiran sumber yang mencukupi untuk soalan tertentu. Ini menjadikan pemilihan model dan penyediaan input lebih berguna berbanding menganggap mana-mana gambar atau video panjang memberikan jawapan yang sama andalnya.</p>",
  "aboutText": "Pengenalan: edisi penglihatan-bahasa 7B\n\nQwen2-VL-7B-Instruct ialah ahli 7B dalam Qwen2-VL yang ditala mengikut arahan. Model ini menggabungkan arahan teks dengan imej atau video dan menghasilkan jawapan teks. Output yang berguna termasuk penjelasan halaman, perbandingan gambar, huraian peristiwa yang kelihatan atau respons kepada soalan tentang carta. Model ini kekal sebagai keluaran Qwen2-VL yang tepat ini; titik semak Qwen2.5-VL dan Qwen3-VL yang lebih baharu mempunyai keupayaan dan identitinya sendiri.\n\nTambahan daripada Qwen2-VL\n\nQwen menerangkan pemahaman visual merentas resolusi imej dan nisbah bidang yang berbeza, serta menjawab soalan video, dialog dan penciptaan kandungan. Keupayaan video keluarga ini yang didokumenkan merangkumi bahan melebihi 20 minit. Tempoh semata-mata tidak menetapkan bilangan bingkai yang diproses oleh aplikasi atau menjamin ingatan tentang setiap peristiwa. Pemahaman teks dalam imej berbilang bahasa merangkumi bahasa Inggeris dan Cina, banyak bahasa Eropah, bahasa Jepun, Korea, Arab dan Vietnam.\n\nPembuat juga menerangkan integrasi dengan telefon, robot dan peranti lain melalui pemerhatian visual dan arahan teks. Itu ialah aliran kerja aplikasi: model mentafsir persekitaran visual dan membantu memilih tindakan, sementara perisian atau perkakasan yang disambungkan melaksanakannya. Pengecaman skrin tidak dengan sendirinya memberikan kawalan terhadap skrin itu.\n\nPerubahan seni bina\n\nResolusi dinamik menukarkan imej kepada bilangan token visual yang berubah-ubah dan bukannya memaksa setiap input ke dalam representasi yang sama. M-ROPE memisahkan maklumat kedudukan bagi teks, imej dua dimensi dan maklumat video tiga dimensi, sambil menggabungkan struktur ruang dan masa. Konfigurasi 7B yang diterbitkan menyenaraikan 32,768 kedudukan. Teks, token visual dan output yang dijana berkongsi peruntukan urutan yang terhad, jadi resolusi imej dan pensampelan video mempengaruhi jumlah bahan yang boleh dimasukkan dalam permintaan.\n\nPenyediaan imej dan perbualan\n\nContoh rasmi menyokong satu imej, beberapa imej dan perbualan teks sahaja. Lampirkan imej bersama soalan khusus, bukannya bergantung pada arahan luas seperti “analisis semuanya”. Untuk halaman dokumen, minta medan tertentu dan kekalkan tanda baca dalam petikan. Untuk dua tangkap layar reka bentuk, labelkannya sebagai pertama dan kedua, kemudian minta jadual perubahan yang kelihatan. Untuk carta, minta label, unit dan nilai yang menyokong trend yang dinyatakan. Ini ialah aplikasi praktikal menjawab soalan visual, bukannya janji pengekstrakan tanpa ralat.\n\nUtiliti pembuat menerima imej daripada fail setempat, data imej yang dikodkan atau lokasi imej; contoh video yang didokumenkan menggunakan fail video setempat atau senarai bingkai tersusun. Format muat naik aplikasi kekal sebagai keputusan antara muka yang berasingan. Kekalkan urutan bingkai asal dan nyatakan selang masa yang diwakili senarai bingkai. Contoh tersebut menjana teks; titik semak ini tidak diterangkan sebagai penjana imej atau video.\n\nResolusi dan penyediaan video\n\nPemproses Qwen menggunakan julat lalai empat hingga 16,384 token visual bagi setiap imej. Pemproses ini menyediakan min_pixels dan max_pixels untuk mengimbangkan butiran dengan memori dan pengiraan, dengan contoh terdokumen yang menyasarkan 256–1,280 token visual. Imej diubah saiz dalam batas yang dipilih sambil mengekalkan nisbah bidangnya. Dimensi saiz semula yang dinyatakan secara nyata dibundarkan kepada gandaan 28. Jadual padat atau tulisan kecil mungkin memerlukan resolusi yang mencukupi untuk kekal boleh dibaca; peningkatan resolusi juga menggunakan lebih banyak peruntukan visual dan konteks yang tersedia.\n\nContoh video menunjukkan kadar pensampelan satu bingkai sesaat dan batas piksel yang boleh dikonfigurasikan. Itu ialah tetapan contoh, bukannya kadar wajib sejagat atau had media mutlak. Untuk semakan peristiwa, berikan klip yang berkaitan dan minta catatan tersusun tentang perubahan yang kelihatan. Peristiwa yang berlaku hampir serentak mungkin memerlukan pensampelan lebih terperinci berbanding ringkasan adegan umum. Qwen2-VL tidak memahami maklumat audio dalam video, jadi dialog pertuturan atau kesan bunyi memerlukan aliran kerja audio yang berasingan.\n\nBatasan yang diketahui\n\nQwen merekodkan tarikh akhir data latihan imej pada Jun 2023, tanpa jaminan pengetahuan tentang orang, produk atau peristiwa selepas itu. Pengecaman individu tertentu dan harta intelek tidak lengkap. Arahan berbilang langkah yang kompleks, bilangan objek dalam adegan sesak dan hubungan ruang—terutamanya dalam tiga dimensi—ialah kelemahan yang didokumenkan. Bahagikan tugasan visual yang rumit kepada soalan jelas, minta bukti yang kelihatan yang menyokong hasil dan semak angka yang diekstrak serta teks yang dipetik dengan imej. Kapsyen yang munasabah tidak patut dianggap sebagai kiraan tepat atau lokasi tiga dimensi yang diukur.\n\nContoh penjanaan pendek pada kad ini tidak menetapkan had output mutlak yang berasingan. Rancang saiz jawapan bersama input teks dan visual, dan kekalkan butiran sumber yang mencukupi untuk soalan tertentu. Ini menjadikan pemilihan model dan penyediaan input lebih berguna berbanding menganggap mana-mana gambar atau video panjang memberikan jawapan yang sama andalnya.",
  "editorialOverlay": {
    "copy_fields": {
      "practical_html": "<h3>Tugas praktikal</h3><p>Contoh teknikal dalam bahasa Inggeris</p><pre><code>Compare transcribed dashboard changes\n\nCompare these dashboard descriptions supplied as text. First: heading &#x27;Orders&#x27;, filter &#x27;All dates&#x27;, total 240. Second: heading &#x27;Orders&#x27;, filter &#x27;This week&#x27;, total 38. Return a table of changed and unchanged fields, then explain why the totals alone do not establish a fall in orders. Use only the descriptions and keep the filter labels exact.</code></pre><h4>Hasil yang dijangka</h4><pre><code>A field-comparison table and a short explanation of the different date scopes.</code></pre><h4>Semak hasil</h4><pre><code>The result does not treat totals from All dates and This week as comparable periods.</code></pre>"
    },
    "copy_sha256": "e9bb7456b40084c815db2e7938c8c1c0c70bb4b891d07bd88d1c1bc27d685353",
    "copy_source": {
      "locale": "ms",
      "pack_sha256": "0f56d90ba41881e1134accf82e57338f246f8753ca4c0cee929aaffada5d10e7",
      "record_model_id": "Qwen2-VL-7B-Instruct-ultra",
      "source_facts_sha256": "a313086956105f9f4d6d1d5a55321dc4c17d29cf08622866810eebf301d625d1",
      "validation_sha256": "a2ac2f28056280fc0b2ea34a501bf156d5ce155406e57e708edf30bfdf6bfdc6"
    },
    "html_sha256": "1d1aeafe11fe311294166b3e5ac0a2ecc1f564cbf1937ebb81a907cbb98c1472",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ms",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Qwen2-VL-7B-Instruct-ultra</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>Lain-lain /</span><code>Qwen2-VL-7B-Instruct-ultra</code><button type=\"button\" id=\"copy-id\">Salin ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Bahagian kad model\"><button type=\"button\" data-card-jump=\"overview\">Pengenalan</button><button type=\"button\" data-card-jump=\"methods\">Input &amp; kaedah</button><button type=\"button\" data-card-jump=\"pricing\">Pelan harga</button><button type=\"button\" data-card-jump=\"examples\">Contoh</button><button type=\"button\" data-card-jump=\"results\">Hasil</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Kaedah 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|chat|/v1/chat/completions|Qwen2-VL-7B-Instruct-ultra\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|Qwen2-VL-7B-Instruct-ultra\">Messages</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\">Pengenalan</h3><p class=\"mdesc-full\">Qwen2-VL-7B-Instruct ialah model penglihatan-bahasa Qwen yang ditala mengikut arahan untuk teks, imej dan video, dengan output teks. Gunakannya untuk bertanya tentang halaman dokumen, membandingkan gambar atau menerangkan peristiwa visual, dengan resolusi imej dinamik dan batasan terdokumen dalam pengiraan, penaakulan ruang serta pemahaman audio dalam video.</p><dl class=\"card-io\" data-card-io><div><dt>Input yang diterima</dt><dd>Teks</dd></div><div><dt>Hasil</dt><dd>Teks</dd></div></dl><details class=\"card-about\"><summary>Tentang model</summary><p class=\"note-s\" data-model-method-boundary>Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.</p><div class=\"mabout\" id=\"m-about\"><p>Pengenalan: edisi penglihatan-bahasa 7B</p><p>Qwen2-VL-7B-Instruct ialah ahli 7B dalam Qwen2-VL yang ditala mengikut arahan. Model ini menggabungkan arahan teks dengan imej atau video dan menghasilkan jawapan teks. Output yang berguna termasuk penjelasan halaman, perbandingan gambar, huraian peristiwa yang kelihatan atau respons kepada soalan tentang carta. Model ini kekal sebagai keluaran Qwen2-VL yang tepat ini; titik semak Qwen2.5-VL dan Qwen3-VL yang lebih baharu mempunyai keupayaan dan identitinya sendiri.</p><p>Tambahan daripada Qwen2-VL</p><p>Qwen menerangkan pemahaman visual merentas resolusi imej dan nisbah bidang yang berbeza, serta menjawab soalan video, dialog dan penciptaan kandungan. Keupayaan video keluarga ini yang didokumenkan merangkumi bahan melebihi 20 minit. Tempoh semata-mata tidak menetapkan bilangan bingkai yang diproses oleh aplikasi atau menjamin ingatan tentang setiap peristiwa. Pemahaman teks dalam imej berbilang bahasa merangkumi bahasa Inggeris dan Cina, banyak bahasa Eropah, bahasa Jepun, Korea, Arab dan Vietnam.</p><p>Pembuat juga menerangkan integrasi dengan telefon, robot dan peranti lain melalui pemerhatian visual dan arahan teks. Itu ialah aliran kerja aplikasi: model mentafsir persekitaran visual dan membantu memilih tindakan, sementara perisian atau perkakasan yang disambungkan melaksanakannya. Pengecaman skrin tidak dengan sendirinya memberikan kawalan terhadap skrin itu.</p><p>Perubahan seni bina</p><p>Resolusi dinamik menukarkan imej kepada bilangan token visual yang berubah-ubah dan bukannya memaksa setiap input ke dalam representasi yang sama. M-ROPE memisahkan maklumat kedudukan bagi teks, imej dua dimensi dan maklumat video tiga dimensi, sambil menggabungkan struktur ruang dan masa. Konfigurasi 7B yang diterbitkan menyenaraikan 32,768 kedudukan. Teks, token visual dan output yang dijana berkongsi peruntukan urutan yang terhad, jadi resolusi imej dan pensampelan video mempengaruhi jumlah bahan yang boleh dimasukkan dalam permintaan.</p><p>Penyediaan imej dan perbualan</p><p>Contoh rasmi menyokong satu imej, beberapa imej dan perbualan teks sahaja. Lampirkan imej bersama soalan khusus, bukannya bergantung pada arahan luas seperti “analisis semuanya”. Untuk halaman dokumen, minta medan tertentu dan kekalkan tanda baca dalam petikan. Untuk dua tangkap layar reka bentuk, labelkannya sebagai pertama dan kedua, kemudian minta jadual perubahan yang kelihatan. Untuk carta, minta label, unit dan nilai yang menyokong trend yang dinyatakan. Ini ialah aplikasi praktikal menjawab soalan visual, bukannya janji pengekstrakan tanpa ralat.</p><p>Utiliti pembuat menerima imej daripada fail setempat, data imej yang dikodkan atau lokasi imej; contoh video yang didokumenkan menggunakan fail video setempat atau senarai bingkai tersusun. Format muat naik aplikasi kekal sebagai keputusan antara muka yang berasingan. Kekalkan urutan bingkai asal dan nyatakan selang masa yang diwakili senarai bingkai. Contoh tersebut menjana teks; titik semak ini tidak diterangkan sebagai penjana imej atau video.</p><p>Resolusi dan penyediaan video</p><p>Pemproses Qwen menggunakan julat lalai empat hingga 16,384 token visual bagi setiap imej. Pemproses ini menyediakan min_pixels dan max_pixels untuk mengimbangkan butiran dengan memori dan pengiraan, dengan contoh terdokumen yang menyasarkan 256–1,280 token visual. Imej diubah saiz dalam batas yang dipilih sambil mengekalkan nisbah bidangnya. Dimensi saiz semula yang dinyatakan secara nyata dibundarkan kepada gandaan 28. Jadual padat atau tulisan kecil mungkin memerlukan resolusi yang mencukupi untuk kekal boleh dibaca; peningkatan resolusi juga menggunakan lebih banyak peruntukan visual dan konteks yang tersedia.</p><p>Contoh video menunjukkan kadar pensampelan satu bingkai sesaat dan batas piksel yang boleh dikonfigurasikan. Itu ialah tetapan contoh, bukannya kadar wajib sejagat atau had media mutlak. Untuk semakan peristiwa, berikan klip yang berkaitan dan minta catatan tersusun tentang perubahan yang kelihatan. Peristiwa yang berlaku hampir serentak mungkin memerlukan pensampelan lebih terperinci berbanding ringkasan adegan umum. Qwen2-VL tidak memahami maklumat audio dalam video, jadi dialog pertuturan atau kesan bunyi memerlukan aliran kerja audio yang berasingan.</p><p>Batasan yang diketahui</p><p>Qwen merekodkan tarikh akhir data latihan imej pada Jun 2023, tanpa jaminan pengetahuan tentang orang, produk atau peristiwa selepas itu. Pengecaman individu tertentu dan harta intelek tidak lengkap. Arahan berbilang langkah yang kompleks, bilangan objek dalam adegan sesak dan hubungan ruang—terutamanya dalam tiga dimensi—ialah kelemahan yang didokumenkan. Bahagikan tugasan visual yang rumit kepada soalan jelas, minta bukti yang kelihatan yang menyokong hasil dan semak angka yang diekstrak serta teks yang dipetik dengan imej. Kapsyen yang munasabah tidak patut dianggap sebagai kiraan tepat atau lokasi tiga dimensi yang diukur.</p><p>Contoh penjanaan pendek pada kad ini tidak menetapkan had output mutlak yang berasingan. Rancang saiz jawapan bersama input teks dan visual, dan kekalkan butiran sumber yang mencukupi untuk soalan tertentu. Ini menjadikan pemilihan model dan penyediaan input lebih berguna berbanding menganggap mana-mana gambar atau video panjang memberikan jawapan yang sama andalnya.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tersedia di Ailoot · input &amp; kaedah</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · OpenAI Chat</b> <code>POST /v1/chat/completions</code></summary><dl class=\"method-capabilities\"><div><dt>Input</dt><dd><code>text</code></dd></div><div><dt>Output</dt><dd><code>text</code></dd></div><div><dt>Format output</dt><dd>json atau SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Medan</th><th>Jenis</th><th>Keperluan</th><th>Nilai &amp; had</th><th>Lalai</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Qwen2-VL-7B-Instruct-ultra</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>message[]</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Item minimum: 1</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Contoh: system, user, assistant, tool, function</div><div>Syarat: Peranan ini diwakili secara eksplisit oleh jenis keserasian dalam kod sumber; set peranan model yang tepat kekal khusus untuk setiap model.</div><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string|content_part[]|null</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages[].tool_calls</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>tool_call[]</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages[].tool_call_id</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Terpakai apabila: role=tool; gunakan ID sebenar yang dipulangkan</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages[].name</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages[].reasoning_content</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Terpakai apabila: Hantar semula penaakulan sebenar yang dipulangkan apabila model ini menggunakannya</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages[].reasoning_details</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>object|array</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>integer</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Minimum: 1</div><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">max_completion_tokens</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>integer</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Minimum: 1</div><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>boolean</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"known\"><span class=\"card-cell-label\">Lalai</span>false</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">stream_options.include_usage</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>boolean</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">temperature</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>number</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">top_p</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>number</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">stop</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string|string[]</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">tools</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>function_tool[]</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">tools[].type</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>function</div><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">tools[].function.name</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Terpakai apabila: alat fungsi dibekalkan</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">tools[].function.description</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">tools[].function.parameters</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>JSON_schema</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">tool_choice</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string|object</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">parallel_tool_calls</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>boolean</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>object</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">reasoning_effort</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">reasoning</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>object</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">service_tier</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_compatibility\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">instructions</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Medan keserasian</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">functions</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>function[]</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">function_call</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string|object</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">prompt_cache_options</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>object</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div class=\"note-s\">Bergantung pada model</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">modalities</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string[]</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>text</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>object</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Syarat: provider.options ditolak pada laluan teks Ultra ini</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">cache_control.ttl</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Syarat: 1h ditolak pada lokasi cache prompt yang digunakan</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Gabungan bahan input</summary><p class=\"note-s\"><b>Teks</b> · Teks UTF8</p><p class=\"note-s\"><code>messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>Parameter kaedah dan kitar hayat</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Kontrak</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>model, messages</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>messages</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>tatasusunan mesej dengan struktur role/content</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>file_material</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>dokumen UTF-8 sebenar dimasukkan sebagai teks literal; ID fail tidak diandaikan</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>stream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>control_scope</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>khusus model; alat fungsi pengguna berbeza daripada alat yang dihoskan</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>output_modalities</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>hosted_operations</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>multimodal_input_binding</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>null</td></tr></tbody></table></div><p>Kitar hayat: <code>synchronous_or_streamed</code></p><p class=\"note-s\">Hantar ID model yang tepat bersama messages.</p><p class=\"note-s\">Panjang konteks bukan had output.</p><p class=\"note-s\">Fail teks boleh membekalkan teks literal; input imej/audio/objek fail memerlukan pengikatan tepat.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Pelan harga</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.</p><dl data-price-conditions><dt>Mod pantas</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila mod pantas dipilih</span></dd><dt>Mod flex</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila mod flex dipilih</span></dd><dt>Usaha penaakulan maksimum</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila usaha penaakulan maksimum menggunakan pelarasan default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Kadar Ailoot</h4><h4>Harga mengikut konfigurasi</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasi</th><th>Jadual kadar</th><th>Caj</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Kadar asas token</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>Kadar asas</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Input · Token input</span> <b>$0.00058</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Output · Token output</span> <b>$0.00142</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Bacaan cache</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Penulisan cache</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Penulisan cache, 1 jam</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. <a href=\"/docs/ms/billing/reserve/\">Cara rizab dan penyelesaian caj berfungsi →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Contoh permintaan</h3><h4>Ailoot Ultra · OpenAI Chat</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kod\"><button class=\"cg-tab\" id=\"model-code-945-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-945-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-945-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-945-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button><button class=\"cg-tab\" id=\"model-code-945-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-945-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Penstriman Python</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kod\"><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-945-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-945-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;Qwen2-VL-7B-Instruct-ultra&quot;, &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Explain the difference between an observation and a hypothesis in three sentences.&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/chat/completions \\\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;choices&quot;,[]):\n    if x.get(&quot;message&quot;,{}).get(&quot;content&quot;): print(x[&quot;message&quot;][&quot;content&quot;])\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-945-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-945-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\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.chat.completions.create(model=&#39;Qwen2-VL-7B-Instruct-ultra&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nsave_result(result.to_dict(mode=&quot;json&quot;))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-945-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-945-tab-2\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nwith client.chat.completions.stream(model=&#39;Qwen2-VL-7B-Instruct-ultra&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}]) as stream:\n    with Path(&quot;stream-events.jsonl&quot;).open(&quot;w&quot;,encoding=&quot;utf-8&quot;) as log:\n        for event in stream:\n            payload=event.to_dict(mode=&quot;json&quot;)\n            log.write(json.dumps(payload,ensure_ascii=False)+&quot;\\n&quot;); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=&quot;json&quot;),&quot;stream-result&quot;)\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Terima dan simpan hasil</h3><h4>Ailoot Ultra · OpenAI Chat</h4><p class=\"note-s\">json atau SSE</p><div class=\"card-result-process\" data-all-results><h5>Simpan semua hasil yang selesai</h5><p class=\"note-s\">Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.</p><p class=\"note-s\">Kekalkan setiap pilihan jawapan bersama kandungan, panggilan alat dan penaakulannya. Dalam SSE, gabungkan delta mengikut indeks pilihan jawapan/alat dan kekalkan sebab penamatan akhir serta data penggunaan.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jika respons asal perlu disemak</h5><p class=\"note-s\">Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.</p></div><details class=\"card-about\" data-output-fields><summary>Medan respons</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Medan</th><th>Jenis</th></tr></thead><tbody><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">choices[].index</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>integer</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">choices[].message.content</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string|null</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">choices[].message.tool_calls</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>tool_call[]</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">choices[].message.reasoning_content</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">choices[].message.reasoning_details</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>object|array</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">choices[].finish_reason</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string|null</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Ralat dan langkah seterusnya</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Respons</th><th>Syarat</th><th>Langkah seterusnya</th></tr></thead><tbody><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Medan wajib, perwakilan bahan atau nilai parameter tidak sah</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Betulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias model</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=Qwen2-VL-7B-Instruct-ultra&amp;route=Ultra&amp;caller=Qwen2-VL-7B-Instruct-ultra&amp;fmt=chat\"><code>Qwen2-VL-7B-Instruct-ultra</code></a></span></p><h4>Alias laluan kaedah</h4><p class=\"note-s\">Gunakan laluan kaedah yang dipaparkan di atas.</p><h4>ID pemanggil berkaitan</h4><p class=\"note-s\"><a href=\"#m=Qwen2-VL-7B-Instruct-ultra&amp;route=Ultra&amp;caller=Qwen2-VL-7B-Instruct-ultra&amp;fmt=chat\"><code>Qwen2-VL-7B-Instruct-ultra</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "Qwen2-VL-7B-Instruct-ultra",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "Qwen2-VL-7B-Instruct-ultra",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|Qwen2-VL-7B-Instruct-ultra",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Medan wajib, perwakilan bahan atau nilai parameter tidak sah",
                "http_status": 400,
                "recovery": "Betulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "Teks UTF8"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "Kekalkan setiap pilihan jawapan bersama kandungan, panggilan alat dan penaakulannya. Dalam SSE, gabungkan delta mengikut indeks pilihan jawapan/alat dan kekalkan sebab penamatan akhir serta data penggunaan.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json atau SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "Qwen2-VL-7B-Instruct-ultra"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "Peranan ini diwakili secara eksplisit oleh jenis keserasian dalam kod sumber; set peranan model yang tepat kekal khusus untuk setiap model.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; gunakan ID sebenar yang dipulangkan"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "Hantar semula penaakulan sebenar yang dipulangkan apabila model ini menggunakannya"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "alat fungsi dibekalkan"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options ditolak pada laluan teks Ultra ini",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "1h ditolak pada lokasi cache prompt yang digunakan",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "Hantar ID model yang tepat bersama messages.",
            "Panjang konteks bukan had output.",
            "Fail teks boleh membekalkan teks literal; input imej/audio/objek fail memerlukan pengikatan tepat."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "khusus model; alat fungsi pengguna berbeza daripada alat yang dihoskan",
            "file_material": "dokumen UTF-8 sebenar dimasukkan sebagai teks literal; ID fail tidak diandaikan",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "tatasusunan mesej dengan struktur role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Kadar asas token",
            "units": [
              {
                "amount": "0.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00142000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000142",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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\": \"Qwen2-VL-7B-Instruct-ultra\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\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/chat/completions \\\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(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='Qwen2-VL-7B-Instruct-ultra',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='Qwen2-VL-7B-Instruct-ultra',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 0.58,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 1.42,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "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.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00142000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000142",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "Qwen2-VL-7B-Instruct-ultra",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00058000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000058",
            "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.00142000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000142",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Qwen2-VL-7B-Instruct-ultra</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Tutup\">×</button></div><div class=\"idline\"><span>Lain-lain /</span><code>Qwen2-VL-7B-Instruct-ultra</code><button type=\"button\" id=\"copy-id\">Salin ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Bahagian kad model\"><button type=\"button\" data-card-jump=\"overview\">Pengenalan</button><button type=\"button\" data-card-jump=\"methods\">Input &amp; kaedah</button><button type=\"button\" data-card-jump=\"pricing\">Pelan harga</button><button type=\"button\" data-card-jump=\"examples\">Contoh</button><button type=\"button\" data-card-jump=\"results\">Hasil</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Kaedah API\"><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|Qwen2-VL-7B-Instruct-ultra\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|Qwen2-VL-7B-Instruct-ultra\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-1\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Pengenalan</h3><p class=\"mdesc-full\">Qwen2-VL-7B-Instruct ialah model penglihatan-bahasa Qwen yang ditala mengikut arahan untuk teks, imej dan video, dengan output teks. Gunakannya untuk bertanya tentang halaman dokumen, membandingkan gambar atau menerangkan peristiwa visual, dengan resolusi imej dinamik dan batasan terdokumen dalam pengiraan, penaakulan ruang serta pemahaman audio dalam video.</p><dl class=\"card-io\" data-card-io><div><dt>Input yang diterima</dt><dd>Teks</dd></div><div><dt>Hasil</dt><dd>json · sse</dd></div></dl><details class=\"card-about\"><summary>Tentang model</summary><p class=\"note-s\" data-model-method-boundary>Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.</p><div class=\"mabout\" id=\"m-about\"><p>Pengenalan: edisi penglihatan-bahasa 7B</p><p>Qwen2-VL-7B-Instruct ialah ahli 7B dalam Qwen2-VL yang ditala mengikut arahan. Model ini menggabungkan arahan teks dengan imej atau video dan menghasilkan jawapan teks. Output yang berguna termasuk penjelasan halaman, perbandingan gambar, huraian peristiwa yang kelihatan atau respons kepada soalan tentang carta. Model ini kekal sebagai keluaran Qwen2-VL yang tepat ini; titik semak Qwen2.5-VL dan Qwen3-VL yang lebih baharu mempunyai keupayaan dan identitinya sendiri.</p><p>Tambahan daripada Qwen2-VL</p><p>Qwen menerangkan pemahaman visual merentas resolusi imej dan nisbah bidang yang berbeza, serta menjawab soalan video, dialog dan penciptaan kandungan. Keupayaan video keluarga ini yang didokumenkan merangkumi bahan melebihi 20 minit. Tempoh semata-mata tidak menetapkan bilangan bingkai yang diproses oleh aplikasi atau menjamin ingatan tentang setiap peristiwa. Pemahaman teks dalam imej berbilang bahasa merangkumi bahasa Inggeris dan Cina, banyak bahasa Eropah, bahasa Jepun, Korea, Arab dan Vietnam.</p><p>Pembuat juga menerangkan integrasi dengan telefon, robot dan peranti lain melalui pemerhatian visual dan arahan teks. Itu ialah aliran kerja aplikasi: model mentafsir persekitaran visual dan membantu memilih tindakan, sementara perisian atau perkakasan yang disambungkan melaksanakannya. Pengecaman skrin tidak dengan sendirinya memberikan kawalan terhadap skrin itu.</p><p>Perubahan seni bina</p><p>Resolusi dinamik menukarkan imej kepada bilangan token visual yang berubah-ubah dan bukannya memaksa setiap input ke dalam representasi yang sama. M-ROPE memisahkan maklumat kedudukan bagi teks, imej dua dimensi dan maklumat video tiga dimensi, sambil menggabungkan struktur ruang dan masa. Konfigurasi 7B yang diterbitkan menyenaraikan 32,768 kedudukan. Teks, token visual dan output yang dijana berkongsi peruntukan urutan yang terhad, jadi resolusi imej dan pensampelan video mempengaruhi jumlah bahan yang boleh dimasukkan dalam permintaan.</p><p>Penyediaan imej dan perbualan</p><p>Contoh rasmi menyokong satu imej, beberapa imej dan perbualan teks sahaja. Lampirkan imej bersama soalan khusus, bukannya bergantung pada arahan luas seperti “analisis semuanya”. Untuk halaman dokumen, minta medan tertentu dan kekalkan tanda baca dalam petikan. Untuk dua tangkap layar reka bentuk, labelkannya sebagai pertama dan kedua, kemudian minta jadual perubahan yang kelihatan. Untuk carta, minta label, unit dan nilai yang menyokong trend yang dinyatakan. Ini ialah aplikasi praktikal menjawab soalan visual, bukannya janji pengekstrakan tanpa ralat.</p><p>Utiliti pembuat menerima imej daripada fail setempat, data imej yang dikodkan atau lokasi imej; contoh video yang didokumenkan menggunakan fail video setempat atau senarai bingkai tersusun. Format muat naik aplikasi kekal sebagai keputusan antara muka yang berasingan. Kekalkan urutan bingkai asal dan nyatakan selang masa yang diwakili senarai bingkai. Contoh tersebut menjana teks; titik semak ini tidak diterangkan sebagai penjana imej atau video.</p><p>Resolusi dan penyediaan video</p><p>Pemproses Qwen menggunakan julat lalai empat hingga 16,384 token visual bagi setiap imej. Pemproses ini menyediakan min_pixels dan max_pixels untuk mengimbangkan butiran dengan memori dan pengiraan, dengan contoh terdokumen yang menyasarkan 256–1,280 token visual. Imej diubah saiz dalam batas yang dipilih sambil mengekalkan nisbah bidangnya. Dimensi saiz semula yang dinyatakan secara nyata dibundarkan kepada gandaan 28. Jadual padat atau tulisan kecil mungkin memerlukan resolusi yang mencukupi untuk kekal boleh dibaca; peningkatan resolusi juga menggunakan lebih banyak peruntukan visual dan konteks yang tersedia.</p><p>Contoh video menunjukkan kadar pensampelan satu bingkai sesaat dan batas piksel yang boleh dikonfigurasikan. Itu ialah tetapan contoh, bukannya kadar wajib sejagat atau had media mutlak. Untuk semakan peristiwa, berikan klip yang berkaitan dan minta catatan tersusun tentang perubahan yang kelihatan. Peristiwa yang berlaku hampir serentak mungkin memerlukan pensampelan lebih terperinci berbanding ringkasan adegan umum. Qwen2-VL tidak memahami maklumat audio dalam video, jadi dialog pertuturan atau kesan bunyi memerlukan aliran kerja audio yang berasingan.</p><p>Batasan yang diketahui</p><p>Qwen merekodkan tarikh akhir data latihan imej pada Jun 2023, tanpa jaminan pengetahuan tentang orang, produk atau peristiwa selepas itu. Pengecaman individu tertentu dan harta intelek tidak lengkap. Arahan berbilang langkah yang kompleks, bilangan objek dalam adegan sesak dan hubungan ruang—terutamanya dalam tiga dimensi—ialah kelemahan yang didokumenkan. Bahagikan tugasan visual yang rumit kepada soalan jelas, minta bukti yang kelihatan yang menyokong hasil dan semak angka yang diekstrak serta teks yang dipetik dengan imej. Kapsyen yang munasabah tidak patut dianggap sebagai kiraan tepat atau lokasi tiga dimensi yang diukur.</p><p>Contoh penjanaan pendek pada kad ini tidak menetapkan had output mutlak yang berasingan. Rancang saiz jawapan bersama input teks dan visual, dan kekalkan butiran sumber yang mencukupi untuk soalan tertentu. Ini menjadikan pemilihan model dan penyediaan input lebih berguna berbanding menganggap mana-mana gambar atau video panjang memberikan jawapan yang sama andalnya.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tersedia di Ailoot · input &amp; kaedah</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Anthropic Messages</b> <code>POST /v1/messages</code></summary><dl class=\"method-capabilities\"><div><dt>Input</dt><dd><code>text</code></dd></div><div><dt>Output</dt><dd><code>json</code>, <code>sse</code></dd></div><div><dt>Format output</dt><dd>JSON atau SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Medan</th><th>Jenis</th><th>Keperluan</th><th>Nilai &amp; had</th><th>Lalai</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>Qwen2-VL-7B-Instruct-ultra</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>message[]</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span><div>user, assistant</div></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>string</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>integer</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Diperlukan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"unspecified\"><span class=\"card-cell-label\">Lalai</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span><code>boolean</code></td><td data-cell-label=\"Keperluan\"><span class=\"card-cell-label\">Keperluan</span>Pilihan</td><td data-cell-label=\"Nilai &amp; had\"><span class=\"card-cell-label\">Nilai &amp; had</span></td><td data-cell-label=\"Lalai\" data-default=\"known\"><span class=\"card-cell-label\">Lalai</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Gabungan bahan input</summary><p class=\"note-s\"><b>Teks</b> · Teks UTF-8</p><p class=\"note-s\"><code>rentetan messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>Parameter kaedah dan kitar hayat</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Kontrak</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>model, messages, max_tokens</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>stream</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>text_file_material</code></th><td data-cell-label=\"Kontrak\"><span class=\"card-cell-label\">Kontrak</span>Baca dokumen UTF-8 sebenar dan letakkan teksnya dalam rentetan input atau kandungan mesej yang ditunjukkan.</td></tr></tbody></table></div><p>Kitar hayat: <code>synchronous_or_streamed</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Pelan harga</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.</p><dl data-price-conditions><dt>Mod pantas</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila mod pantas dipilih</span></dd><dt>Mod flex</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila mod flex dipilih</span></dd><dt>Usaha penaakulan maksimum</dt><dd>Tidak dinyatakan <span class=\"note-s\">Apabila usaha penaakulan maksimum menggunakan pelarasan default</span></dd></dl></div><div data-declared-tariff-pricing><h4>Kadar Ailoot</h4><h4>Harga mengikut konfigurasi</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurasi</th><th>Jadual kadar</th><th>Caj</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurasi\" scope=\"row\"><span class=\"card-cell-label\">Konfigurasi</span>Kadar asas token</th><td data-cell-label=\"Jadual kadar\"><span class=\"card-cell-label\">Jadual kadar</span>Kadar asas</td><td data-cell-label=\"Caj\"><span class=\"card-cell-label\">Caj</span><div><span>Input · Token input</span> <b>$0.00058</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Output · Token output</span> <b>$0.00142</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Bacaan cache</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Penulisan cache</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Penulisan cache, 1 jam</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. <a href=\"/docs/ms/billing/reserve/\">Cara rizab dan penyelesaian caj berfungsi →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Contoh permintaan</h3><h4>Ailoot Ultra · Anthropic Messages</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Pilihan kod\"><button class=\"cg-tab\" id=\"model-code-946-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-946-panel-0\" aria-selected=\"true\" tabindex=\"0\">Badan JSON minimum yang lengkap</button><button class=\"cg-tab\" id=\"model-code-946-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-946-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · gunakan dokumen UTF-8 anda</button><button class=\"cg-tab\" id=\"model-code-946-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-946-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · simpan hasil lengkap</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Salin kod\"><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-946-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-946-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;Qwen2-VL-7B-Instruct-ultra&quot;,\n  &quot;max_tokens&quot;: 128,\n  &quot;messages&quot;: [\n    {\n      &quot;role&quot;: &quot;user&quot;,\n      &quot;content&quot;: &quot;Summarize the incident report.&quot;\n    }\n  ],\n  &quot;stream&quot;: false\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-946-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-946-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;Qwen2-VL-7B-Instruct-ultra&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nPath(&#39;request.json&#39;).write_text(json.dumps(payload, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H &quot;x-api-key: $AILOOT_API_KEY&quot; -H &#39;anthropic-version: 2023-06-01&#39; -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\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-946-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-946-tab-2\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;Qwen2-VL-7B-Instruct-ultra&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ[&#39;AILOOT_API_KEY&#39;]\nif not api_key.strip():\n    raise SystemExit(&#39;Set AILOOT_API_KEY before making a request&#39;)\nheaders = {&#39;x-api-key&#39;: &#39;PLACEHOLDER_KEY&#39;, &#39;anthropic-version&#39;: &#39;2023-06-01&#39;, &#39;Content-Type&#39;: &#39;application/json&#39;}\nheaders[&#39;x-api-key&#39;] = api_key\nrequest = Request(&#39;https://api.ailoot.ai/v1/messages&#39;, data=json.dumps(payload, ensure_ascii=False).encode(&#39;utf-8&#39;), headers=headers, method=&#39;POST&#39;)\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path(&#39;response-headers.txt&#39;).write_text(str(response.headers), encoding=&#39;utf-8&#39;)\nexcept HTTPError as error:\n    Path(&#39;result.json&#39;).write_bytes(error.read())\n    Path(&#39;response-headers.txt&#39;).write_text(str(error.headers), encoding=&#39;utf-8&#39;)\n    raise\nPath(&#39;result.json&#39;).write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Terima dan simpan hasil</h3><h4>Ailoot Ultra · Anthropic Messages</h4><p class=\"note-s\">JSON atau SSE</p><div class=\"card-result-process\" data-all-results><h5>Simpan semua hasil yang selesai</h5><p class=\"note-s\">Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.</p><p class=\"note-s\">Kekalkan semua blok kandungan, tandatangan penaakulan dan ID penggunaan alat sebenar. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan output.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jika respons asal perlu disemak</h5><p class=\"note-s\">Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.</p></div><details class=\"card-about\" data-output-fields><summary>Medan respons</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Medan</th><th>Jenis</th></tr></thead><tbody><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">content[]</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>text|thinking|tool_use|other content block</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">stop_reason</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>string|null</td></tr><tr><th data-cell-label=\"Medan\" scope=\"row\"><span class=\"card-cell-label\">Medan</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Jenis\" data-field-type><span class=\"card-cell-label\">Jenis</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Ralat dan langkah seterusnya</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Respons</th><th>Syarat</th><th>Langkah seterusnya</th></tr></thead><tbody><tr><th data-cell-label=\"Respons\" scope=\"row\"><span class=\"card-cell-label\">Respons</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Syarat\"><span class=\"card-cell-label\">Syarat</span>Medan wajib, perwakilan bahan atau nilai parameter tidak sah</td><td data-cell-label=\"Langkah seterusnya\"><span class=\"card-cell-label\">Langkah seterusnya</span>Betulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias model</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=Qwen2-VL-7B-Instruct-ultra&amp;route=Ultra&amp;caller=Qwen2-VL-7B-Instruct-ultra&amp;fmt=messages\"><code>Qwen2-VL-7B-Instruct-ultra</code></a></span></p><h4>Alias laluan kaedah</h4><p class=\"note-s\">Gunakan laluan kaedah yang dipaparkan di atas.</p><h4>ID pemanggil berkaitan</h4><p class=\"note-s\"><a href=\"#m=Qwen2-VL-7B-Instruct-ultra&amp;route=Ultra&amp;caller=Qwen2-VL-7B-Instruct-ultra&amp;fmt=messages\"><code>Qwen2-VL-7B-Instruct-ultra</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "Qwen2-VL-7B-Instruct-ultra",
        "fmt": "messages",
        "http": "POST",
        "path": "/v1/messages",
        "request_model_id": "Qwen2-VL-7B-Instruct-ultra",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|messages|/v1/messages|Qwen2-VL-7B-Instruct-ultra",
      "ordinal": 1,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Medan wajib, perwakilan bahan atau nilai parameter tidak sah",
                "http_status": 400,
                "recovery": "Betulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "Qwen2-VL-7B-Instruct-ultra",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "rentetan messages[].content",
                "required_material": "Teks UTF-8"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Kekalkan semua blok kandungan, tandatangan penaakulan dan ID penggunaan alat sebenar. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan output.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON atau SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "Qwen2-VL-7B-Instruct-ultra"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "Qwen2-VL-7B-Instruct-ultra"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "Qwen2-VL-7B-Instruct-ultra",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Baca dokumen UTF-8 sebenar dan letakkan teksnya dalam rentetan input atau kandungan mesej yang ditunjukkan."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Kadar asas token",
            "units": [
              {
                "amount": "0.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00142000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000142",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "{\n  \"model\": \"Qwen2-VL-7B-Instruct-ultra\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'Qwen2-VL-7B-Instruct-ultra', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -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\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'Qwen2-VL-7B-Instruct-ultra', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 0.58,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 1.42,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "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.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00142000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000142",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "Qwen2-VL-7B-Instruct-ultra",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00058000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000058",
            "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.00142000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000142",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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": "Qwen2-VL-7B-Instruct-ultra",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "9ec164625de7831d2ff7e457d4e5c779225e4bb16415105313fdaffb4f4b10bb",
    "input_html_sha256": "d90250a6c09c9b5edc30e89775c1865f4d039c98bfa2bdb4a80e2ff6a68d68b1",
    "private_audit_sha256": "549ef671b0e4fd8414aa79625aa70bb575251d056b23d0d7b0d8f0b0d2b8c28f",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ms/qwen2-vl-7b-instruct-ultra/",
    "description": "Qwen2-VL-7B-Instruct ialah model penglihatan-bahasa Qwen yang ditala mengikut arahan untuk teks, imej dan video, dengan output teks. Gunakannya untuk bertanya tentang halaman dokumen, membandingkan gambar atau menerangkan peristiwa visual, dengan resolusi imej dinamik dan batasan terdokumen dalam pengiraan, penaakulan ruang serta pemahaman audio dalam video.",
    "locale": "ms",
    "md_url": "https://ailoot.ai/models/ms/qwen2-vl-7b-instruct-ultra/index.md",
    "title": "Qwen2-VL-7B-Instruct-ultra — Ailoot",
    "url": "https://ailoot.ai/models/ms/qwen2-vl-7b-instruct-ultra/"
  },
  "practicalHtml": "<h3>Tugas praktikal</h3><p>Contoh teknikal dalam bahasa Inggeris</p><pre><code>Compare transcribed dashboard changes\n\nCompare these dashboard descriptions supplied as text. First: heading &#x27;Orders&#x27;, filter &#x27;All dates&#x27;, total 240. Second: heading &#x27;Orders&#x27;, filter &#x27;This week&#x27;, total 38. Return a table of changed and unchanged fields, then explain why the totals alone do not establish a fall in orders. Use only the descriptions and keep the filter labels exact.</code></pre><h4>Hasil yang dijangka</h4><pre><code>A field-comparison table and a short explanation of the different date scopes.</code></pre><h4>Semak hasil</h4><pre><code>The result does not treat totals from All dates and This week as comparable periods.</code></pre>",
  "practicalText": "Tugas praktikal Contoh teknikal dalam bahasa Inggeris Compare transcribed dashboard changes Compare these dashboard descriptions supplied as text. First: heading 'Orders', filter 'All dates', total 240. Second: heading 'Orders', filter 'This week', total 38. Return a table of changed and unchanged fields, then explain why the totals alone do not establish a fall in orders. Use only the descriptions and keep the filter labels exact. Hasil yang dijangka A field-comparison table and a short explanation of the different date scopes. Semak hasil The result does not treat totals from All dates and This week as comparable periods.",
  "rawModel": {
    "about": "Pengenalan: edisi penglihatan-bahasa 7B\n\nQwen2-VL-7B-Instruct ialah ahli 7B dalam Qwen2-VL yang ditala mengikut arahan. Model ini menggabungkan arahan teks dengan imej atau video dan menghasilkan jawapan teks. Output yang berguna termasuk penjelasan halaman, perbandingan gambar, huraian peristiwa yang kelihatan atau respons kepada soalan tentang carta. Model ini kekal sebagai keluaran Qwen2-VL yang tepat ini; titik semak Qwen2.5-VL dan Qwen3-VL yang lebih baharu mempunyai keupayaan dan identitinya sendiri.\n\nTambahan daripada Qwen2-VL\n\nQwen menerangkan pemahaman visual merentas resolusi imej dan nisbah bidang yang berbeza, serta menjawab soalan video, dialog dan penciptaan kandungan. Keupayaan video keluarga ini yang didokumenkan merangkumi bahan melebihi 20 minit. Tempoh semata-mata tidak menetapkan bilangan bingkai yang diproses oleh aplikasi atau menjamin ingatan tentang setiap peristiwa. Pemahaman teks dalam imej berbilang bahasa merangkumi bahasa Inggeris dan Cina, banyak bahasa Eropah, bahasa Jepun, Korea, Arab dan Vietnam.\n\nPembuat juga menerangkan integrasi dengan telefon, robot dan peranti lain melalui pemerhatian visual dan arahan teks. Itu ialah aliran kerja aplikasi: model mentafsir persekitaran visual dan membantu memilih tindakan, sementara perisian atau perkakasan yang disambungkan melaksanakannya. Pengecaman skrin tidak dengan sendirinya memberikan kawalan terhadap skrin itu.\n\nPerubahan seni bina\n\nResolusi dinamik menukarkan imej kepada bilangan token visual yang berubah-ubah dan bukannya memaksa setiap input ke dalam representasi yang sama. M-ROPE memisahkan maklumat kedudukan bagi teks, imej dua dimensi dan maklumat video tiga dimensi, sambil menggabungkan struktur ruang dan masa. Konfigurasi 7B yang diterbitkan menyenaraikan 32,768 kedudukan. Teks, token visual dan output yang dijana berkongsi peruntukan urutan yang terhad, jadi resolusi imej dan pensampelan video mempengaruhi jumlah bahan yang boleh dimasukkan dalam permintaan.\n\nPenyediaan imej dan perbualan\n\nContoh rasmi menyokong satu imej, beberapa imej dan perbualan teks sahaja. Lampirkan imej bersama soalan khusus, bukannya bergantung pada arahan luas seperti “analisis semuanya”. Untuk halaman dokumen, minta medan tertentu dan kekalkan tanda baca dalam petikan. Untuk dua tangkap layar reka bentuk, labelkannya sebagai pertama dan kedua, kemudian minta jadual perubahan yang kelihatan. Untuk carta, minta label, unit dan nilai yang menyokong trend yang dinyatakan. Ini ialah aplikasi praktikal menjawab soalan visual, bukannya janji pengekstrakan tanpa ralat.\n\nUtiliti pembuat menerima imej daripada fail setempat, data imej yang dikodkan atau lokasi imej; contoh video yang didokumenkan menggunakan fail video setempat atau senarai bingkai tersusun. Format muat naik aplikasi kekal sebagai keputusan antara muka yang berasingan. Kekalkan urutan bingkai asal dan nyatakan selang masa yang diwakili senarai bingkai. Contoh tersebut menjana teks; titik semak ini tidak diterangkan sebagai penjana imej atau video.\n\nResolusi dan penyediaan video\n\nPemproses Qwen menggunakan julat lalai empat hingga 16,384 token visual bagi setiap imej. Pemproses ini menyediakan min_pixels dan max_pixels untuk mengimbangkan butiran dengan memori dan pengiraan, dengan contoh terdokumen yang menyasarkan 256–1,280 token visual. Imej diubah saiz dalam batas yang dipilih sambil mengekalkan nisbah bidangnya. Dimensi saiz semula yang dinyatakan secara nyata dibundarkan kepada gandaan 28. Jadual padat atau tulisan kecil mungkin memerlukan resolusi yang mencukupi untuk kekal boleh dibaca; peningkatan resolusi juga menggunakan lebih banyak peruntukan visual dan konteks yang tersedia.\n\nContoh video menunjukkan kadar pensampelan satu bingkai sesaat dan batas piksel yang boleh dikonfigurasikan. Itu ialah tetapan contoh, bukannya kadar wajib sejagat atau had media mutlak. Untuk semakan peristiwa, berikan klip yang berkaitan dan minta catatan tersusun tentang perubahan yang kelihatan. Peristiwa yang berlaku hampir serentak mungkin memerlukan pensampelan lebih terperinci berbanding ringkasan adegan umum. Qwen2-VL tidak memahami maklumat audio dalam video, jadi dialog pertuturan atau kesan bunyi memerlukan aliran kerja audio yang berasingan.\n\nBatasan yang diketahui\n\nQwen merekodkan tarikh akhir data latihan imej pada Jun 2023, tanpa jaminan pengetahuan tentang orang, produk atau peristiwa selepas itu. Pengecaman individu tertentu dan harta intelek tidak lengkap. Arahan berbilang langkah yang kompleks, bilangan objek dalam adegan sesak dan hubungan ruang—terutamanya dalam tiga dimensi—ialah kelemahan yang didokumenkan. Bahagikan tugasan visual yang rumit kepada soalan jelas, minta bukti yang kelihatan yang menyokong hasil dan semak angka yang diekstrak serta teks yang dipetik dengan imej. Kapsyen yang munasabah tidak patut dianggap sebagai kiraan tepat atau lokasi tiga dimensi yang diukur.\n\nContoh penjanaan pendek pada kad ini tidak menetapkan had output mutlak yang berasingan. Rancang saiz jawapan bersama input teks dan visual, dan kekalkan butiran sumber yang mencukupi untuk soalan tertentu. Ini menjadikan pemilihan model dan penyediaan input lebih berguna berbanding menganggap mana-mana gambar atau video panjang memberikan jawapan yang sama andalnya.",
    "alias_of": null,
    "aliases": [],
    "author": "Other",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [],
      "manufacturer_output": []
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00058000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000058",
            "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.00142000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000142",
            "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": "Maklumat lengkap tentang harga konfigurasi terdapat dalam butiran."
      }
    ],
    "ctx": null,
    "formats": [
      "chat",
      "messages"
    ],
    "id": "Qwen2-VL-7B-Instruct-ultra",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Medan wajib, perwakilan bahan atau nilai parameter tidak sah",
                "http_status": 400,
                "recovery": "Betulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "Teks UTF8"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "Kekalkan setiap pilihan jawapan bersama kandungan, panggilan alat dan penaakulannya. Dalam SSE, gabungkan delta mengikut indeks pilihan jawapan/alat dan kekalkan sebab penamatan akhir serta data penggunaan.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json atau SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "Qwen2-VL-7B-Instruct-ultra"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "Peranan ini diwakili secara eksplisit oleh jenis keserasian dalam kod sumber; set peranan model yang tepat kekal khusus untuk setiap model.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; gunakan ID sebenar yang dipulangkan"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "Hantar semula penaakulan sebenar yang dipulangkan apabila model ini menggunakannya"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "alat fungsi dibekalkan"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options ditolak pada laluan teks Ultra ini",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "1h ditolak pada lokasi cache prompt yang digunakan",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "Hantar ID model yang tepat bersama messages.",
            "Panjang konteks bukan had output.",
            "Fail teks boleh membekalkan teks literal; input imej/audio/objek fail memerlukan pengikatan tepat."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "khusus model; alat fungsi pengguna berbeza daripada alat yang dihoskan",
            "file_material": "dokumen UTF-8 sebenar dimasukkan sebagai teks literal; ID fail tidak diandaikan",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "tatasusunan mesej dengan struktur role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Kadar asas token",
            "units": [
              {
                "amount": "0.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00142000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000142",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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\": \"Qwen2-VL-7B-Instruct-ultra\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\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/chat/completions \\\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(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='Qwen2-VL-7B-Instruct-ultra',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='Qwen2-VL-7B-Instruct-ultra',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 0.58,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 1.42,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "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.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00142000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000142",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "Qwen2-VL-7B-Instruct-ultra",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00058000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000058",
            "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.00142000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000142",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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"
          }
        ]
      },
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Medan wajib, perwakilan bahan atau nilai parameter tidak sah",
                "http_status": 400,
                "recovery": "Betulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "Qwen2-VL-7B-Instruct-ultra",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "rentetan messages[].content",
                "required_material": "Teks UTF-8"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Kekalkan semua blok kandungan, tandatangan penaakulan dan ID penggunaan alat sebenar. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan output.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON atau SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "Qwen2-VL-7B-Instruct-ultra"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "Qwen2-VL-7B-Instruct-ultra"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "Qwen2-VL-7B-Instruct-ultra",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Baca dokumen UTF-8 sebenar dan letakkan teksnya dalam rentetan input atau kandungan mesej yang ditunjukkan."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Kadar asas token",
            "units": [
              {
                "amount": "0.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00142000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000142",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "{\n  \"model\": \"Qwen2-VL-7B-Instruct-ultra\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'Qwen2-VL-7B-Instruct-ultra', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -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\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'Qwen2-VL-7B-Instruct-ultra', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 0.58,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 1.42,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "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.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00142000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000142",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "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": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "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": "Qwen2-VL-7B-Instruct-ultra",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00058000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000058",
            "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.00142000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000142",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "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": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "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": "Qwen2-VL-7B-Instruct-ultra",
        "request_model_id": "Qwen2-VL-7B-Instruct-ultra",
        "route_label": "Ultra"
      }
    ],
    "name": "Qwen2-VL-7B-Instruct-ultra",
    "price": {
      "in": 0.58,
      "in_label": null,
      "out": 1.42,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.58,
      "sort_out": 1.42,
      "varies": false
    },
    "short": "Qwen2-VL-7B-Instruct ialah model penglihatan-bahasa Qwen yang ditala mengikut arahan untuk teks, imej dan video, dengan output teks. Gunakannya untuk bertanya tentang halaman dokumen, membandingkan gambar atau menerangkan peristiwa visual, dengan resolusi imej dinamik dan batasan terdokumen dalam pengiraan, penaakulan ruang serta pemahaman audio dalam video."
  },
  "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
        },
        {
          "contract_json_pointer": "/methods/1/rawMethod/contract",
          "html_json_pointer": "/methods/1/html",
          "method_ordinal": 1
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod",
        "/methods/1/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Qwen2-VL-7B-Instruct ialah model penglihatan-bahasa Qwen yang ditala mengikut arahan untuk teks, imej dan video, dengan output teks. Gunakannya untuk bertanya tentang halaman dokumen, membandingkan gambar atau menerangkan peristiwa visual, dengan resolusi imej dinamik dan batasan terdokumen dalam pengiraan, penaakulan ruang serta pemahaman audio dalam video.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "3da0bcad3577312b6baa977e195fce7b06f2ae19b35ed34907cb709a22ee545a",
    "renderer_sha256": "1dab5ba62521e9568c8b7c82005622cabbf330a075df7cce1f83274a04009460"
  },
  "sourceRevision": "7a5583ae1d51dff6129d2c8d922008bb9c02402231c9247258128a9738329424"
}
