{
  "aboutHtml": "<p>Drex 1.5 est le modèle de décision textuelle de Nace.AI. Il évalue les faits fournis au regard de questions fermées et renvoie des réponses numériques typées plutôt qu’une réponse rédigée ouverte. Une requête combine un état unique avec des questions nommées, et le résultat identifie chaque réponse par le nom de la question correspondante. Un flux de travail dispose ainsi d’une catégorie, d’une probabilité ou d’une position concrète sur une grille d’évaluation à exploiter, l’action à mener sur ce résultat restant du ressort de l’application.</p><h4>Préparer l’état</h4><p>L’état est l’information sur laquelle portent toutes les questions. Drex accepte une valeur JSON de type chaîne, objet, tableau, nombre, booléen ou null, le champ state étant obligatoire. Fournissez des éléments probants significatifs, même si null passe la validation de l’éditeur. Une chaîne convient à un message, un document ou une transcription ; un objet convient à des faits déjà organisés en champs. Conservez les informations qui influent sur la décision et omettez les champs sans rapport lorsque le contenu est long. Maintenez un format d’entrée stable lors de l’interprétation des seuils de probabilité, car modifier la représentation peut modifier la réponse.</p><p>Drex 1.5 lit uniquement du texte. L’interface documentée rejette les contenus image, audio, vidéo et PDF dans l’état comme dans les questions, y compris les médias encodés et les objets de contenu multimédia. Préparez une légende, le texte reconnu d’un document ou une transcription avant d’utiliser ce contenu comme élément probant. Une adresse sous forme de texte n’est pas un document ou une image récupérés : le modèle ne peut pas l’ouvrir. Pour une demande d’assistance, l’état utile est le message réel et le contexte pertinent, et non une référence à un contenu que le modèle n’a pas reçu.</p><h4>Probabilité oui/non, choix ou score</h4><p>Une question noul demande si une condition est remplie et renvoie un nombre compris entre 0 et 1 représentant la probabilité estimée de oui. Définissez la question au moyen d’instructions non vides ou d’au moins un critère vrai/faux non vide. Par exemple, demandez si un message signale une fonctionnalité défaillante et précisez si la lenteur compte comme une défaillance. Drex n’impose aucun seuil oui/non intégré ; le flux de travail consommateur choisit comment interpréter la probabilité.</p><p>Une question de choix sélectionne une étiquette fournie dans un ensemble non ordonné et renvoie une probabilité pour chaque étiquette. Les critères forment un objet dont les clés sont les étiquettes renvoyées, chaque description étant une chaîne ou null. Utilisez des clés courtes et stables et décrivez clairement les frontières entre catégories. Une tâche de routage illustrative peut distinguer un problème d’accès, un défaut du produit et une question générale, avec une catégorie other pour les messages qui ne correspondent à aucune d’elles. L’étiquette sélectionnée est utile pour le routage ; la distribution aide à repérer les cas où deux options restent difficiles à départager.</p><p>Une question de score utilise un tableau ordonné d’étiquettes de niveaux. Les indices commencent à 0, et le score renvoyé est la somme des indices de niveau multipliés par leur probabilité. Il peut donc se situer entre deux niveaux nommés. Pour une échelle de gravité, définissez ce qui distingue un problème cosmétique, un problème disposant d’une solution de contournement et une tâche totalement bloquée. Le résultat comprend la légende des niveaux et les probabilités ainsi que le score attendu. Conservez le score fractionnaire pour les moyennes ou les tendances ; sélectionner le niveau le plus probable et arrondir le score attendu répondent à des questions différentes.</p><h4>Éléments partagés et lecture du résultat</h4><p>L’éditeur autorise entre une et 512 questions sur le même état. Donnez à chacune un identifiant non vide et explicite, tel que category ou severity, afin que la réponse correspondante soit compréhensible sans avoir à retrouver une question numérotée. Séparez les préoccupations indépendantes en questions distinctes plutôt que de combiner plusieurs exigences dans un critère flou. Un seul message peut étayer un choix de catégorie, un score de gravité et une vérification de condition, chacun conservant sa propre signification.</p><p>Les réponses de choix et de score comportent une confiance distincte de leurs distributions de probabilités. L’éditeur distingue explicitement la confiance de la probabilité de l’option la plus élevée ; ne calculez pas l’une à partir de l’autre. Pour une décision oui/non, conservez la probabilité brute avec l’issue retenue. Pour un choix incertain, examinez les probabilités concurrentes au lieu de considérer la seule étiquette gagnante comme une preuve de certitude. Définissez les seuils de revue en fonction des conséquences d’un faux positif ou d’un faux négatif et évaluez-les à l’aide de cas étiquetés représentatifs.</p><h4>Limites de version et de taille</h4><p>Drex 1.5 documente une capacité d’état de 131 072 tokens et une capacité par ligne de 139 264 tokens. La capacité par ligne porte sur l’état plus la question individuelle la plus longue, instructions et options comprises ; il ne s’agit pas de la somme de toutes les questions de la requête. L’état et les questions sérialisés doivent également tenir ensemble dans 1 048 576 octets UTF-8. Une requête peut respecter la limite en octets tout en dépassant une limite en tokens. L’ancienne édition 1.0 indique séparément 32 768 tokens pour l’état comme pour la ligne ; ses limites ne doivent donc pas être reportées sur la 1.5.</p><p>Nace documente drex-v1.5 comme un identifiant versionné de l’éditeur, tandis que drex-latest est un alias évolutif. Indiquez explicitement l’édition visée lorsqu’un flux de travail dépend de ses limites. Une question mal formée, un état manquant ou une entrée trop volumineuse constituent un problème de validation qui appelle une entrée corrigée, et non une catégorie modifiée ou une réponse devinée. Préparez les critères autour d’éléments observables et conservez ensemble le résultat typé, les faits d’origine et la définition de la question. La décision devient ainsi exploitable pour le routage, la priorisation ou la revue, sans confondre une probabilité avec un verdict garanti.</p>",
  "aboutText": "Drex 1.5 est le modèle de décision textuelle de Nace.AI. Il évalue les faits fournis au regard de questions fermées et renvoie des réponses numériques typées plutôt qu’une réponse rédigée ouverte. Une requête combine un état unique avec des questions nommées, et le résultat identifie chaque réponse par le nom de la question correspondante. Un flux de travail dispose ainsi d’une catégorie, d’une probabilité ou d’une position concrète sur une grille d’évaluation à exploiter, l’action à mener sur ce résultat restant du ressort de l’application.\n\n### Préparer l’état\n\nL’état est l’information sur laquelle portent toutes les questions. Drex accepte une valeur JSON de type chaîne, objet, tableau, nombre, booléen ou null, le champ state étant obligatoire. Fournissez des éléments probants significatifs, même si null passe la validation de l’éditeur. Une chaîne convient à un message, un document ou une transcription ; un objet convient à des faits déjà organisés en champs. Conservez les informations qui influent sur la décision et omettez les champs sans rapport lorsque le contenu est long. Maintenez un format d’entrée stable lors de l’interprétation des seuils de probabilité, car modifier la représentation peut modifier la réponse.\n\nDrex 1.5 lit uniquement du texte. L’interface documentée rejette les contenus image, audio, vidéo et PDF dans l’état comme dans les questions, y compris les médias encodés et les objets de contenu multimédia. Préparez une légende, le texte reconnu d’un document ou une transcription avant d’utiliser ce contenu comme élément probant. Une adresse sous forme de texte n’est pas un document ou une image récupérés : le modèle ne peut pas l’ouvrir. Pour une demande d’assistance, l’état utile est le message réel et le contexte pertinent, et non une référence à un contenu que le modèle n’a pas reçu.\n\n### Probabilité oui/non, choix ou score\n\nUne question noul demande si une condition est remplie et renvoie un nombre compris entre 0 et 1 représentant la probabilité estimée de oui. Définissez la question au moyen d’instructions non vides ou d’au moins un critère vrai/faux non vide. Par exemple, demandez si un message signale une fonctionnalité défaillante et précisez si la lenteur compte comme une défaillance. Drex n’impose aucun seuil oui/non intégré ; le flux de travail consommateur choisit comment interpréter la probabilité.\n\nUne question de choix sélectionne une étiquette fournie dans un ensemble non ordonné et renvoie une probabilité pour chaque étiquette. Les critères forment un objet dont les clés sont les étiquettes renvoyées, chaque description étant une chaîne ou null. Utilisez des clés courtes et stables et décrivez clairement les frontières entre catégories. Une tâche de routage illustrative peut distinguer un problème d’accès, un défaut du produit et une question générale, avec une catégorie other pour les messages qui ne correspondent à aucune d’elles. L’étiquette sélectionnée est utile pour le routage ; la distribution aide à repérer les cas où deux options restent difficiles à départager.\n\nUne question de score utilise un tableau ordonné d’étiquettes de niveaux. Les indices commencent à 0, et le score renvoyé est la somme des indices de niveau multipliés par leur probabilité. Il peut donc se situer entre deux niveaux nommés. Pour une échelle de gravité, définissez ce qui distingue un problème cosmétique, un problème disposant d’une solution de contournement et une tâche totalement bloquée. Le résultat comprend la légende des niveaux et les probabilités ainsi que le score attendu. Conservez le score fractionnaire pour les moyennes ou les tendances ; sélectionner le niveau le plus probable et arrondir le score attendu répondent à des questions différentes.\n\n### Éléments partagés et lecture du résultat\n\nL’éditeur autorise entre une et 512 questions sur le même état. Donnez à chacune un identifiant non vide et explicite, tel que category ou severity, afin que la réponse correspondante soit compréhensible sans avoir à retrouver une question numérotée. Séparez les préoccupations indépendantes en questions distinctes plutôt que de combiner plusieurs exigences dans un critère flou. Un seul message peut étayer un choix de catégorie, un score de gravité et une vérification de condition, chacun conservant sa propre signification.\n\nLes réponses de choix et de score comportent une confiance distincte de leurs distributions de probabilités. L’éditeur distingue explicitement la confiance de la probabilité de l’option la plus élevée ; ne calculez pas l’une à partir de l’autre. Pour une décision oui/non, conservez la probabilité brute avec l’issue retenue. Pour un choix incertain, examinez les probabilités concurrentes au lieu de considérer la seule étiquette gagnante comme une preuve de certitude. Définissez les seuils de revue en fonction des conséquences d’un faux positif ou d’un faux négatif et évaluez-les à l’aide de cas étiquetés représentatifs.\n\n### Limites de version et de taille\n\nDrex 1.5 documente une capacité d’état de 131 072 tokens et une capacité par ligne de 139 264 tokens. La capacité par ligne porte sur l’état plus la question individuelle la plus longue, instructions et options comprises ; il ne s’agit pas de la somme de toutes les questions de la requête. L’état et les questions sérialisés doivent également tenir ensemble dans 1 048 576 octets UTF-8. Une requête peut respecter la limite en octets tout en dépassant une limite en tokens. L’ancienne édition 1.0 indique séparément 32 768 tokens pour l’état comme pour la ligne ; ses limites ne doivent donc pas être reportées sur la 1.5.\n\nNace documente drex-v1.5 comme un identifiant versionné de l’éditeur, tandis que drex-latest est un alias évolutif. Indiquez explicitement l’édition visée lorsqu’un flux de travail dépend de ses limites. Une question mal formée, un état manquant ou une entrée trop volumineuse constituent un problème de validation qui appelle une entrée corrigée, et non une catégorie modifiée ou une réponse devinée. Préparez les critères autour d’éléments observables et conservez ensemble le résultat typé, les faits d’origine et la définition de la question. La décision devient ainsi exploitable pour le routage, la priorisation ou la revue, sans confondre une probabilité avec un verdict garanti.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "aa3465518f1cecca9e68e8d903df586436456d9dd6a1ec1cb4e4b5ceb549f9ff",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fr",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Nace.AI: Drex v1.5</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fermer\">×</button></div><div class=\"idline\"><span>Nace.AI /</span><code>nace-ai/drex-v1.5</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|systemone|/v1/systemone|nace-ai%2Fdrex-v1.5\">System One</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\">Drex 1.5 évalue un texte ou un JSON fourni au regard de questions typées et renvoie des probabilités, une étiquette choisie ou un score fractionnaire sur une grille d’évaluation. Nace.AI documente des décisions portant uniquement sur du texte pour la classification, le routage et la priorisation, avec des limites d’état et de requête propres à chaque version.</p><dl class=\"card-io\" data-card-io><div><dt>Entrées acceptées</dt><dd>Texte</dd></div><div><dt>Résultats</dt><dd>decisions</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>Drex 1.5 est le modèle de décision textuelle de Nace.AI. Il évalue les faits fournis au regard de questions fermées et renvoie des réponses numériques typées plutôt qu’une réponse rédigée ouverte. Une requête combine un état unique avec des questions nommées, et le résultat identifie chaque réponse par le nom de la question correspondante. Un flux de travail dispose ainsi d’une catégorie, d’une probabilité ou d’une position concrète sur une grille d’évaluation à exploiter, l’action à mener sur ce résultat restant du ressort de l’application.</p><h4>Préparer l’état</h4><p>L’état est l’information sur laquelle portent toutes les questions. Drex accepte une valeur JSON de type chaîne, objet, tableau, nombre, booléen ou null, le champ state étant obligatoire. Fournissez des éléments probants significatifs, même si null passe la validation de l’éditeur. Une chaîne convient à un message, un document ou une transcription ; un objet convient à des faits déjà organisés en champs. Conservez les informations qui influent sur la décision et omettez les champs sans rapport lorsque le contenu est long. Maintenez un format d’entrée stable lors de l’interprétation des seuils de probabilité, car modifier la représentation peut modifier la réponse.</p><p>Drex 1.5 lit uniquement du texte. L’interface documentée rejette les contenus image, audio, vidéo et PDF dans l’état comme dans les questions, y compris les médias encodés et les objets de contenu multimédia. Préparez une légende, le texte reconnu d’un document ou une transcription avant d’utiliser ce contenu comme élément probant. Une adresse sous forme de texte n’est pas un document ou une image récupérés : le modèle ne peut pas l’ouvrir. Pour une demande d’assistance, l’état utile est le message réel et le contexte pertinent, et non une référence à un contenu que le modèle n’a pas reçu.</p><h4>Probabilité oui/non, choix ou score</h4><p>Une question noul demande si une condition est remplie et renvoie un nombre compris entre 0 et 1 représentant la probabilité estimée de oui. Définissez la question au moyen d’instructions non vides ou d’au moins un critère vrai/faux non vide. Par exemple, demandez si un message signale une fonctionnalité défaillante et précisez si la lenteur compte comme une défaillance. Drex n’impose aucun seuil oui/non intégré ; le flux de travail consommateur choisit comment interpréter la probabilité.</p><p>Une question de choix sélectionne une étiquette fournie dans un ensemble non ordonné et renvoie une probabilité pour chaque étiquette. Les critères forment un objet dont les clés sont les étiquettes renvoyées, chaque description étant une chaîne ou null. Utilisez des clés courtes et stables et décrivez clairement les frontières entre catégories. Une tâche de routage illustrative peut distinguer un problème d’accès, un défaut du produit et une question générale, avec une catégorie other pour les messages qui ne correspondent à aucune d’elles. L’étiquette sélectionnée est utile pour le routage ; la distribution aide à repérer les cas où deux options restent difficiles à départager.</p><p>Une question de score utilise un tableau ordonné d’étiquettes de niveaux. Les indices commencent à 0, et le score renvoyé est la somme des indices de niveau multipliés par leur probabilité. Il peut donc se situer entre deux niveaux nommés. Pour une échelle de gravité, définissez ce qui distingue un problème cosmétique, un problème disposant d’une solution de contournement et une tâche totalement bloquée. Le résultat comprend la légende des niveaux et les probabilités ainsi que le score attendu. Conservez le score fractionnaire pour les moyennes ou les tendances ; sélectionner le niveau le plus probable et arrondir le score attendu répondent à des questions différentes.</p><h4>Éléments partagés et lecture du résultat</h4><p>L’éditeur autorise entre une et 512 questions sur le même état. Donnez à chacune un identifiant non vide et explicite, tel que category ou severity, afin que la réponse correspondante soit compréhensible sans avoir à retrouver une question numérotée. Séparez les préoccupations indépendantes en questions distinctes plutôt que de combiner plusieurs exigences dans un critère flou. Un seul message peut étayer un choix de catégorie, un score de gravité et une vérification de condition, chacun conservant sa propre signification.</p><p>Les réponses de choix et de score comportent une confiance distincte de leurs distributions de probabilités. L’éditeur distingue explicitement la confiance de la probabilité de l’option la plus élevée ; ne calculez pas l’une à partir de l’autre. Pour une décision oui/non, conservez la probabilité brute avec l’issue retenue. Pour un choix incertain, examinez les probabilités concurrentes au lieu de considérer la seule étiquette gagnante comme une preuve de certitude. Définissez les seuils de revue en fonction des conséquences d’un faux positif ou d’un faux négatif et évaluez-les à l’aide de cas étiquetés représentatifs.</p><h4>Limites de version et de taille</h4><p>Drex 1.5 documente une capacité d’état de 131 072 tokens et une capacité par ligne de 139 264 tokens. La capacité par ligne porte sur l’état plus la question individuelle la plus longue, instructions et options comprises ; il ne s’agit pas de la somme de toutes les questions de la requête. L’état et les questions sérialisés doivent également tenir ensemble dans 1 048 576 octets UTF-8. Une requête peut respecter la limite en octets tout en dépassant une limite en tokens. L’ancienne édition 1.0 indique séparément 32 768 tokens pour l’état comme pour la ligne ; ses limites ne doivent donc pas être reportées sur la 1.5.</p><p>Nace documente drex-v1.5 comme un identifiant versionné de l’éditeur, tandis que drex-latest est un alias évolutif. Indiquez explicitement l’édition visée lorsqu’un flux de travail dépend de ses limites. Une question mal formée, un état manquant ou une entrée trop volumineuse constituent un problème de validation qui appelle une entrée corrigée, et non une catégorie modifiée ou une réponse devinée. Préparez les critères autour d’éléments observables et conservez ensemble le résultat typé, les faits d’origine et la définition de la question. La décision devient ainsi exploitable pour le routage, la priorisation ou la revue, sans confondre une probabilité avec un verdict garanti.</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 · System One</b> <code>POST /v1/systemone</code></summary><dl class=\"method-capabilities\"><div><dt>Types d’entrée</dt><dd><code>text</code></dd></div><div><dt>Types de sortie</dt><dd><code>decisions</code></dd></div><div><dt>Format de sortie</dt><dd>json</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 data-parameter-availability=\"source_interface\"><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>nace-ai/drex-v1.5</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>schema</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></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">questions</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</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></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">session_id</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>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">state</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>schema</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></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>schema</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></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">user</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>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">questions.&lt;id&gt;.type</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>noul, choice, score</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">questions.&lt;id&gt;.instructions</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string|object|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></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">questions.&lt;id&gt;.criteria</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object|array</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: choice/score : obligatoires ; noul : facultatif. Les critères de choice forment un objet ; score est un tableau avec minItems égal à 1.</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">questions.&lt;id&gt;.criteria.true</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string|object|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>S’applique lorsque: objet de critères noul fourni</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">questions.&lt;id&gt;.criteria.false</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string|object|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>S’applique lorsque: objet de critères noul fourni</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</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>noul</b> · Obligatoire : state, questions.&lt;id&gt;.type=noul, questions.&lt;id&gt;.instructions</p><p class=\"note-s\"><b>choice</b> · Obligatoire : state, questions.&lt;id&gt;.type=choice, questions.&lt;id&gt;.instructions, criteria object</p><p class=\"note-s\"><b>score</b> · Obligatoire : state, questions.&lt;id&gt;.type=score, questions.&lt;id&gt;.instructions, criteria array with minItems1</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, state, questions</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</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>optional_controls</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>provider, session_id, trace, user</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>multimodal_input_binding</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>null</td></tr></tbody></table></div><p>Cycle de vie : <code>synchronous</code></p><p class=\"note-s\">Envoyez l’identifiant exact du modèle et conservez la réponse native complète.</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>Non précisé <span class=\"note-s\">Lorsque le mode rapide est sélectionné</span></dd><dt>Mode Flex</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode flex est sélectionné</span></dd><dt>Effort de raisonnement maximal</dt><dd>Non précisé <span class=\"note-s\">Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifs Ailoot</h4><h4>Prix par configuration</h4><p class=\"note-s\">Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuration</th><th>Barème tarifaire</th><th>Tokens de contexte, plus de</th><th>Tokens de contexte, jusqu’à la limite incluse</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 tokens</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=\"Tokens de contexte, plus de\"><span class=\"card-cell-label\">Tokens de contexte, plus de</span>—</td><td data-cell-label=\"Tokens de contexte, jusqu’à la limite incluse\"><span class=\"card-cell-label\">Tokens de contexte, jusqu’à la limite incluse</span>Sans borne supérieure</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.00008</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>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache</span> <b>—</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><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>Palier 1 de longueur de requête</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>—</td><td data-cell-label=\"Tokens de contexte, plus de\"><span class=\"card-cell-label\">Tokens de contexte, plus de</span>0</td><td data-cell-label=\"Tokens de contexte, jusqu’à la limite incluse\"><span class=\"card-cell-label\">Tokens de contexte, jusqu’à la limite incluse</span>Sans borne supérieure</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.00008</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>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache</span> <b>—</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/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 · System One</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-1981-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1981-panel-0\" aria-selected=\"true\" tabindex=\"0\">Structure officielle de requête conservée ; exemple de documentation</button><button class=\"cg-tab\" id=\"model-code-1981-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1981-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Utilisez les données réelles de votre requête et conservez 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-1981-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1981-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;nace-ai/drex-v1.5&quot;,\n  &quot;questions&quot;: {\n    &quot;is_bug&quot;: {\n      &quot;criteria&quot;: {\n        &quot;false&quot;: &quot;The customer is asking a question or requesting a feature.&quot;,\n        &quot;true&quot;: &quot;The customer describes broken or unexpected product behavior.&quot;\n      },\n      &quot;instructions&quot;: &quot;Is the customer reporting a software defect?&quot;,\n      &quot;type&quot;: &quot;noul&quot;\n    },\n    &quot;team&quot;: {\n      &quot;criteria&quot;: {\n        &quot;account&quot;: &quot;Login, permissions, or profile issues.&quot;,\n        &quot;frontend&quot;: &quot;Rendering, layout, or browser compatibility issues.&quot;,\n        &quot;payments&quot;: &quot;Checkout, billing, or payment processing issues.&quot;\n      },\n      &quot;instructions&quot;: &quot;Which team should own this ticket?&quot;,\n      &quot;type&quot;: &quot;choice&quot;\n    },\n    &quot;urgency&quot;: {\n      &quot;criteria&quot;: [\n        &quot;Can wait for the next release&quot;,\n        &quot;Should be fixed this week&quot;,\n        &quot;Blocking revenue right now&quot;\n      ],\n      &quot;instructions&quot;: &quot;How urgent is this ticket?&quot;,\n      &quot;type&quot;: &quot;score&quot;\n    }\n  },\n  &quot;state&quot;: {\n    &quot;customer_tier&quot;: &quot;enterprise&quot;,\n    &quot;ticket&quot;: &quot;My checkout page shows a blank screen after I click Pay. I have tried two browsers.&quot;\n  }\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-1981-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1981-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_REQUEST_FILE:?Set your actual JSON request file}&quot;\nexport AILOOT_REQUEST_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(Path(os.environ[&#39;AILOOT_REQUEST_FILE&#39;]).read_text(encoding=&#39;utf-8&#39;))\nif not isinstance(p,dict): raise SystemExit(&#39;Request must be a JSON object&#39;)\np[&#39;model&#39;]=&#39;nace-ai/drex-v1.5&#39;\nPath(&#39;request.json&#39;).write_text(json.dumps(p,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\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\nprint(json.dumps(json.loads(Path(&#39;result.json&#39;).read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\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 · System One</h4><p class=\"note-s\">json</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\">Chaque réponse fournie pour un identifiant de question est conservée avec son type exact, sa valeur noul/choice/score, son degré de confiance, ses probabilités et sa légende. L’intégralité du JSON d’origine est enregistrée et renvoyée uniquement après le règlement.</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 l’opération d’origine et la réponse complète ou partielle ; ne rejouez pas le POST.</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\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">answers.&lt;id&gt;.type</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">answers.&lt;id&gt;.noul</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>number</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">answers.&lt;id&gt;.choice</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">answers.&lt;id&gt;.score</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>number</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">answers.&lt;id&gt;.confidence</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>number</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">answers.&lt;id&gt;.probabilities</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\">answers.&lt;id&gt;.legend</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.input_tokens</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">usage.output_tokens</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">usage.cost</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>number</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>Champ obligatoire, représentation ou valeur non valide</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Corrigez le champ de requête indiqué.</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=nace-ai%2Fdrex-v1.5&amp;route=Ultra&amp;caller=nace-ai%2Fdrex-v1.5&amp;fmt=systemone\"><code>nace-ai/drex-v1.5</code></a></span></p><h4>Alias des chemins de méthode</h4><p class=\"note-s\">Utilisez les chemins de méthode indiqués ci-dessus.</p><h4>ID d’appel associés</h4><p class=\"note-s\"><a href=\"#m=nace-ai%2Fdrex-v1.5&amp;route=Ultra&amp;caller=nace-ai%2Fdrex-v1.5&amp;fmt=systemone\"><code>nace-ai/drex-v1.5</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "nace-ai/drex-v1.5",
        "fmt": "systemone",
        "http": "POST",
        "path": "/v1/systemone",
        "request_model_id": "nace-ai/drex-v1.5",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|systemone|/v1/systemone|nace-ai%2Fdrex-v1.5",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Every supplied question-ID answer with its exact type, noul/choice/score value, confidence, probabilities and legend is retained. Entire original JSON is stored and returned only after settlement.",
            "errors": [
              {
                "code": null,
                "condition": "Champ obligatoire, représentation ou valeur non valide",
                "http_status": 400,
                "recovery": "Corrigez le champ de requête indiqué.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "cancel": null,
              "idempotency_header": null,
              "job_retrieve": null,
              "mode": "synchronous",
              "streaming": false,
              "unknown": "Conservez l’opération d’origine et la réponse complète ou partielle ; ne rejouez pas le POST."
            },
            "material_combinations": [
              {
                "mode": "noul",
                "optional": [
                  "criteria true/false descriptions"
                ],
                "required": [
                  "state",
                  "questions.<id>.type=noul",
                  "questions.<id>.instructions"
                ]
              },
              {
                "mode": "choice",
                "required": [
                  "state",
                  "questions.<id>.type=choice",
                  "questions.<id>.instructions",
                  "criteria object"
                ]
              },
              {
                "mode": "score",
                "required": [
                  "state",
                  "questions.<id>.type=score",
                  "questions.<id>.instructions",
                  "criteria array with minItems1"
                ]
              }
            ],
            "operation_modes": [
              "noul",
              "choice",
              "score"
            ],
            "outputs": {
              "all_results": "Chaque réponse fournie pour un identifiant de question est conservée avec son type exact, sa valeur noul/choice/score, son degré de confiance, ses probabilités et sa légende. L’intégralité du JSON d’origine est enregistrée et renvoyée uniquement après le règlement.",
              "family": "decisions",
              "fields": [
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.type",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.noul",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.choice",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.score",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.confidence",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.probabilities",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "answers.<id>.legend",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "usage.input_tokens",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "usage.output_tokens",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "usage.cost",
                  "type": "number"
                }
              ],
              "format": "json",
              "schema": {
                "properties": {
                  "answers": {
                    "additionalProperties": {
                      "description": "A Decisions answer using a boolean, choice, or score evaluation.",
                      "discriminator": {
                        "mapping": {
                          "choice": "#/components/schemas/DecisionsChoiceAnswer",
                          "noul": "#/components/schemas/DecisionsNoulAnswer",
                          "score": "#/components/schemas/DecisionsScoreAnswer"
                        },
                        "propertyName": "type"
                      },
                      "oneOf": [
                        {
                          "$ref": "#/components/schemas/DecisionsNoulAnswer"
                        },
                        {
                          "$ref": "#/components/schemas/DecisionsChoiceAnswer"
                        },
                        {
                          "$ref": "#/components/schemas/DecisionsScoreAnswer"
                        }
                      ]
                    },
                    "type": "object"
                  },
                  "id": {
                    "type": "string"
                  },
                  "model": {
                    "type": "string"
                  },
                  "provider": {
                    "type": "string"
                  },
                  "usage": {
                    "properties": {
                      "cost": {
                        "format": "double",
                        "type": "number"
                      },
                      "input_tokens": {
                        "type": "integer"
                      },
                      "output_tokens": {
                        "type": "integer"
                      }
                    },
                    "required": [
                      "input_tokens",
                      "output_tokens"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "model",
                  "answers",
                  "usage"
                ],
                "type": "object"
              }
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "nace-ai/drex-v1.5"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "schema"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions",
                "required": true,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.",
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "The content to evaluate: a plain string, or a JSON object or array of related context.",
                "enum": null,
                "enum_known": false,
                "name": "state",
                "required": true,
                "type": "schema"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "schema"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "noul",
                  "choice",
                  "score"
                ],
                "enum_known": true,
                "name": "questions.<id>.type",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.instructions",
                "required": true,
                "type": "string|object|array"
              },
              {
                "availability": "source_interface",
                "conditions": "choice/score : obligatoires ; noul : facultatif. Les critères de choice forment un objet ; score est un tableau avec minItems égal à 1.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria.true",
                "required": true,
                "type": "string|object|array",
                "when": "objet de critères noul fourni"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria.false",
                "required": true,
                "type": "string|object|array",
                "when": "objet de critères noul fourni"
              }
            ],
            "unsupported": [
              "stream=true"
            ]
          },
          "hints": [
            "Envoyez l’identifiant exact du modèle et conservez la réponse native complète."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "multimodal_input_binding": null,
            "optional_controls": [
              "provider",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "state",
              "questions"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "idempotency_header": null,
            "job_retrieve": null,
            "mode": "synchronous",
            "streaming": false,
            "unknown": "Preserve original operation and full/partial reply; do not replay POST."
          },
          "manufacturer_capability": {
            "context_length": 131072,
            "manufacturer_input": [
              "text"
            ],
            "manufacturer_output": [
              "decisions"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/systemone"
          },
          "method_aliases": [],
          "operation_modes": [
            "noul",
            "choice",
            "score"
          ],
          "output": {
            "all_results": "Every supplied question-ID answer with its exact type, noul/choice/score value, confidence, probabilities and legend is retained. Entire original JSON is stored and returned only after settlement.",
            "family": "decisions",
            "fields": [
              {
                "description": null,
                "name": "model",
                "type": "string"
              },
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider",
                "type": "string"
              },
              {
                "description": null,
                "name": "answers.<id>.type",
                "type": "string"
              },
              {
                "description": null,
                "name": "answers.<id>.noul",
                "type": "number"
              },
              {
                "description": null,
                "name": "answers.<id>.choice",
                "type": "string"
              },
              {
                "description": null,
                "name": "answers.<id>.score",
                "type": "number"
              },
              {
                "description": null,
                "name": "answers.<id>.confidence",
                "type": "number"
              },
              {
                "description": null,
                "name": "answers.<id>.probabilities",
                "type": "object"
              },
              {
                "description": null,
                "name": "answers.<id>.legend",
                "type": "object"
              },
              {
                "description": null,
                "name": "usage.input_tokens",
                "type": "integer"
              },
              {
                "description": null,
                "name": "usage.output_tokens",
                "type": "integer"
              },
              {
                "description": null,
                "name": "usage.cost",
                "type": "number"
              }
            ],
            "format": "json",
            "schema": {
              "properties": {
                "answers": {
                  "additionalProperties": {
                    "description": "A Decisions answer using a boolean, choice, or score evaluation.",
                    "discriminator": {
                      "mapping": {
                        "choice": "#/components/schemas/DecisionsChoiceAnswer",
                        "noul": "#/components/schemas/DecisionsNoulAnswer",
                        "score": "#/components/schemas/DecisionsScoreAnswer"
                      },
                      "propertyName": "type"
                    },
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/DecisionsNoulAnswer"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsChoiceAnswer"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsScoreAnswer"
                      }
                    ]
                  },
                  "type": "object"
                },
                "id": {
                  "type": "string"
                },
                "model": {
                  "type": "string"
                },
                "provider": {
                  "type": "string"
                },
                "usage": {
                  "properties": {
                    "cost": {
                      "format": "double",
                      "type": "number"
                    },
                    "input_tokens": {
                      "type": "integer"
                    },
                    "output_tokens": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "input_tokens",
                    "output_tokens"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "model",
                "answers",
                "usage"
              ],
              "type": "object"
            }
          },
          "schema": {
            "request": {
              "properties": {
                "model": {
                  "enum": [
                    "nace-ai/drex-v1.5"
                  ],
                  "type": "string"
                },
                "provider": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ProviderPreferences"
                    },
                    {
                      "description": "Provider routing preferences for the request."
                    }
                  ]
                },
                "questions": {
                  "additionalProperties": {
                    "description": "A Decisions question using a boolean, choice, or ordered score evaluation.",
                    "discriminator": {
                      "mapping": {
                        "choice": "#/components/schemas/DecisionsChoiceQuestion",
                        "noul": "#/components/schemas/DecisionsNoulQuestion",
                        "score": "#/components/schemas/DecisionsScoreQuestion"
                      },
                      "propertyName": "type"
                    },
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/DecisionsNoulQuestion"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsChoiceQuestion"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsScoreQuestion"
                      }
                    ]
                  },
                  "type": "object"
                },
                "session_id": {
                  "description": "A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.",
                  "example": "session-1234",
                  "maxLength": 256,
                  "type": "string"
                },
                "state": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "additionalProperties": {},
                      "type": "object"
                    },
                    {
                      "items": {},
                      "type": "array"
                    }
                  ],
                  "description": "The content to evaluate: a plain string, or a JSON object or array of related context."
                },
                "trace": {
                  "$ref": "#/components/schemas/TraceConfig"
                },
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "state",
                "questions"
              ],
              "type": "object"
            },
            "response": {
              "properties": {
                "answers": {
                  "additionalProperties": {
                    "description": "A Decisions answer using a boolean, choice, or score evaluation.",
                    "discriminator": {
                      "mapping": {
                        "choice": "#/components/schemas/DecisionsChoiceAnswer",
                        "noul": "#/components/schemas/DecisionsNoulAnswer",
                        "score": "#/components/schemas/DecisionsScoreAnswer"
                      },
                      "propertyName": "type"
                    },
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/DecisionsNoulAnswer"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsChoiceAnswer"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsScoreAnswer"
                      }
                    ]
                  },
                  "type": "object"
                },
                "id": {
                  "type": "string"
                },
                "model": {
                  "type": "string"
                },
                "provider": {
                  "type": "string"
                },
                "usage": {
                  "properties": {
                    "cost": {
                      "format": "double",
                      "type": "number"
                    },
                    "input_tokens": {
                      "type": "integer"
                    },
                    "output_tokens": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "input_tokens",
                    "output_tokens"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "model",
                "answers",
                "usage"
              ],
              "type": "object"
            }
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tarifs de base des tokens",
            "units": [
              {
                "amount": "0.00008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000008",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Palier 1 de longueur de requête",
            "units": [
              {
                "amount": "0.00008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000008",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"nace-ai/drex-v1.5\",\n  \"questions\": {\n    \"is_bug\": {\n      \"criteria\": {\n        \"false\": \"The customer is asking a question or requesting a feature.\",\n        \"true\": \"The customer describes broken or unexpected product behavior.\"\n      },\n      \"instructions\": \"Is the customer reporting a software defect?\",\n      \"type\": \"noul\"\n    },\n    \"team\": {\n      \"criteria\": {\n        \"account\": \"Login, permissions, or profile issues.\",\n        \"frontend\": \"Rendering, layout, or browser compatibility issues.\",\n        \"payments\": \"Checkout, billing, or payment processing issues.\"\n      },\n      \"instructions\": \"Which team should own this ticket?\",\n      \"type\": \"choice\"\n    },\n    \"urgency\": {\n      \"criteria\": [\n        \"Can wait for the next release\",\n        \"Should be fixed this week\",\n        \"Blocking revenue right now\"\n      ],\n      \"instructions\": \"How urgent is this ticket?\",\n      \"type\": \"score\"\n    }\n  },\n  \"state\": {\n    \"customer_tier\": \"enterprise\",\n    \"ticket\": \"My checkout page shows a blank screen after I click Pay. I have tried two browsers.\"\n  }\n}",
            "label": "Retained official request structure; documentary example",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_REQUEST_FILE:?Set your actual JSON request file}\"\nexport AILOOT_REQUEST_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads(Path(os.environ['AILOOT_REQUEST_FILE']).read_text(encoding='utf-8'))\nif not isinstance(p,dict): raise SystemExit('Request must be a JSON object')\np['model']='nace-ai/drex-v1.5'\nPath('request.json').write_text(json.dumps(p,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\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\nprint(json.dumps(json.loads(Path('result.json').read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Use your actual request material and retain the complete result",
            "language": "bash",
            "material_policy": "Use real owner-supplied state/questions or query/documents. No invented file ID, document, image URL, job ID or returned result."
          }
        ],
        "family": "systemone",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "systemone",
        "http": "POST",
        "in": 0.08,
        "input": [
          "text"
        ],
        "label": "System One",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "systemone",
        "out": 0,
        "output": [
          "decisions"
        ],
        "path": "/v1/systemone",
        "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.00008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000008",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.00008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000008",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "nace-ai/drex-v1.5",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": null,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.08,
            "input_multiplier": null,
            "interval_boundary": "min_exclusive_max_inclusive",
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "null_rate_policy": "unknown or inherited; never zero",
            "out": 0,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.00008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000008",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "nace-ai/drex-v1.5",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "3e954d0367d5a72eadf046b7409d51eb1401a19fe770ed8876f4751caf5242a6",
    "input_html_sha256": "799bb071b369a39d84fab67bf3656383ea265de091ae5c2c37e8738886d63114",
    "private_audit_sha256": "e1f3ce7f8ab30477cad8f0f3ff62c24af9ff147e89622b6162ab6e5fe449b947",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fr/nace-ai-drex-v1-5/",
    "description": "Drex 1.5 évalue un texte ou un JSON fourni au regard de questions typées et renvoie des probabilités, une étiquette choisie ou un score fractionnaire sur une grille d’évaluation. Nace.AI documente des décisions portant uniquement sur du texte pour la classification, le routage et la priorisation, avec des limites d’état et de requête propres à chaque version.",
    "locale": "fr",
    "md_url": "https://ailoot.ai/models/fr/nace-ai-drex-v1-5/index.md",
    "title": "Nace.AI: Drex v1.5 — Ailoot",
    "url": "https://ailoot.ai/models/fr/nace-ai-drex-v1-5/"
  },
  "rawModel": {
    "about": "Drex 1.5 est le modèle de décision textuelle de Nace.AI. Il évalue les faits fournis au regard de questions fermées et renvoie des réponses numériques typées plutôt qu’une réponse rédigée ouverte. Une requête combine un état unique avec des questions nommées, et le résultat identifie chaque réponse par le nom de la question correspondante. Un flux de travail dispose ainsi d’une catégorie, d’une probabilité ou d’une position concrète sur une grille d’évaluation à exploiter, l’action à mener sur ce résultat restant du ressort de l’application.\n\n### Préparer l’état\n\nL’état est l’information sur laquelle portent toutes les questions. Drex accepte une valeur JSON de type chaîne, objet, tableau, nombre, booléen ou null, le champ state étant obligatoire. Fournissez des éléments probants significatifs, même si null passe la validation de l’éditeur. Une chaîne convient à un message, un document ou une transcription ; un objet convient à des faits déjà organisés en champs. Conservez les informations qui influent sur la décision et omettez les champs sans rapport lorsque le contenu est long. Maintenez un format d’entrée stable lors de l’interprétation des seuils de probabilité, car modifier la représentation peut modifier la réponse.\n\nDrex 1.5 lit uniquement du texte. L’interface documentée rejette les contenus image, audio, vidéo et PDF dans l’état comme dans les questions, y compris les médias encodés et les objets de contenu multimédia. Préparez une légende, le texte reconnu d’un document ou une transcription avant d’utiliser ce contenu comme élément probant. Une adresse sous forme de texte n’est pas un document ou une image récupérés : le modèle ne peut pas l’ouvrir. Pour une demande d’assistance, l’état utile est le message réel et le contexte pertinent, et non une référence à un contenu que le modèle n’a pas reçu.\n\n### Probabilité oui/non, choix ou score\n\nUne question noul demande si une condition est remplie et renvoie un nombre compris entre 0 et 1 représentant la probabilité estimée de oui. Définissez la question au moyen d’instructions non vides ou d’au moins un critère vrai/faux non vide. Par exemple, demandez si un message signale une fonctionnalité défaillante et précisez si la lenteur compte comme une défaillance. Drex n’impose aucun seuil oui/non intégré ; le flux de travail consommateur choisit comment interpréter la probabilité.\n\nUne question de choix sélectionne une étiquette fournie dans un ensemble non ordonné et renvoie une probabilité pour chaque étiquette. Les critères forment un objet dont les clés sont les étiquettes renvoyées, chaque description étant une chaîne ou null. Utilisez des clés courtes et stables et décrivez clairement les frontières entre catégories. Une tâche de routage illustrative peut distinguer un problème d’accès, un défaut du produit et une question générale, avec une catégorie other pour les messages qui ne correspondent à aucune d’elles. L’étiquette sélectionnée est utile pour le routage ; la distribution aide à repérer les cas où deux options restent difficiles à départager.\n\nUne question de score utilise un tableau ordonné d’étiquettes de niveaux. Les indices commencent à 0, et le score renvoyé est la somme des indices de niveau multipliés par leur probabilité. Il peut donc se situer entre deux niveaux nommés. Pour une échelle de gravité, définissez ce qui distingue un problème cosmétique, un problème disposant d’une solution de contournement et une tâche totalement bloquée. Le résultat comprend la légende des niveaux et les probabilités ainsi que le score attendu. Conservez le score fractionnaire pour les moyennes ou les tendances ; sélectionner le niveau le plus probable et arrondir le score attendu répondent à des questions différentes.\n\n### Éléments partagés et lecture du résultat\n\nL’éditeur autorise entre une et 512 questions sur le même état. Donnez à chacune un identifiant non vide et explicite, tel que category ou severity, afin que la réponse correspondante soit compréhensible sans avoir à retrouver une question numérotée. Séparez les préoccupations indépendantes en questions distinctes plutôt que de combiner plusieurs exigences dans un critère flou. Un seul message peut étayer un choix de catégorie, un score de gravité et une vérification de condition, chacun conservant sa propre signification.\n\nLes réponses de choix et de score comportent une confiance distincte de leurs distributions de probabilités. L’éditeur distingue explicitement la confiance de la probabilité de l’option la plus élevée ; ne calculez pas l’une à partir de l’autre. Pour une décision oui/non, conservez la probabilité brute avec l’issue retenue. Pour un choix incertain, examinez les probabilités concurrentes au lieu de considérer la seule étiquette gagnante comme une preuve de certitude. Définissez les seuils de revue en fonction des conséquences d’un faux positif ou d’un faux négatif et évaluez-les à l’aide de cas étiquetés représentatifs.\n\n### Limites de version et de taille\n\nDrex 1.5 documente une capacité d’état de 131 072 tokens et une capacité par ligne de 139 264 tokens. La capacité par ligne porte sur l’état plus la question individuelle la plus longue, instructions et options comprises ; il ne s’agit pas de la somme de toutes les questions de la requête. L’état et les questions sérialisés doivent également tenir ensemble dans 1 048 576 octets UTF-8. Une requête peut respecter la limite en octets tout en dépassant une limite en tokens. L’ancienne édition 1.0 indique séparément 32 768 tokens pour l’état comme pour la ligne ; ses limites ne doivent donc pas être reportées sur la 1.5.\n\nNace documente drex-v1.5 comme un identifiant versionné de l’éditeur, tandis que drex-latest est un alias évolutif. Indiquez explicitement l’édition visée lorsqu’un flux de travail dépend de ses limites. Une question mal formée, un état manquant ou une entrée trop volumineuse constituent un problème de validation qui appelle une entrée corrigée, et non une catégorie modifiée ou une réponse devinée. Préparez les critères autour d’éléments observables et conservez ensemble le résultat typé, les faits d’origine et la définition de la question. La décision devient ainsi exploitable pour le routage, la priorisation ou la revue, sans confondre une probabilité avec un verdict garanti.",
    "alias_of": null,
    "aliases": [],
    "author": "Nace.AI",
    "available": null,
    "canonical_model": "nace-ai/drex-v1.5",
    "capabilities": {
      "context_length": 131072,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "decisions"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000008",
            "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,
    "entity_type": "model",
    "formats": [
      "systemone"
    ],
    "id": "nace-ai/drex-v1.5",
    "input": [
      "text"
    ],
    "kind": "decision",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Every supplied question-ID answer with its exact type, noul/choice/score value, confidence, probabilities and legend is retained. Entire original JSON is stored and returned only after settlement.",
            "errors": [
              {
                "code": null,
                "condition": "Champ obligatoire, représentation ou valeur non valide",
                "http_status": 400,
                "recovery": "Corrigez le champ de requête indiqué.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "cancel": null,
              "idempotency_header": null,
              "job_retrieve": null,
              "mode": "synchronous",
              "streaming": false,
              "unknown": "Conservez l’opération d’origine et la réponse complète ou partielle ; ne rejouez pas le POST."
            },
            "material_combinations": [
              {
                "mode": "noul",
                "optional": [
                  "criteria true/false descriptions"
                ],
                "required": [
                  "state",
                  "questions.<id>.type=noul",
                  "questions.<id>.instructions"
                ]
              },
              {
                "mode": "choice",
                "required": [
                  "state",
                  "questions.<id>.type=choice",
                  "questions.<id>.instructions",
                  "criteria object"
                ]
              },
              {
                "mode": "score",
                "required": [
                  "state",
                  "questions.<id>.type=score",
                  "questions.<id>.instructions",
                  "criteria array with minItems1"
                ]
              }
            ],
            "operation_modes": [
              "noul",
              "choice",
              "score"
            ],
            "outputs": {
              "all_results": "Chaque réponse fournie pour un identifiant de question est conservée avec son type exact, sa valeur noul/choice/score, son degré de confiance, ses probabilités et sa légende. L’intégralité du JSON d’origine est enregistrée et renvoyée uniquement après le règlement.",
              "family": "decisions",
              "fields": [
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.type",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.noul",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.choice",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.score",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.confidence",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.probabilities",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "answers.<id>.legend",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "usage.input_tokens",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "usage.output_tokens",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "usage.cost",
                  "type": "number"
                }
              ],
              "format": "json",
              "schema": {
                "properties": {
                  "answers": {
                    "additionalProperties": {
                      "description": "A Decisions answer using a boolean, choice, or score evaluation.",
                      "discriminator": {
                        "mapping": {
                          "choice": "#/components/schemas/DecisionsChoiceAnswer",
                          "noul": "#/components/schemas/DecisionsNoulAnswer",
                          "score": "#/components/schemas/DecisionsScoreAnswer"
                        },
                        "propertyName": "type"
                      },
                      "oneOf": [
                        {
                          "$ref": "#/components/schemas/DecisionsNoulAnswer"
                        },
                        {
                          "$ref": "#/components/schemas/DecisionsChoiceAnswer"
                        },
                        {
                          "$ref": "#/components/schemas/DecisionsScoreAnswer"
                        }
                      ]
                    },
                    "type": "object"
                  },
                  "id": {
                    "type": "string"
                  },
                  "model": {
                    "type": "string"
                  },
                  "provider": {
                    "type": "string"
                  },
                  "usage": {
                    "properties": {
                      "cost": {
                        "format": "double",
                        "type": "number"
                      },
                      "input_tokens": {
                        "type": "integer"
                      },
                      "output_tokens": {
                        "type": "integer"
                      }
                    },
                    "required": [
                      "input_tokens",
                      "output_tokens"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "model",
                  "answers",
                  "usage"
                ],
                "type": "object"
              }
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "nace-ai/drex-v1.5"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "schema"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions",
                "required": true,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.",
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "The content to evaluate: a plain string, or a JSON object or array of related context.",
                "enum": null,
                "enum_known": false,
                "name": "state",
                "required": true,
                "type": "schema"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "schema"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "noul",
                  "choice",
                  "score"
                ],
                "enum_known": true,
                "name": "questions.<id>.type",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.instructions",
                "required": true,
                "type": "string|object|array"
              },
              {
                "availability": "source_interface",
                "conditions": "choice/score : obligatoires ; noul : facultatif. Les critères de choice forment un objet ; score est un tableau avec minItems égal à 1.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria.true",
                "required": true,
                "type": "string|object|array",
                "when": "objet de critères noul fourni"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria.false",
                "required": true,
                "type": "string|object|array",
                "when": "objet de critères noul fourni"
              }
            ],
            "unsupported": [
              "stream=true"
            ]
          },
          "hints": [
            "Envoyez l’identifiant exact du modèle et conservez la réponse native complète."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "multimodal_input_binding": null,
            "optional_controls": [
              "provider",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "state",
              "questions"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "idempotency_header": null,
            "job_retrieve": null,
            "mode": "synchronous",
            "streaming": false,
            "unknown": "Preserve original operation and full/partial reply; do not replay POST."
          },
          "manufacturer_capability": {
            "context_length": 131072,
            "manufacturer_input": [
              "text"
            ],
            "manufacturer_output": [
              "decisions"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/systemone"
          },
          "method_aliases": [],
          "operation_modes": [
            "noul",
            "choice",
            "score"
          ],
          "output": {
            "all_results": "Every supplied question-ID answer with its exact type, noul/choice/score value, confidence, probabilities and legend is retained. Entire original JSON is stored and returned only after settlement.",
            "family": "decisions",
            "fields": [
              {
                "description": null,
                "name": "model",
                "type": "string"
              },
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider",
                "type": "string"
              },
              {
                "description": null,
                "name": "answers.<id>.type",
                "type": "string"
              },
              {
                "description": null,
                "name": "answers.<id>.noul",
                "type": "number"
              },
              {
                "description": null,
                "name": "answers.<id>.choice",
                "type": "string"
              },
              {
                "description": null,
                "name": "answers.<id>.score",
                "type": "number"
              },
              {
                "description": null,
                "name": "answers.<id>.confidence",
                "type": "number"
              },
              {
                "description": null,
                "name": "answers.<id>.probabilities",
                "type": "object"
              },
              {
                "description": null,
                "name": "answers.<id>.legend",
                "type": "object"
              },
              {
                "description": null,
                "name": "usage.input_tokens",
                "type": "integer"
              },
              {
                "description": null,
                "name": "usage.output_tokens",
                "type": "integer"
              },
              {
                "description": null,
                "name": "usage.cost",
                "type": "number"
              }
            ],
            "format": "json",
            "schema": {
              "properties": {
                "answers": {
                  "additionalProperties": {
                    "description": "A Decisions answer using a boolean, choice, or score evaluation.",
                    "discriminator": {
                      "mapping": {
                        "choice": "#/components/schemas/DecisionsChoiceAnswer",
                        "noul": "#/components/schemas/DecisionsNoulAnswer",
                        "score": "#/components/schemas/DecisionsScoreAnswer"
                      },
                      "propertyName": "type"
                    },
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/DecisionsNoulAnswer"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsChoiceAnswer"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsScoreAnswer"
                      }
                    ]
                  },
                  "type": "object"
                },
                "id": {
                  "type": "string"
                },
                "model": {
                  "type": "string"
                },
                "provider": {
                  "type": "string"
                },
                "usage": {
                  "properties": {
                    "cost": {
                      "format": "double",
                      "type": "number"
                    },
                    "input_tokens": {
                      "type": "integer"
                    },
                    "output_tokens": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "input_tokens",
                    "output_tokens"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "model",
                "answers",
                "usage"
              ],
              "type": "object"
            }
          },
          "schema": {
            "request": {
              "properties": {
                "model": {
                  "enum": [
                    "nace-ai/drex-v1.5"
                  ],
                  "type": "string"
                },
                "provider": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ProviderPreferences"
                    },
                    {
                      "description": "Provider routing preferences for the request."
                    }
                  ]
                },
                "questions": {
                  "additionalProperties": {
                    "description": "A Decisions question using a boolean, choice, or ordered score evaluation.",
                    "discriminator": {
                      "mapping": {
                        "choice": "#/components/schemas/DecisionsChoiceQuestion",
                        "noul": "#/components/schemas/DecisionsNoulQuestion",
                        "score": "#/components/schemas/DecisionsScoreQuestion"
                      },
                      "propertyName": "type"
                    },
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/DecisionsNoulQuestion"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsChoiceQuestion"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsScoreQuestion"
                      }
                    ]
                  },
                  "type": "object"
                },
                "session_id": {
                  "description": "A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.",
                  "example": "session-1234",
                  "maxLength": 256,
                  "type": "string"
                },
                "state": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "additionalProperties": {},
                      "type": "object"
                    },
                    {
                      "items": {},
                      "type": "array"
                    }
                  ],
                  "description": "The content to evaluate: a plain string, or a JSON object or array of related context."
                },
                "trace": {
                  "$ref": "#/components/schemas/TraceConfig"
                },
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "state",
                "questions"
              ],
              "type": "object"
            },
            "response": {
              "properties": {
                "answers": {
                  "additionalProperties": {
                    "description": "A Decisions answer using a boolean, choice, or score evaluation.",
                    "discriminator": {
                      "mapping": {
                        "choice": "#/components/schemas/DecisionsChoiceAnswer",
                        "noul": "#/components/schemas/DecisionsNoulAnswer",
                        "score": "#/components/schemas/DecisionsScoreAnswer"
                      },
                      "propertyName": "type"
                    },
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/DecisionsNoulAnswer"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsChoiceAnswer"
                      },
                      {
                        "$ref": "#/components/schemas/DecisionsScoreAnswer"
                      }
                    ]
                  },
                  "type": "object"
                },
                "id": {
                  "type": "string"
                },
                "model": {
                  "type": "string"
                },
                "provider": {
                  "type": "string"
                },
                "usage": {
                  "properties": {
                    "cost": {
                      "format": "double",
                      "type": "number"
                    },
                    "input_tokens": {
                      "type": "integer"
                    },
                    "output_tokens": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "input_tokens",
                    "output_tokens"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "model",
                "answers",
                "usage"
              ],
              "type": "object"
            }
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tarifs de base des tokens",
            "units": [
              {
                "amount": "0.00008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000008",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Palier 1 de longueur de requête",
            "units": [
              {
                "amount": "0.00008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000008",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"nace-ai/drex-v1.5\",\n  \"questions\": {\n    \"is_bug\": {\n      \"criteria\": {\n        \"false\": \"The customer is asking a question or requesting a feature.\",\n        \"true\": \"The customer describes broken or unexpected product behavior.\"\n      },\n      \"instructions\": \"Is the customer reporting a software defect?\",\n      \"type\": \"noul\"\n    },\n    \"team\": {\n      \"criteria\": {\n        \"account\": \"Login, permissions, or profile issues.\",\n        \"frontend\": \"Rendering, layout, or browser compatibility issues.\",\n        \"payments\": \"Checkout, billing, or payment processing issues.\"\n      },\n      \"instructions\": \"Which team should own this ticket?\",\n      \"type\": \"choice\"\n    },\n    \"urgency\": {\n      \"criteria\": [\n        \"Can wait for the next release\",\n        \"Should be fixed this week\",\n        \"Blocking revenue right now\"\n      ],\n      \"instructions\": \"How urgent is this ticket?\",\n      \"type\": \"score\"\n    }\n  },\n  \"state\": {\n    \"customer_tier\": \"enterprise\",\n    \"ticket\": \"My checkout page shows a blank screen after I click Pay. I have tried two browsers.\"\n  }\n}",
            "label": "Retained official request structure; documentary example",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_REQUEST_FILE:?Set your actual JSON request file}\"\nexport AILOOT_REQUEST_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads(Path(os.environ['AILOOT_REQUEST_FILE']).read_text(encoding='utf-8'))\nif not isinstance(p,dict): raise SystemExit('Request must be a JSON object')\np['model']='nace-ai/drex-v1.5'\nPath('request.json').write_text(json.dumps(p,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\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\nprint(json.dumps(json.loads(Path('result.json').read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Use your actual request material and retain the complete result",
            "language": "bash",
            "material_policy": "Use real owner-supplied state/questions or query/documents. No invented file ID, document, image URL, job ID or returned result."
          }
        ],
        "family": "systemone",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "systemone",
        "http": "POST",
        "in": 0.08,
        "input": [
          "text"
        ],
        "label": "System One",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "systemone",
        "out": 0,
        "output": [
          "decisions"
        ],
        "path": "/v1/systemone",
        "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.00008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000008",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.00008000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000008",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "nace-ai/drex-v1.5",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": null,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.08,
            "input_multiplier": null,
            "interval_boundary": "min_exclusive_max_inclusive",
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "null_rate_policy": "unknown or inherited; never zero",
            "out": 0,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.00008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000008",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "nace-ai/drex-v1.5",
        "request_model_id": "nace-ai/drex-v1.5",
        "route_label": "Ultra"
      }
    ],
    "name": "Nace.AI: Drex v1.5",
    "price": {
      "in": 0.08,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.08,
      "sort_out": 0,
      "varies": true
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "System One · Base token rates",
        "units": [
          {
            "amount": "0.00008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000008",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "max_context_tokens_inclusive": null,
          "min_context_tokens_exclusive": 0
        },
        "label": "System One · Request-length tier 1",
        "units": [
          {
            "amount": "0.00008000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000008",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "public_id": "nace-ai/drex-v1.5",
    "short": "Drex 1.5 évalue un texte ou un JSON fourni au regard de questions typées et renvoie des probabilités, une étiquette choisie ou un score fractionnaire sur une grille d’évaluation. Nace.AI documente des décisions portant uniquement sur du texte pour la classification, le routage et la priorisation, avec des limites d’état et de requête propres à chaque version."
  },
  "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": "Drex 1.5 évalue un texte ou un JSON fourni au regard de questions typées et renvoie des probabilités, une étiquette choisie ou un score fractionnaire sur une grille d’évaluation. Nace.AI documente des décisions portant uniquement sur du texte pour la classification, le routage et la priorisation, avec des limites d’état et de requête propres à chaque version.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "3bdeb25ec6067fff39dc528292bcd3eab3c77674fb0bae70c596df597184daae",
    "renderer_sha256": "44d2db1deadc475e1793597083716540bae7bbc53606f05f58780fec5f115dd4"
  },
  "sourceRevision": "1a200cffd813a4979b368d3afb9e37ece89384d520f3c9150a705afe28b07b7f"
}
