{
  "aboutHtml": "<p>Qwen/Qwen2.5-7B-Instruct est l’édition Qwen2.5 de 7B adaptée aux instructions. Sa <a href=\"https://huggingface.co/Qwen/Qwen2.5-7B-Instruct\">fiche officielle</a> souligne instructions multilingues, compréhension des données structurées et génération de texte structuré. Elle peut convertir une description produit multilingue en champs de catalogue, avec un champ séparé pour les informations absentes.</p><p>La route Chat Completions Ailoot accepte texte et images, retourne du texte et expose model, messages et stream optionnel. Elle n’expose ici ni response_format ni limite chiffrée de contexte ou sortie. Demander du JSON dans le prompt exprime donc une forme souhaitée, sans garantie de schéma. Choisissez l’édition Coder distincte pour le modèle spécialisé code.</p>",
  "aboutText": "Qwen/Qwen2.5-7B-Instruct est l’édition Qwen2.5 de 7B adaptée aux instructions. Sa fiche officielle souligne instructions multilingues, compréhension des données structurées et génération de texte structuré. Elle peut convertir une description produit multilingue en champs de catalogue, avec un champ séparé pour les informations absentes. La route Chat Completions Ailoot accepte texte et images, retourne du texte et expose model, messages et stream optionnel. Elle n’expose ici ni response_format ni limite chiffrée de contexte ou sortie. Demander du JSON dans le prompt exprime donc une forme souhaitée, sans garantie de schéma. Choisissez l’édition Coder distincte pour le modèle spécialisé code.",
  "editorialOverlay": {
    "copy_fields": {
      "about_html": "<p>Qwen/Qwen2.5-7B-Instruct est l’édition Qwen2.5 de 7B adaptée aux instructions. Sa <a href=\"https://huggingface.co/Qwen/Qwen2.5-7B-Instruct\">fiche officielle</a> souligne instructions multilingues, compréhension des données structurées et génération de texte structuré. Elle peut convertir une description produit multilingue en champs de catalogue, avec un champ séparé pour les informations absentes.</p><p>La route Chat Completions Ailoot accepte texte et images, retourne du texte et expose model, messages et stream optionnel. Elle n’expose ici ni response_format ni limite chiffrée de contexte ou sortie. Demander du JSON dans le prompt exprime donc une forme souhaitée, sans garantie de schéma. Choisissez l’édition Coder distincte pour le modèle spécialisé code.</p>",
      "short_text": "Édition Qwen 7B adaptée aux instructions pour texte multilingue, extraction structurée et réponses de chat."
    },
    "copy_sha256": "066fef604f0e612bb7594d1142829d42fdd83b1577fb5b6ace4a6bb78ea403bf",
    "copy_source": {
      "locale": "fr-be",
      "pack_sha256": "0f56d90ba41881e1134accf82e57338f246f8753ca4c0cee929aaffada5d10e7",
      "record_model_id": "Qwen/Qwen2.5-7B-Instruct",
      "source_facts_sha256": "8b21e1744caedc7c2b68ca62d11d95ce8c9df1a18c4248c3a708cabda4203e46",
      "validation_sha256": "a2ac2f28056280fc0b2ea34a501bf156d5ce155406e57e708edf30bfdf6bfdc6"
    },
    "html_sha256": "34beeafe50ad46ceb7256078bede3cedf3ef39dfd8e546afb5ede66d91baa431",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fr-be",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Qwen/Qwen2.5-7B-Instruct</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fermer\">×</button></div><div class=\"idline\"><span>Autre /</span><code>Qwen/Qwen2.5-7B-Instruct</code><button type=\"button\" id=\"copy-id\">Copier l’ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Rubriques de la fiche modèle\"><button type=\"button\" data-card-jump=\"overview\">Premiers pas</button><button type=\"button\" data-card-jump=\"methods\">Entrées et méthodes</button><button type=\"button\" data-card-jump=\"pricing\">Tarifs</button><button type=\"button\" data-card-jump=\"examples\">Exemples</button><button type=\"button\" data-card-jump=\"results\">Résultats</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Méthodes 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|Qwen%2FQwen2.5-7B-Instruct\">Chat</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\">Premiers pas</h3><p class=\"mdesc-full\">Édition Qwen 7B adaptée aux instructions pour texte multilingue, extraction structurée et réponses de chat.</p><dl class=\"card-io\" data-card-io><div><dt>Entrées acceptées</dt><dd>Texte · Images</dd></div><div><dt>Résultats</dt><dd>Texte</dd></div></dl><details class=\"card-about\"><summary>À propos du modèle</summary><p class=\"note-s\" data-model-method-boundary>Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.</p><div class=\"mabout\" id=\"m-about\"><p>Qwen/Qwen2.5-7B-Instruct est l’édition Qwen2.5 de 7B adaptée aux instructions. Sa <a href=\"https://huggingface.co/Qwen/Qwen2.5-7B-Instruct\">fiche officielle</a> souligne instructions multilingues, compréhension des données structurées et génération de texte structuré. Elle peut convertir une description produit multilingue en champs de catalogue, avec un champ séparé pour les informations absentes.</p><p>La route Chat Completions Ailoot accepte texte et images, retourne du texte et expose model, messages et stream optionnel. Elle n’expose ici ni response_format ni limite chiffrée de contexte ou sortie. Demander du JSON dans le prompt exprime donc une forme souhaitée, sans garantie de schéma. Choisissez l’édition Coder distincte pour le modèle spécialisé code.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponible dans Ailoot · entrées et méthodes</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>Entrée</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>Sortie</dt><dd><code>text</code></dd></div><div><dt>Format de sortie</dt><dd>JSON or SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Champ</th><th>Type</th><th>Exigence</th><th>Valeurs et limites</th><th>Par défaut</th></tr></thead><tbody><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Obligatoire</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>Qwen/Qwen2.5-7B-Instruct</div><div>Conditions: Utilisez exactement ce sélecteur de routage Ailoot.</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>array</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Obligatoire</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>Conditions: </div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>Conditions: </div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Combinaisons d’éléments d’entrée</summary><p class=\"note-s\"><b>text_input</b> · Obligatoire : messages</p><p class=\"note-s\"><b>image_with_text</b> · Obligatoire : messages with actual image content blocks</p></details><details class=\"note-s\" data-method-contract><summary>Paramètres et cycle de vie de la méthode</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Paramètre</th><th>Contrat</th></tr></thead><tbody><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>content_type</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>application/json</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>required</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>model, messages</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>optional</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>stream</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>material_types</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>text, image</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>conditions</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>Utilisez exactement ce sélecteur de routage Ailoot., Ce protocole transmet le contenu des images lorsque le modèle précis sélectionné prend en charge la vision. L’admission par le protocole n’établit pas que chaque modèle peut traiter des images.</td></tr></tbody></table></div><p>Alias de méthode : <code>/chat/completions</code></p><p>Cycle de vie : <code>synchronous_or_streamed</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifs</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.</p><dl data-price-conditions><dt>Mode rapide</dt><dd>Tarif standard <span class=\"note-s\">Lorsque le mode rapide est sélectionné</span></dd><dt>Mode Flex</dt><dd>Tarif standard <span class=\"note-s\">Lorsque le mode flex est sélectionné</span></dd><dt>Effort de raisonnement maximal</dt><dd>Tarif standard <span class=\"note-s\">Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)</span></dd><dt>Tarification du cache explicite</dt><dd>Non activé <span class=\"note-s\">Lorsqu’un cache explicite est demandé</span></dd><dt>Tarifs nuls pour le texte uniquement</dt><dd>Le cache, les outils et les médias sont soumis à leurs conditions tarifaires respectives, indiquées séparément. <span class=\"note-s\">Pour une entrée et une sortie exclusivement textuelles</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifs Ailoot</h4><h4>Prix par configuration</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuration</th><th>Barème tarifaire</th><th>Coût</th></tr></thead><tbody><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>Tarifs de base des jetons</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>Tarif de base</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Entrée · Tokens en entrée</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Sortie · Tokens en sortie</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Lecture du cache</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache, 1 h</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. <a href=\"/docs/fr-be/billing/reserve/\">Fonctionnement de la réservation et du débit →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exemples de requêtes</h3><h4>Ailoot Ultra · OpenAI Chat</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes du code\"><button class=\"cg-tab\" id=\"model-code-2823-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2823-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · créer une seule fois et conserver le résultat complet</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copier le code\"><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-2823-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2823-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;Qwen/Qwen2.5-7B-Instruct&quot;, &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Explain how a rainbow forms.&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\n# Submit once. Retain the complete result, original identifiers and every response header.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Recevoir et enregistrer les résultats</h3><h4>Ailoot Ultra · OpenAI Chat</h4><p class=\"note-s\">JSON or SSE</p><div class=\"card-result-process\" data-all-results><h5>Conserver tous les résultats terminés</h5><p class=\"note-s\">Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.</p><p class=\"note-s\">Conservez chaque bloc de contenu, chaque identifiant d’appel d’outil, la signature de raisonnement lorsqu’elle est renvoyée, tous les deltas SSE et les données complètes de consommation. Le premier fragment de texte ne représente pas l’intégralité du résultat.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Si la réponse d’origine doit être vérifiée</h5><p class=\"note-s\">Conservez le X-Client-Request-ID d’origine, la réponse et les en-têtes. Un résultat inconnu ou à l’état result_pending_check n’autorise pas une deuxième création.</p></div><details class=\"card-about\" data-output-fields><summary>Champs de la réponse</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Champ</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">choices[]</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Erreurs et étapes suivantes</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Réponse</th><th>Condition</th><th>Étape suivante</th></tr></thead><tbody><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Un champ obligatoire, un sélecteur de modèle, un type ou une représentation de l’entrée est invalide.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Examinez les détails de validation renvoyés avant de préparer une requête distincte.</td></tr><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span><code></code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>La requête d’origine ou son résultat est inconnu ou nécessite une vérification.</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Conservez les identifiants et les en-têtes d’origine ; consultez uniquement les enregistrements d’état ou de bibliothèque pris en charge. Ne soumettez pas à nouveau la requête de création.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias du modèle</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=Qwen%2FQwen2.5-7B-Instruct&amp;route=Ultra&amp;caller=Qwen%2FQwen2.5-7B-Instruct&amp;fmt=chat\"><code>Qwen/Qwen2.5-7B-Instruct</code></a></span></p><h4>Alias des chemins de méthode</h4><p class=\"note-s\"><code>/chat/completions</code></p><h4>ID d’appel associés</h4><p class=\"note-s\"><a href=\"#m=Qwen%2FQwen2.5-7B-Instruct&amp;route=Ultra&amp;caller=Qwen%2FQwen2.5-7B-Instruct&amp;fmt=chat\"><code>Qwen/Qwen2.5-7B-Instruct</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "Qwen/Qwen2.5-7B-Instruct",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "Qwen/Qwen2.5-7B-Instruct",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|Qwen%2FQwen2.5-7B-Instruct",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "accepted_material_guidance": {
              "content_type": "application/json",
              "example_scope": "The preserved text example is one valid request form, not the full protocol input set.",
              "image_condition": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model.",
              "material_types": [
                "text",
                "image"
              ],
              "text_file_material": "Actual UTF-8 text can be inserted in a text content part."
            },
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "authentication": {
              "header": "Authorization",
              "scheme": "Bearer",
              "value": "$AILOOT_API_KEY"
            },
            "errors": [
              {
                "condition": "Un champ obligatoire, un sélecteur de modèle, un type ou une représentation de l’entrée est invalide.",
                "http_status": 400,
                "recovery": "Examinez les détails de validation renvoyés avant de préparer une requête distincte.",
                "type": "invalid_request_error"
              },
              {
                "condition": "La requête d’origine ou son résultat est inconnu ou nécessite une vérification.",
                "http_status": null,
                "recovery": "Conservez les identifiants et les en-têtes d’origine ; consultez uniquement les enregistrements d’état ou de bibliothèque pris en charge. Ne soumettez pas à nouveau la requête de création.",
                "type": null
              }
            ],
            "lifecycle": {
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "mode": "synchronous_or_streamed",
              "status": [],
              "unknown": "Conservez le X-Client-Request-ID d’origine, la réponse et les en-têtes. Un résultat inconnu ou à l’état result_pending_check n’autorise pas une deuxième création.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "materials": [
                  "text"
                ],
                "mode": "text_input",
                "required": [
                  "messages"
                ]
              },
              {
                "condition": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model.",
                "materials": [
                  "text",
                  "image"
                ],
                "mode": "image_with_text",
                "required": [
                  "messages with actual image content blocks"
                ]
              }
            ],
            "model_capability_scope": {
              "all_models_vision_claim": false,
              "manufacturer_description_preserved": "Retain grounded accepted legacy vision descriptions; a plain text example is not a capability ceiling.",
              "model_vision": "conditional_on_exact_model_capability",
              "transport_materials": [
                "text",
                "image"
              ],
              "video_audio_inferred": false
            },
            "outputs": {
              "all_results": "Conservez chaque bloc de contenu, chaque identifiant d’appel d’outil, la signature de raisonnement lorsqu’elle est renvoyée, tous les deltas SSE et les données complètes de consommation. Le premier fragment de texte ne représente pas l’intégralité du résultat.",
              "every_actual_output": true,
              "family": "text",
              "fields": [
                {
                  "name": "choices[]",
                  "type": "object"
                },
                {
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON or SSE"
            },
            "parameters": [
              {
                "conditions": "Utilisez exactement ce sélecteur de routage Ailoot.",
                "default_known": false,
                "enum": [
                  "Qwen/Qwen2.5-7B-Instruct"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "items": {
                  "properties": {
                    "content": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "items": {
                            "oneOf": [
                              {
                                "properties": {
                                  "text": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "const": "text"
                                  }
                                },
                                "required": [
                                  "type",
                                  "text"
                                ],
                                "type": "object"
                              },
                              {
                                "properties": {
                                  "image_url": {
                                    "properties": {
                                      "detail": {
                                        "type": "string"
                                      },
                                      "url": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "url"
                                    ],
                                    "type": "object"
                                  },
                                  "type": {
                                    "const": "image_url"
                                  }
                                },
                                "required": [
                                  "type",
                                  "image_url"
                                ],
                                "type": "object"
                              }
                            ]
                          },
                          "type": "array"
                        }
                      ]
                    },
                    "role": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "role",
                    "content"
                  ],
                  "type": "object"
                },
                "minItems": 1,
                "name": "messages",
                "required": true,
                "type": "array"
              },
              {
                "conditions": "",
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "messages": {
                  "items": {
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "image_url": {
                                      "properties": {
                                        "detail": {
                                          "type": "string"
                                        },
                                        "url": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "url"
                                      ],
                                      "type": "object"
                                    },
                                    "type": {
                                      "const": "image_url"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "image_url"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "Qwen/Qwen2.5-7B-Instruct"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "messages": [
                  {
                    "content": "Explain how a rainbow forms.",
                    "role": "user"
                  }
                ],
                "model": "Qwen/Qwen2.5-7B-Instruct"
              },
              "content_type": "application/json",
              "example_is_offline_content": true
            },
            "usage": {
              "meter": "Use the accepted method price and actual recorded usage; the request reserve is an estimate. A billing unit does not add an input capability.",
              "preserve": "Keep all returned usage, accounting and request identifiers with every actual output.",
              "settlement": "Retain the original operation; reconcile its result and accounting once."
            }
          },
          "input": {
            "conditions": [
              "Utilisez exactement ce sélecteur de routage Ailoot.",
              "Ce protocole transmet le contenu des images lorsque le modèle précis sélectionné prend en charge la vision. L’admission par le protocole n’établit pas que chaque modèle peut traiter des images."
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "stream"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/chat/completions"
            },
            "mode": "synchronous_or_streamed",
            "status": [],
            "unknown": "Keep the original X-Client-Request-ID, response and headers. An unknown or result_pending_check outcome does not authorize a second creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [
            "/chat/completions"
          ],
          "output": {
            "all_results": "Retain every content block, tool-call ID, thinking signature when returned, all SSE deltas and complete usage. A first text fragment is not the whole result.",
            "every_actual_output": true,
            "family": "text",
            "fields": [
              {
                "name": "choices[]",
                "type": "object"
              },
              {
                "name": "usage",
                "type": "object"
              }
            ],
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "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}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"Qwen/Qwen2.5-7B-Instruct\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain how a rainbow forms.\"}]}')\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\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "chat",
        "http": "POST",
        "in": 0,
        "input": [
          "text",
          "image"
        ],
        "input_conditions": {
          "image": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model."
        },
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 0,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Standard rate",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Standard rate",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Standard rate",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Not enabled",
            "when": "When explicit cache is requested"
          },
          {
            "label": "Tarifs nuls pour le texte uniquement",
            "value": "Le cache, les outils et les médias sont soumis à leurs conditions tarifaires respectives, indiquées séparément.",
            "when": "Pour une entrée et une sortie exclusivement textuelles"
          }
        ],
        "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",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "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": "Qwen/Qwen2.5-7B-Instruct",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "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": "Qwen/Qwen2.5-7B-Instruct",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "5b47e7189b53d4467c2feb0f9c339234c89d9546ecf57b6a93593becc266c31c",
    "input_html_sha256": "f0a87a68ded5de75019fc98b9641a9a5914e6e97ce011843b89306e628d0b0b7",
    "private_audit_sha256": "37b3f729e88c9ad67b989464053b2dc278ad24b2a4b2f6079a16e718128f3845",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fr-be/qwen-qwen2-5-7b-instruct/",
    "description": "Édition Qwen 7B adaptée aux instructions pour texte multilingue, extraction structurée et réponses de chat.",
    "locale": "fr-be",
    "md_url": "https://ailoot.ai/models/fr-be/qwen-qwen2-5-7b-instruct/index.md",
    "title": "Qwen/Qwen2.5-7B-Instruct — Ailoot",
    "url": "https://ailoot.ai/models/fr-be/qwen-qwen2-5-7b-instruct/"
  },
  "rawModel": {
    "about": "Qwen/Qwen2.5-7B-Instruct se sélectionne par son identifiant exact dans une requête /v1/chat/completions d’Ailoot. Fournissez model et un tableau messages non vide ; pour ce processus textuel, utilisez un role et un content sous forme de chaîne pour chaque message. Disposez la consigne, les documents de référence et le format de réponse souhaité de manière à rendre leur relation claire.\n\nPour une tâche documentaire, joignez le texte pertinent et demandez un livrable défini : un plan, un passage réécrit, un tableau comparatif exprimé en texte ou une explication destinée à un public précis. Indiquez les termes et les faits à préserver. Lorsque vous poursuivez une conversation, incluez les éléments antérieurs nécessaires pour interpréter la question actuelle.\n\nLa réponse peut arriver en JSON ou sous forme de flux SSE contrôlé par stream. Récupérez tout le contenu avant de présenter la réponse terminée et conservez usage avec la requête. Comparez le résultat aux faits fournis et au format demandé afin de cibler une omission ou une correction au tour suivant.",
    "alias_of": null,
    "aliases": [],
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "La tarification complète de la configuration figure dans les détails."
      }
    ],
    "ctx": null,
    "formats": [
      "chat"
    ],
    "id": "Qwen/Qwen2.5-7B-Instruct",
    "input": [
      "text",
      "image"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "accepted_material_guidance": {
              "content_type": "application/json",
              "example_scope": "The preserved text example is one valid request form, not the full protocol input set.",
              "image_condition": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model.",
              "material_types": [
                "text",
                "image"
              ],
              "text_file_material": "Actual UTF-8 text can be inserted in a text content part."
            },
            "all_results": "Retain the complete response and headers, original identifiers, every actual output and all usage/accounting fields. Save each unique owned asset and retain every role pointing to it.",
            "authentication": {
              "header": "Authorization",
              "scheme": "Bearer",
              "value": "$AILOOT_API_KEY"
            },
            "errors": [
              {
                "condition": "Un champ obligatoire, un sélecteur de modèle, un type ou une représentation de l’entrée est invalide.",
                "http_status": 400,
                "recovery": "Examinez les détails de validation renvoyés avant de préparer une requête distincte.",
                "type": "invalid_request_error"
              },
              {
                "condition": "La requête d’origine ou son résultat est inconnu ou nécessite une vérification.",
                "http_status": null,
                "recovery": "Conservez les identifiants et les en-têtes d’origine ; consultez uniquement les enregistrements d’état ou de bibliothèque pris en charge. Ne soumettez pas à nouveau la requête de création.",
                "type": null
              }
            ],
            "lifecycle": {
              "cancel_endpoint": null,
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "mode": "synchronous_or_streamed",
              "status": [],
              "unknown": "Conservez le X-Client-Request-ID d’origine, la réponse et les en-têtes. Un résultat inconnu ou à l’état result_pending_check n’autorise pas une deuxième création.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "materials": [
                  "text"
                ],
                "mode": "text_input",
                "required": [
                  "messages"
                ]
              },
              {
                "condition": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model.",
                "materials": [
                  "text",
                  "image"
                ],
                "mode": "image_with_text",
                "required": [
                  "messages with actual image content blocks"
                ]
              }
            ],
            "model_capability_scope": {
              "all_models_vision_claim": false,
              "manufacturer_description_preserved": "Retain grounded accepted legacy vision descriptions; a plain text example is not a capability ceiling.",
              "model_vision": "conditional_on_exact_model_capability",
              "transport_materials": [
                "text",
                "image"
              ],
              "video_audio_inferred": false
            },
            "outputs": {
              "all_results": "Conservez chaque bloc de contenu, chaque identifiant d’appel d’outil, la signature de raisonnement lorsqu’elle est renvoyée, tous les deltas SSE et les données complètes de consommation. Le premier fragment de texte ne représente pas l’intégralité du résultat.",
              "every_actual_output": true,
              "family": "text",
              "fields": [
                {
                  "name": "choices[]",
                  "type": "object"
                },
                {
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON or SSE"
            },
            "parameters": [
              {
                "conditions": "Utilisez exactement ce sélecteur de routage Ailoot.",
                "default_known": false,
                "enum": [
                  "Qwen/Qwen2.5-7B-Instruct"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "",
                "default_known": false,
                "enum_known": false,
                "items": {
                  "properties": {
                    "content": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "items": {
                            "oneOf": [
                              {
                                "properties": {
                                  "text": {
                                    "type": "string"
                                  },
                                  "type": {
                                    "const": "text"
                                  }
                                },
                                "required": [
                                  "type",
                                  "text"
                                ],
                                "type": "object"
                              },
                              {
                                "properties": {
                                  "image_url": {
                                    "properties": {
                                      "detail": {
                                        "type": "string"
                                      },
                                      "url": {
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "url"
                                    ],
                                    "type": "object"
                                  },
                                  "type": {
                                    "const": "image_url"
                                  }
                                },
                                "required": [
                                  "type",
                                  "image_url"
                                ],
                                "type": "object"
                              }
                            ]
                          },
                          "type": "array"
                        }
                      ]
                    },
                    "role": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "role",
                    "content"
                  ],
                  "type": "object"
                },
                "minItems": 1,
                "name": "messages",
                "required": true,
                "type": "array"
              },
              {
                "conditions": "",
                "default": false,
                "default_known": true,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "messages": {
                  "items": {
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "image_url": {
                                      "properties": {
                                        "detail": {
                                          "type": "string"
                                        },
                                        "url": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "url"
                                      ],
                                      "type": "object"
                                    },
                                    "type": {
                                      "const": "image_url"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "image_url"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "Qwen/Qwen2.5-7B-Instruct"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "messages": [
                  {
                    "content": "Explain how a rainbow forms.",
                    "role": "user"
                  }
                ],
                "model": "Qwen/Qwen2.5-7B-Instruct"
              },
              "content_type": "application/json",
              "example_is_offline_content": true
            },
            "usage": {
              "meter": "Use the accepted method price and actual recorded usage; the request reserve is an estimate. A billing unit does not add an input capability.",
              "preserve": "Keep all returned usage, accounting and request identifiers with every actual output.",
              "settlement": "Retain the original operation; reconcile its result and accounting once."
            }
          },
          "input": {
            "conditions": [
              "Utilisez exactement ce sélecteur de routage Ailoot.",
              "Ce protocole transmet le contenu des images lorsque le modèle précis sélectionné prend en charge la vision. L’admission par le protocole n’établit pas que chaque modèle peut traiter des images."
            ],
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional": [
              "stream"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "create": {
              "http": "POST",
              "path": "/v1/chat/completions"
            },
            "mode": "synchronous_or_streamed",
            "status": [],
            "unknown": "Keep the original X-Client-Request-ID, response and headers. An unknown or result_pending_check outcome does not authorize a second creation.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [
            "/chat/completions"
          ],
          "output": {
            "all_results": "Retain every content block, tool-call ID, thinking signature when returned, all SSE deltas and complete usage. A first text fragment is not the whole result.",
            "every_actual_output": true,
            "family": "text",
            "fields": [
              {
                "name": "choices[]",
                "type": "object"
              },
              {
                "name": "usage",
                "type": "object"
              }
            ],
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "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}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"Qwen/Qwen2.5-7B-Instruct\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain how a rainbow forms.\"}]}')\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\n# Submit once. Retain the complete result, original identifiers and every response header.\n",
            "label": "curl · create once and retain the complete result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "chat",
        "http": "POST",
        "in": 0,
        "input": [
          "text",
          "image"
        ],
        "input_conditions": {
          "image": "Image content is carried by this protocol where the exact selected model supports vision. Protocol admission does not establish image capability for every model."
        },
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 0,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Standard rate",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Standard rate",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Standard rate",
            "when": "When maximum reasoning effort uses the default adjustment"
          },
          {
            "label": "Explicit cache pricing",
            "value": "Not enabled",
            "when": "When explicit cache is requested"
          },
          {
            "label": "Tarifs nuls pour le texte uniquement",
            "value": "Le cache, les outils et les médias sont soumis à leurs conditions tarifaires respectives, indiquées séparément.",
            "when": "Pour une entrée et une sortie exclusivement textuelles"
          }
        ],
        "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",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "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": "Qwen/Qwen2.5-7B-Instruct",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "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": "Qwen/Qwen2.5-7B-Instruct",
        "request_model_id": "Qwen/Qwen2.5-7B-Instruct",
        "route_label": "Ultra"
      }
    ],
    "name": "Qwen/Qwen2.5-7B-Instruct",
    "price": {
      "in": 0,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0,
      "sort_out": 0,
      "varies": false
    },
    "short": "Qwen/Qwen2.5-7B-Instruct accepte des consignes textuelles et un historique de conversation via Ailoot. Utilisez un passage source clair et un brief de sortie pour les tâches de rédaction, d’explication ou de comparaison.",
    "title": "Qwen/Qwen2.5-7B-Instruct"
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Édition Qwen 7B adaptée aux instructions pour texte multilingue, extraction structurée et réponses de chat.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "89b0d28d06fb3ec2d432b2199a62a32a9e7ab44aafa1f5db1d1669ee764f0cc0",
    "renderer_sha256": "9d578ff8df69ef70403308c9943a1179a11b94114c10b333bf1c012005d4a7f4"
  },
  "sourceRevision": "d41cafbc7a5581335227f4bffaa81582790b31e7e42721322bc1e3435d29ad54"
}
