{
  "aboutHtml": "<h4>Retrouver la page pertinente à partir d’une question</h4><p>Llama Nemotron Embed VL 1B v2 est développé par NVIDIA pour rechercher des contenus qui aident à répondre à une question. La requête est formulée en texte. Le catalogue actuel d’Ailoot présente une entrée textuelle pour ce modèle : la question et le contenu sont encodés comme du texte. Le fabricant décrit également le document sous la forme d’une image de page ou d’une image accompagnée du texte extrait. Ces variantes visuelles nécessitent une méthode distincte prenant en charge les images. Avec une entrée adaptée, le modèle représente les tableaux, les graphiques et les infographies dans un espace vectoriel commun.</p><p>Cette recherche convient aux assistants de questions-réponses sur de grandes collections de documents, aux référentiels internes et aux documents de recherche. Le résultat de l’encodage est un vecteur numérique. La page ou le segment trouvé peut ensuite être fourni à un modèle qui produit la réponse : Embed VL effectue lui-même l’étape de recherche du contexte.</p><h4>Les variantes de document chez le fabricant</h4><ul><li>Document textuel : une section distincte, un segment ou le texte d’une page déjà reconnu.</li><li>Image : une page entière avec son texte, ses tableaux et ses éléments graphiques.</li><li>Image avec texte : l’apparence visuelle de la page et son contenu textuel sont réunis dans une même représentation.</li></ul><p>La requête et le document sont encodés indépendamment. La collection peut donc être traitée à l’avance, et les vecteurs enregistrés avec les pages sources ; pour une nouvelle question, seul le vecteur de la requête est calculé. La similarité des vecteurs aide à choisir les contenus selon leur sens. Les rôles textuels de la requête et du document sont différents, ce qu’il est important de préserver lors de la préparation des données.</p><h4>La dimension de la représentation et la longueur d’entrée</h4><p>Chaque entrée est transformée en un vecteur de dimension allant jusqu’à 2048 nombres. Le mode textuel utilise un budget de 8192 tokens. Pour la méthode visuelle du fabricant associant image et texte, un budget total de 10240 tokens est décrit, comprenant les deux parties ; ce n’est pas la limite textuelle de la méthode Ailoot. L’image est découpée en segments : dans la configuration décrite, jusqu’à six segments et une copie réduite de la page entière sont autorisés, soit environ 1792 tokens visuels au total. Les textes longs doivent être divisés ou raccourcis.</p><p>La partie linguistique repose sur Llama 3.2 1B, et la partie visuelle sur SigLIP2. Elles sont réunies dans un encodeur qui calcule la moyenne des représentations des tokens d’entrée et produit un vecteur unique. L’apprentissage contrastif rapproche la question de la page appropriée et l’éloigne des contenus non pertinents. La recherche reste probabiliste : la proximité des vecteurs ne garantit pas que le segment choisi contient la bonne réponse.</p>",
  "aboutText": "### Retrouver la page pertinente à partir d’une question\n\nLlama Nemotron Embed VL 1B v2 est développé par NVIDIA pour rechercher des contenus qui aident à répondre à une question. La requête est formulée en texte. Le catalogue actuel d’Ailoot présente une entrée textuelle pour ce modèle : la question et le contenu sont encodés comme du texte. Le fabricant décrit également le document sous la forme d’une image de page ou d’une image accompagnée du texte extrait. Ces variantes visuelles nécessitent une méthode distincte prenant en charge les images. Avec une entrée adaptée, le modèle représente les tableaux, les graphiques et les infographies dans un espace vectoriel commun.\n\nCette recherche convient aux assistants de questions-réponses sur de grandes collections de documents, aux référentiels internes et aux documents de recherche. Le résultat de l’encodage est un vecteur numérique. La page ou le segment trouvé peut ensuite être fourni à un modèle qui produit la réponse : Embed VL effectue lui-même l’étape de recherche du contexte.\n\n### Les variantes de document chez le fabricant\n\n- Document textuel : une section distincte, un segment ou le texte d’une page déjà reconnu.\n- Image : une page entière avec son texte, ses tableaux et ses éléments graphiques.\n- Image avec texte : l’apparence visuelle de la page et son contenu textuel sont réunis dans une même représentation.\n\nLa requête et le document sont encodés indépendamment. La collection peut donc être traitée à l’avance, et les vecteurs enregistrés avec les pages sources ; pour une nouvelle question, seul le vecteur de la requête est calculé. La similarité des vecteurs aide à choisir les contenus selon leur sens. Les rôles textuels de la requête et du document sont différents, ce qu’il est important de préserver lors de la préparation des données.\n\n### La dimension de la représentation et la longueur d’entrée\n\nChaque entrée est transformée en un vecteur de dimension allant jusqu’à 2048 nombres. Le mode textuel utilise un budget de 8192 tokens. Pour la méthode visuelle du fabricant associant image et texte, un budget total de 10240 tokens est décrit, comprenant les deux parties ; ce n’est pas la limite textuelle de la méthode Ailoot. L’image est découpée en segments : dans la configuration décrite, jusqu’à six segments et une copie réduite de la page entière sont autorisés, soit environ 1792 tokens visuels au total. Les textes longs doivent être divisés ou raccourcis.\n\nLa partie linguistique repose sur Llama 3.2 1B, et la partie visuelle sur SigLIP2. Elles sont réunies dans un encodeur qui calcule la moyenne des représentations des tokens d’entrée et produit un vecteur unique. L’apprentissage contrastif rapproche la question de la page appropriée et l’éloigne des contenus non pertinents. La recherche reste probabiliste : la proximité des vecteurs ne garantit pas que le segment choisi contient la bonne réponse.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "55be8af1dd15edaaa798a00dfb0321c793a3098e1a257f39c2d127b4d33e3312",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fr-ch",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">NV</span><h2 id=\"sheet-title\">Llama Nemotron Embed VL 1B v2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fermer\">×</button></div><div class=\"idline\"><span>NVIDIA /</span><code>nvidia/llama-nemotron-embed-vl-1b-v2</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=\"Core|embeddings|/v1/embeddings|nvidia%2Fllama-nemotron-embed-vl-1b-v2\">Embeddings</button></div><div class=\"idline\"><label for=\"card-model-id\">ID du modèle</label><select class=\"sel\" id=\"card-model-id\" style=\"min-width:0;max-width:100%\"><option value=\"Core|embeddings|/v1/embeddings|nvidia%2Fllama-nemotron-embed-vl-1b-v2\" selected>nvidia/llama-nemotron-embed-vl-1b-v2</option><option value=\"Core|embeddings|/v1/embeddings|nemotron-embed-vl\">nemotron-embed-vl</option><option value=\"Core|embeddings|/v1/embeddings|nemotron-embed-vl-latest\">nemotron-embed-vl-latest</option></select></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\">Llama Nemotron Embed VL v2 crée des vecteurs pour la recherche sémantique dans les documents. Le catalogue actuel d’Ailoot présente une entrée textuelle pour les requêtes et les contenus.</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>embedding</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\"><h4>Retrouver la page pertinente à partir d’une question</h4><p>Llama Nemotron Embed VL 1B v2 est développé par NVIDIA pour rechercher des contenus qui aident à répondre à une question. La requête est formulée en texte. Le catalogue actuel d’Ailoot présente une entrée textuelle pour ce modèle : la question et le contenu sont encodés comme du texte. Le fabricant décrit également le document sous la forme d’une image de page ou d’une image accompagnée du texte extrait. Ces variantes visuelles nécessitent une méthode distincte prenant en charge les images. Avec une entrée adaptée, le modèle représente les tableaux, les graphiques et les infographies dans un espace vectoriel commun.</p><p>Cette recherche convient aux assistants de questions-réponses sur de grandes collections de documents, aux référentiels internes et aux documents de recherche. Le résultat de l’encodage est un vecteur numérique. La page ou le segment trouvé peut ensuite être fourni à un modèle qui produit la réponse : Embed VL effectue lui-même l’étape de recherche du contexte.</p><h4>Les variantes de document chez le fabricant</h4><ul><li>Document textuel : une section distincte, un segment ou le texte d’une page déjà reconnu.</li><li>Image : une page entière avec son texte, ses tableaux et ses éléments graphiques.</li><li>Image avec texte : l’apparence visuelle de la page et son contenu textuel sont réunis dans une même représentation.</li></ul><p>La requête et le document sont encodés indépendamment. La collection peut donc être traitée à l’avance, et les vecteurs enregistrés avec les pages sources ; pour une nouvelle question, seul le vecteur de la requête est calculé. La similarité des vecteurs aide à choisir les contenus selon leur sens. Les rôles textuels de la requête et du document sont différents, ce qu’il est important de préserver lors de la préparation des données.</p><h4>La dimension de la représentation et la longueur d’entrée</h4><p>Chaque entrée est transformée en un vecteur de dimension allant jusqu’à 2048 nombres. Le mode textuel utilise un budget de 8192 tokens. Pour la méthode visuelle du fabricant associant image et texte, un budget total de 10240 tokens est décrit, comprenant les deux parties ; ce n’est pas la limite textuelle de la méthode Ailoot. L’image est découpée en segments : dans la configuration décrite, jusqu’à six segments et une copie réduite de la page entière sont autorisés, soit environ 1792 tokens visuels au total. Les textes longs doivent être divisés ou raccourcis.</p><p>La partie linguistique repose sur Llama 3.2 1B, et la partie visuelle sur SigLIP2. Elles sont réunies dans un encodeur qui calcule la moyenne des représentations des tokens d’entrée et produit un vecteur unique. L’apprentissage contrastif rapproche la question de la page appropriée et l’éloigne des contenus non pertinents. La recherche reste probabiliste : la proximité des vecteurs ne garantit pas que le segment choisi contient la bonne réponse.</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 · Plongements vectoriels</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Entrée</dt><dd><code>text</code></dd></div><div><dt>Sortie</dt><dd><code>embedding</code></dd></div><div><dt>Contexte</dt><dd>4'096 tokens</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>nvidia/llama-nemotron-embed-vl-1b-v2</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\">input</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string|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>Nombre minimal d’éléments: 1</div><div>Conditions: Chaque chaîne doit être non vide après suppression des espaces de début et de fin ; les URI data sont rejetées ; le budget accepté mesure les octets UTF8 concernés.</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\">input_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>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>query, passage</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>query</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\">encoding_format</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><div>float, base64</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>float</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\">truncate</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><div>NONE, START, END</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\">dimensions</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</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>Minimum: 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\">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></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Combinaisons d’éléments d’entrée</summary><p class=\"note-s\"><b>text_to_embedding</b></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>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>required</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>model, input</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>null</td></tr><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></tbody></table></div><p>Cycle de vie : <code>exact retained published method</code></p><p class=\"note-s\">Les structures des méthodes et les identifiants sont exacts ; la capacité du fournisseur est distincte de l’admission.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifs</h3><h4>Tarifs des méthodes Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Plongements vectoriels</b><code>POST /v1/embeddings</code></header><dl><div><dt>Entrée</dt><dd>0.0001 USD <em>/ 1K</em></dd></div></dl></section><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-ch/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 · Plongements vectoriels</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-524-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-524-panel-0\" aria-selected=\"true\" tabindex=\"0\">Exemple d’embeddings</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-524-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-524-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;nvidia/llama-nemotron-embed-vl-1b-v2&quot;, &quot;input&quot;: []}&#39;)\nf=Path(os.environ[&quot;AILOOT_TEXT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 source material&quot;)\ntext=f.read_text(encoding=&quot;utf-8&quot;)\nif not text.strip():raise SystemExit(&quot;Source material must contain text&quot;)\np[&quot;input&quot;]=[text]\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;data&quot;,[]): print(json.dumps({&quot;index&quot;:x.get(&quot;index&quot;),&quot;embedding&quot;:x.get(&quot;embedding&quot;)}))\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Recevoir et enregistrer les résultats</h3><h4>Ailoot · Plongements vectoriels</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\">Décodez les vecteurs base64 uniquement si ce format a été demandé ; conservez chaque vecteur et son indice d’origine.</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\">Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté.</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\">data[].index</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\">data[].embedding</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>finite float[]|base64 float32 vector</td></tr><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\">usage</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Erreurs et étapes suivantes</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Réponse</th><th>Condition</th><th>Étape suivante</th></tr></thead><tbody><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Champs obligatoires, représentation des contenus ou valeur de paramètre non valides</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Corrigez les champs indiqués avant une nouvelle requête de création.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias du modèle</h4><p class=\"note-s\"><span data-model-alias-route=\"Core\"><b>Ailoot</b> <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;fmt=embeddings\"><code>nvidia/llama-nemotron-embed-vl-1b-v2</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl&amp;fmt=embeddings\"><code>nemotron-embed-vl</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl-latest&amp;fmt=embeddings\"><code>nemotron-embed-vl-latest</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=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;fmt=embeddings\"><code>nvidia/llama-nemotron-embed-vl-1b-v2</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl&amp;fmt=embeddings\"><code>nemotron-embed-vl</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl-latest&amp;fmt=embeddings\"><code>nemotron-embed-vl-latest</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "nvidia/llama-nemotron-embed-vl-1b-v2",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "nvidia/llama-nemotron-embed-vl-1b-v2",
        "route_label": "Core"
      },
      "method_key": "Core|embeddings|/v1/embeddings|nvidia%2Fllama-nemotron-embed-vl-1b-v2",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Decode base64 vectors only when that format was requested; retain every vector and its original index.",
            "errors": [
              {
                "code": null,
                "condition": "Champs obligatoires, représentation des contenus ou valeur de paramètre non valides",
                "http_status": 400,
                "recovery": "Corrigez les champs indiqués avant une nouvelle requête de création.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Décodez les vecteurs base64 uniquement si ce format a été demandé ; conservez chaque vecteur et son indice d’origine.",
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]|base64 float32 vector"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "nvidia/llama-nemotron-embed-vl-1b-v2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Chaque chaîne doit être non vide après suppression des espaces de début et de fin ; les URI data sont rejetées ; le budget accepté mesure les octets UTF8 concernés.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]"
              },
              {
                "availability": "source_interface",
                "default": "query",
                "default_known": true,
                "enum": [
                  "query",
                  "passage"
                ],
                "enum_known": true,
                "name": "input_type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float",
                  "base64"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "NONE",
                  "START",
                  "END"
                ],
                "enum_known": true,
                "name": "truncate",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "image objects",
              "data URI text inputs",
              "token integer arrays on this NVIDIA adapter"
            ]
          },
          "hints": [
            "Les structures des méthodes et les identifiants sont exacts ; la capacité du fournisseur est distincte de l’admission."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "operation_modes": [
            "embeddings"
          ],
          "output": {
            "family": [
              "embedding"
            ],
            "format": "indexed vectors JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 4096,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"nvidia/llama-nemotron-embed-vl-1b-v2\", \"input\": []}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=[text]\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "Embed your source material",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.1,
        "input": [
          "text"
        ],
        "label": "Plongements vectoriels",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.1,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "nvidia/llama-nemotron-embed-vl-1b-v2",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">NV</span><h2 id=\"sheet-title\">Llama Nemotron Embed VL 1B v2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fermer\">×</button></div><div class=\"idline\"><span>NVIDIA /</span><code>nemotron-embed-vl</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=\"Core|embeddings|/v1/embeddings|nemotron-embed-vl\">Embeddings</button></div><div class=\"idline\"><label for=\"card-model-id\">ID du modèle</label><select class=\"sel\" id=\"card-model-id\" style=\"min-width:0;max-width:100%\"><option value=\"Core|embeddings|/v1/embeddings|nvidia%2Fllama-nemotron-embed-vl-1b-v2\">nvidia/llama-nemotron-embed-vl-1b-v2</option><option value=\"Core|embeddings|/v1/embeddings|nemotron-embed-vl\" selected>nemotron-embed-vl</option><option value=\"Core|embeddings|/v1/embeddings|nemotron-embed-vl-latest\">nemotron-embed-vl-latest</option></select></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\">Llama Nemotron Embed VL v2 crée des vecteurs pour la recherche sémantique dans les documents. Le catalogue actuel d’Ailoot présente une entrée textuelle pour les requêtes et les contenus.</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>embedding</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\"><h4>Retrouver la page pertinente à partir d’une question</h4><p>Llama Nemotron Embed VL 1B v2 est développé par NVIDIA pour rechercher des contenus qui aident à répondre à une question. La requête est formulée en texte. Le catalogue actuel d’Ailoot présente une entrée textuelle pour ce modèle : la question et le contenu sont encodés comme du texte. Le fabricant décrit également le document sous la forme d’une image de page ou d’une image accompagnée du texte extrait. Ces variantes visuelles nécessitent une méthode distincte prenant en charge les images. Avec une entrée adaptée, le modèle représente les tableaux, les graphiques et les infographies dans un espace vectoriel commun.</p><p>Cette recherche convient aux assistants de questions-réponses sur de grandes collections de documents, aux référentiels internes et aux documents de recherche. Le résultat de l’encodage est un vecteur numérique. La page ou le segment trouvé peut ensuite être fourni à un modèle qui produit la réponse : Embed VL effectue lui-même l’étape de recherche du contexte.</p><h4>Les variantes de document chez le fabricant</h4><ul><li>Document textuel : une section distincte, un segment ou le texte d’une page déjà reconnu.</li><li>Image : une page entière avec son texte, ses tableaux et ses éléments graphiques.</li><li>Image avec texte : l’apparence visuelle de la page et son contenu textuel sont réunis dans une même représentation.</li></ul><p>La requête et le document sont encodés indépendamment. La collection peut donc être traitée à l’avance, et les vecteurs enregistrés avec les pages sources ; pour une nouvelle question, seul le vecteur de la requête est calculé. La similarité des vecteurs aide à choisir les contenus selon leur sens. Les rôles textuels de la requête et du document sont différents, ce qu’il est important de préserver lors de la préparation des données.</p><h4>La dimension de la représentation et la longueur d’entrée</h4><p>Chaque entrée est transformée en un vecteur de dimension allant jusqu’à 2048 nombres. Le mode textuel utilise un budget de 8192 tokens. Pour la méthode visuelle du fabricant associant image et texte, un budget total de 10240 tokens est décrit, comprenant les deux parties ; ce n’est pas la limite textuelle de la méthode Ailoot. L’image est découpée en segments : dans la configuration décrite, jusqu’à six segments et une copie réduite de la page entière sont autorisés, soit environ 1792 tokens visuels au total. Les textes longs doivent être divisés ou raccourcis.</p><p>La partie linguistique repose sur Llama 3.2 1B, et la partie visuelle sur SigLIP2. Elles sont réunies dans un encodeur qui calcule la moyenne des représentations des tokens d’entrée et produit un vecteur unique. L’apprentissage contrastif rapproche la question de la page appropriée et l’éloigne des contenus non pertinents. La recherche reste probabiliste : la proximité des vecteurs ne garantit pas que le segment choisi contient la bonne réponse.</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 · Plongements vectoriels</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Entrée</dt><dd><code>text</code></dd></div><div><dt>Sortie</dt><dd><code>embedding</code></dd></div><div><dt>Contexte</dt><dd>4'096 tokens</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>nemotron-embed-vl</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\">input</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string|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>Nombre minimal d’éléments: 1</div><div>Conditions: Chaque chaîne doit être non vide après suppression des espaces de début et de fin ; les URI data sont rejetées ; le budget accepté mesure les octets UTF8 concernés.</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\">input_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>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>query, passage</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>query</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\">encoding_format</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><div>float, base64</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>float</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\">truncate</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><div>NONE, START, END</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\">dimensions</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</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>Minimum: 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\">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></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Combinaisons d’éléments d’entrée</summary><p class=\"note-s\"><b>text_to_embedding</b></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>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>required</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>model, input</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>null</td></tr><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></tbody></table></div><p>Cycle de vie : <code>exact retained published method</code></p><p class=\"note-s\">Les structures des méthodes et les identifiants sont exacts ; la capacité du fournisseur est distincte de l’admission.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifs</h3><h4>Tarifs des méthodes Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Plongements vectoriels</b><code>POST /v1/embeddings</code></header><dl><div><dt>Entrée</dt><dd>0.0001 USD <em>/ 1K</em></dd></div></dl></section><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-ch/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 · Plongements vectoriels</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-525-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-525-panel-0\" aria-selected=\"true\" tabindex=\"0\">Exemple d’embeddings</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-525-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-525-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;nemotron-embed-vl&quot;, &quot;input&quot;: []}&#39;)\nf=Path(os.environ[&quot;AILOOT_TEXT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 source material&quot;)\ntext=f.read_text(encoding=&quot;utf-8&quot;)\nif not text.strip():raise SystemExit(&quot;Source material must contain text&quot;)\np[&quot;input&quot;]=[text]\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;data&quot;,[]): print(json.dumps({&quot;index&quot;:x.get(&quot;index&quot;),&quot;embedding&quot;:x.get(&quot;embedding&quot;)}))\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Recevoir et enregistrer les résultats</h3><h4>Ailoot · Plongements vectoriels</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\">Décodez les vecteurs base64 uniquement si ce format a été demandé ; conservez chaque vecteur et son indice d’origine.</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\">Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté.</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\">data[].index</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\">data[].embedding</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>finite float[]|base64 float32 vector</td></tr><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\">usage</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Erreurs et étapes suivantes</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Réponse</th><th>Condition</th><th>Étape suivante</th></tr></thead><tbody><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Champs obligatoires, représentation des contenus ou valeur de paramètre non valides</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Corrigez les champs indiqués avant une nouvelle requête de création.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias du modèle</h4><p class=\"note-s\"><span data-model-alias-route=\"Core\"><b>Ailoot</b> <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;fmt=embeddings\"><code>nvidia/llama-nemotron-embed-vl-1b-v2</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl&amp;fmt=embeddings\"><code>nemotron-embed-vl</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl-latest&amp;fmt=embeddings\"><code>nemotron-embed-vl-latest</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=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;fmt=embeddings\"><code>nvidia/llama-nemotron-embed-vl-1b-v2</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl&amp;fmt=embeddings\"><code>nemotron-embed-vl</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl-latest&amp;fmt=embeddings\"><code>nemotron-embed-vl-latest</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "nemotron-embed-vl",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "nemotron-embed-vl",
        "route_label": "Core"
      },
      "method_key": "Core|embeddings|/v1/embeddings|nemotron-embed-vl",
      "ordinal": 1,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Decode base64 vectors only when that format was requested; retain every vector and its original index.",
            "errors": [
              {
                "code": null,
                "condition": "Champs obligatoires, représentation des contenus ou valeur de paramètre non valides",
                "http_status": 400,
                "recovery": "Corrigez les champs indiqués avant une nouvelle requête de création.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Décodez les vecteurs base64 uniquement si ce format a été demandé ; conservez chaque vecteur et son indice d’origine.",
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]|base64 float32 vector"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "nemotron-embed-vl"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Chaque chaîne doit être non vide après suppression des espaces de début et de fin ; les URI data sont rejetées ; le budget accepté mesure les octets UTF8 concernés.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]"
              },
              {
                "availability": "source_interface",
                "default": "query",
                "default_known": true,
                "enum": [
                  "query",
                  "passage"
                ],
                "enum_known": true,
                "name": "input_type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float",
                  "base64"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "NONE",
                  "START",
                  "END"
                ],
                "enum_known": true,
                "name": "truncate",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "image objects",
              "data URI text inputs",
              "token integer arrays on this NVIDIA adapter"
            ]
          },
          "hints": [
            "Les structures des méthodes et les identifiants sont exacts ; la capacité du fournisseur est distincte de l’admission."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "operation_modes": [
            "embeddings"
          ],
          "output": {
            "family": [
              "embedding"
            ],
            "format": "indexed vectors JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 4096,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"nemotron-embed-vl\", \"input\": []}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=[text]\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "Embed your source material",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.1,
        "input": [
          "text"
        ],
        "label": "Plongements vectoriels",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.1,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "nemotron-embed-vl",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">NV</span><h2 id=\"sheet-title\">Llama Nemotron Embed VL 1B v2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fermer\">×</button></div><div class=\"idline\"><span>NVIDIA /</span><code>nemotron-embed-vl-latest</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=\"Core|embeddings|/v1/embeddings|nemotron-embed-vl-latest\">Embeddings</button></div><div class=\"idline\"><label for=\"card-model-id\">ID du modèle</label><select class=\"sel\" id=\"card-model-id\" style=\"min-width:0;max-width:100%\"><option value=\"Core|embeddings|/v1/embeddings|nvidia%2Fllama-nemotron-embed-vl-1b-v2\">nvidia/llama-nemotron-embed-vl-1b-v2</option><option value=\"Core|embeddings|/v1/embeddings|nemotron-embed-vl\">nemotron-embed-vl</option><option value=\"Core|embeddings|/v1/embeddings|nemotron-embed-vl-latest\" selected>nemotron-embed-vl-latest</option></select></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\">Llama Nemotron Embed VL v2 crée des vecteurs pour la recherche sémantique dans les documents. Le catalogue actuel d’Ailoot présente une entrée textuelle pour les requêtes et les contenus.</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>embedding</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\"><h4>Retrouver la page pertinente à partir d’une question</h4><p>Llama Nemotron Embed VL 1B v2 est développé par NVIDIA pour rechercher des contenus qui aident à répondre à une question. La requête est formulée en texte. Le catalogue actuel d’Ailoot présente une entrée textuelle pour ce modèle : la question et le contenu sont encodés comme du texte. Le fabricant décrit également le document sous la forme d’une image de page ou d’une image accompagnée du texte extrait. Ces variantes visuelles nécessitent une méthode distincte prenant en charge les images. Avec une entrée adaptée, le modèle représente les tableaux, les graphiques et les infographies dans un espace vectoriel commun.</p><p>Cette recherche convient aux assistants de questions-réponses sur de grandes collections de documents, aux référentiels internes et aux documents de recherche. Le résultat de l’encodage est un vecteur numérique. La page ou le segment trouvé peut ensuite être fourni à un modèle qui produit la réponse : Embed VL effectue lui-même l’étape de recherche du contexte.</p><h4>Les variantes de document chez le fabricant</h4><ul><li>Document textuel : une section distincte, un segment ou le texte d’une page déjà reconnu.</li><li>Image : une page entière avec son texte, ses tableaux et ses éléments graphiques.</li><li>Image avec texte : l’apparence visuelle de la page et son contenu textuel sont réunis dans une même représentation.</li></ul><p>La requête et le document sont encodés indépendamment. La collection peut donc être traitée à l’avance, et les vecteurs enregistrés avec les pages sources ; pour une nouvelle question, seul le vecteur de la requête est calculé. La similarité des vecteurs aide à choisir les contenus selon leur sens. Les rôles textuels de la requête et du document sont différents, ce qu’il est important de préserver lors de la préparation des données.</p><h4>La dimension de la représentation et la longueur d’entrée</h4><p>Chaque entrée est transformée en un vecteur de dimension allant jusqu’à 2048 nombres. Le mode textuel utilise un budget de 8192 tokens. Pour la méthode visuelle du fabricant associant image et texte, un budget total de 10240 tokens est décrit, comprenant les deux parties ; ce n’est pas la limite textuelle de la méthode Ailoot. L’image est découpée en segments : dans la configuration décrite, jusqu’à six segments et une copie réduite de la page entière sont autorisés, soit environ 1792 tokens visuels au total. Les textes longs doivent être divisés ou raccourcis.</p><p>La partie linguistique repose sur Llama 3.2 1B, et la partie visuelle sur SigLIP2. Elles sont réunies dans un encodeur qui calcule la moyenne des représentations des tokens d’entrée et produit un vecteur unique. L’apprentissage contrastif rapproche la question de la page appropriée et l’éloigne des contenus non pertinents. La recherche reste probabiliste : la proximité des vecteurs ne garantit pas que le segment choisi contient la bonne réponse.</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 · Plongements vectoriels</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Entrée</dt><dd><code>text</code></dd></div><div><dt>Sortie</dt><dd><code>embedding</code></dd></div><div><dt>Contexte</dt><dd>4'096 tokens</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>nemotron-embed-vl-latest</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\">input</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string|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>Nombre minimal d’éléments: 1</div><div>Conditions: Chaque chaîne doit être non vide après suppression des espaces de début et de fin ; les URI data sont rejetées ; le budget accepté mesure les octets UTF8 concernés.</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\">input_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>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>query, passage</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>query</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\">encoding_format</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><div>float, base64</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>float</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\">truncate</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><div>NONE, START, END</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\">dimensions</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</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>Minimum: 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\">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></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Combinaisons d’éléments d’entrée</summary><p class=\"note-s\"><b>text_to_embedding</b></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>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>required</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>model, input</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>null</td></tr><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></tbody></table></div><p>Cycle de vie : <code>exact retained published method</code></p><p class=\"note-s\">Les structures des méthodes et les identifiants sont exacts ; la capacité du fournisseur est distincte de l’admission.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifs</h3><h4>Tarifs des méthodes Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Plongements vectoriels</b><code>POST /v1/embeddings</code></header><dl><div><dt>Entrée</dt><dd>0.0001 USD <em>/ 1K</em></dd></div></dl></section><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-ch/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 · Plongements vectoriels</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-526-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-526-panel-0\" aria-selected=\"true\" tabindex=\"0\">Exemple d’embeddings</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-526-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-526-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;nemotron-embed-vl-latest&quot;, &quot;input&quot;: []}&#39;)\nf=Path(os.environ[&quot;AILOOT_TEXT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 source material&quot;)\ntext=f.read_text(encoding=&quot;utf-8&quot;)\nif not text.strip():raise SystemExit(&quot;Source material must contain text&quot;)\np[&quot;input&quot;]=[text]\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;data&quot;,[]): print(json.dumps({&quot;index&quot;:x.get(&quot;index&quot;),&quot;embedding&quot;:x.get(&quot;embedding&quot;)}))\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Recevoir et enregistrer les résultats</h3><h4>Ailoot · Plongements vectoriels</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\">Décodez les vecteurs base64 uniquement si ce format a été demandé ; conservez chaque vecteur et son indice d’origine.</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\">Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté.</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\">data[].index</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\">data[].embedding</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>finite float[]|base64 float32 vector</td></tr><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\">usage</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Erreurs et étapes suivantes</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Réponse</th><th>Condition</th><th>Étape suivante</th></tr></thead><tbody><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Champs obligatoires, représentation des contenus ou valeur de paramètre non valides</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Corrigez les champs indiqués avant une nouvelle requête de création.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias du modèle</h4><p class=\"note-s\"><span data-model-alias-route=\"Core\"><b>Ailoot</b> <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;fmt=embeddings\"><code>nvidia/llama-nemotron-embed-vl-1b-v2</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl&amp;fmt=embeddings\"><code>nemotron-embed-vl</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl-latest&amp;fmt=embeddings\"><code>nemotron-embed-vl-latest</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=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;fmt=embeddings\"><code>nvidia/llama-nemotron-embed-vl-1b-v2</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl&amp;fmt=embeddings\"><code>nemotron-embed-vl</code></a>, <a href=\"#m=nvidia%2Fllama-nemotron-embed-vl-1b-v2&amp;route=Core&amp;caller=nemotron-embed-vl-latest&amp;fmt=embeddings\"><code>nemotron-embed-vl-latest</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "nemotron-embed-vl-latest",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "nemotron-embed-vl-latest",
        "route_label": "Core"
      },
      "method_key": "Core|embeddings|/v1/embeddings|nemotron-embed-vl-latest",
      "ordinal": 2,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Decode base64 vectors only when that format was requested; retain every vector and its original index.",
            "errors": [
              {
                "code": null,
                "condition": "Champs obligatoires, représentation des contenus ou valeur de paramètre non valides",
                "http_status": 400,
                "recovery": "Corrigez les champs indiqués avant une nouvelle requête de création.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Décodez les vecteurs base64 uniquement si ce format a été demandé ; conservez chaque vecteur et son indice d’origine.",
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]|base64 float32 vector"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "nemotron-embed-vl-latest"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Chaque chaîne doit être non vide après suppression des espaces de début et de fin ; les URI data sont rejetées ; le budget accepté mesure les octets UTF8 concernés.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]"
              },
              {
                "availability": "source_interface",
                "default": "query",
                "default_known": true,
                "enum": [
                  "query",
                  "passage"
                ],
                "enum_known": true,
                "name": "input_type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float",
                  "base64"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "NONE",
                  "START",
                  "END"
                ],
                "enum_known": true,
                "name": "truncate",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "image objects",
              "data URI text inputs",
              "token integer arrays on this NVIDIA adapter"
            ]
          },
          "hints": [
            "Les structures des méthodes et les identifiants sont exacts ; la capacité du fournisseur est distincte de l’admission."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "operation_modes": [
            "embeddings"
          ],
          "output": {
            "family": [
              "embedding"
            ],
            "format": "indexed vectors JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 4096,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"nemotron-embed-vl-latest\", \"input\": []}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=[text]\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "Embed your source material",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.1,
        "input": [
          "text"
        ],
        "label": "Plongements vectoriels",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.1,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "nemotron-embed-vl-latest",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    }
  ],
  "model_id": "nvidia/llama-nemotron-embed-vl-1b-v2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "eefa6ea1d7d73492dc76f585c17cb6d0fa2b1b66263434558206fbfae96d8d14",
    "input_html_sha256": "b561736317ee2ed1b9db0a391f44c7d91228ea55260023e57297e7f024ad2875",
    "private_audit_sha256": "0dc0c3bbe9b72e577a29c4e3fb010106b1975e7a7a3442046b6c00c426c32066",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fr-ch/nvidia-llama-nemotron-embed-vl-1b-v2/",
    "description": "Llama Nemotron Embed VL v2 crée des vecteurs pour la recherche sémantique dans les documents. Le catalogue actuel d’Ailoot présente une entrée textuelle pour les requêtes et les contenus.",
    "locale": "fr-ch",
    "md_url": "https://ailoot.ai/models/fr-ch/nvidia-llama-nemotron-embed-vl-1b-v2/index.md",
    "title": "Llama Nemotron Embed VL 1B v2 — Ailoot",
    "url": "https://ailoot.ai/models/fr-ch/nvidia-llama-nemotron-embed-vl-1b-v2/"
  },
  "rawModel": {
    "about": "### Retrouver la page pertinente à partir d’une question\n\nLlama Nemotron Embed VL 1B v2 est développé par NVIDIA pour rechercher des contenus qui aident à répondre à une question. La requête est formulée en texte. Le catalogue actuel d’Ailoot présente une entrée textuelle pour ce modèle : la question et le contenu sont encodés comme du texte. Le fabricant décrit également le document sous la forme d’une image de page ou d’une image accompagnée du texte extrait. Ces variantes visuelles nécessitent une méthode distincte prenant en charge les images. Avec une entrée adaptée, le modèle représente les tableaux, les graphiques et les infographies dans un espace vectoriel commun.\n\nCette recherche convient aux assistants de questions-réponses sur de grandes collections de documents, aux référentiels internes et aux documents de recherche. Le résultat de l’encodage est un vecteur numérique. La page ou le segment trouvé peut ensuite être fourni à un modèle qui produit la réponse : Embed VL effectue lui-même l’étape de recherche du contexte.\n\n### Les variantes de document chez le fabricant\n\n- Document textuel : une section distincte, un segment ou le texte d’une page déjà reconnu.\n- Image : une page entière avec son texte, ses tableaux et ses éléments graphiques.\n- Image avec texte : l’apparence visuelle de la page et son contenu textuel sont réunis dans une même représentation.\n\nLa requête et le document sont encodés indépendamment. La collection peut donc être traitée à l’avance, et les vecteurs enregistrés avec les pages sources ; pour une nouvelle question, seul le vecteur de la requête est calculé. La similarité des vecteurs aide à choisir les contenus selon leur sens. Les rôles textuels de la requête et du document sont différents, ce qu’il est important de préserver lors de la préparation des données.\n\n### La dimension de la représentation et la longueur d’entrée\n\nChaque entrée est transformée en un vecteur de dimension allant jusqu’à 2048 nombres. Le mode textuel utilise un budget de 8192 tokens. Pour la méthode visuelle du fabricant associant image et texte, un budget total de 10240 tokens est décrit, comprenant les deux parties ; ce n’est pas la limite textuelle de la méthode Ailoot. L’image est découpée en segments : dans la configuration décrite, jusqu’à six segments et une copie réduite de la page entière sont autorisés, soit environ 1792 tokens visuels au total. Les textes longs doivent être divisés ou raccourcis.\n\nLa partie linguistique repose sur Llama 3.2 1B, et la partie visuelle sur SigLIP2. Elles sont réunies dans un encodeur qui calcule la moyenne des représentations des tokens d’entrée et produit un vecteur unique. L’apprentissage contrastif rapproche la question de la page appropriée et l’éloigne des contenus non pertinents. La recherche reste probabiliste : la proximité des vecteurs ne garantit pas que le segment choisi contient la bonne réponse.",
    "alias_of": null,
    "aliases": [
      "nemotron-embed-vl",
      "nemotron-embed-vl-latest"
    ],
    "author": "NVIDIA",
    "ctx": 4096,
    "display_name": "Llama Nemotron Embed VL 1B v2",
    "formats": [
      "embeddings"
    ],
    "id": "nvidia/llama-nemotron-embed-vl-1b-v2",
    "input": [
      "text"
    ],
    "kind": "embedding",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Decode base64 vectors only when that format was requested; retain every vector and its original index.",
            "errors": [
              {
                "code": null,
                "condition": "Champs obligatoires, représentation des contenus ou valeur de paramètre non valides",
                "http_status": 400,
                "recovery": "Corrigez les champs indiqués avant une nouvelle requête de création.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Décodez les vecteurs base64 uniquement si ce format a été demandé ; conservez chaque vecteur et son indice d’origine.",
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]|base64 float32 vector"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "nvidia/llama-nemotron-embed-vl-1b-v2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Chaque chaîne doit être non vide après suppression des espaces de début et de fin ; les URI data sont rejetées ; le budget accepté mesure les octets UTF8 concernés.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]"
              },
              {
                "availability": "source_interface",
                "default": "query",
                "default_known": true,
                "enum": [
                  "query",
                  "passage"
                ],
                "enum_known": true,
                "name": "input_type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float",
                  "base64"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "NONE",
                  "START",
                  "END"
                ],
                "enum_known": true,
                "name": "truncate",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "image objects",
              "data URI text inputs",
              "token integer arrays on this NVIDIA adapter"
            ]
          },
          "hints": [
            "Les structures des méthodes et les identifiants sont exacts ; la capacité du fournisseur est distincte de l’admission."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "operation_modes": [
            "embeddings"
          ],
          "output": {
            "family": [
              "embedding"
            ],
            "format": "indexed vectors JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 4096,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"nvidia/llama-nemotron-embed-vl-1b-v2\", \"input\": []}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=[text]\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "Embed your source material",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.1,
        "input": [
          "text"
        ],
        "label": "Plongements vectoriels",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.1,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "nvidia/llama-nemotron-embed-vl-1b-v2",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      },
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Decode base64 vectors only when that format was requested; retain every vector and its original index.",
            "errors": [
              {
                "code": null,
                "condition": "Champs obligatoires, représentation des contenus ou valeur de paramètre non valides",
                "http_status": 400,
                "recovery": "Corrigez les champs indiqués avant une nouvelle requête de création.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Décodez les vecteurs base64 uniquement si ce format a été demandé ; conservez chaque vecteur et son indice d’origine.",
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]|base64 float32 vector"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "nemotron-embed-vl"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Chaque chaîne doit être non vide après suppression des espaces de début et de fin ; les URI data sont rejetées ; le budget accepté mesure les octets UTF8 concernés.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]"
              },
              {
                "availability": "source_interface",
                "default": "query",
                "default_known": true,
                "enum": [
                  "query",
                  "passage"
                ],
                "enum_known": true,
                "name": "input_type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float",
                  "base64"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "NONE",
                  "START",
                  "END"
                ],
                "enum_known": true,
                "name": "truncate",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "image objects",
              "data URI text inputs",
              "token integer arrays on this NVIDIA adapter"
            ]
          },
          "hints": [
            "Les structures des méthodes et les identifiants sont exacts ; la capacité du fournisseur est distincte de l’admission."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "operation_modes": [
            "embeddings"
          ],
          "output": {
            "family": [
              "embedding"
            ],
            "format": "indexed vectors JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 4096,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"nemotron-embed-vl\", \"input\": []}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=[text]\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "Embed your source material",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.1,
        "input": [
          "text"
        ],
        "label": "Plongements vectoriels",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.1,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "nemotron-embed-vl",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      },
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Decode base64 vectors only when that format was requested; retain every vector and its original index.",
            "errors": [
              {
                "code": null,
                "condition": "Champs obligatoires, représentation des contenus ou valeur de paramètre non valides",
                "http_status": 400,
                "recovery": "Corrigez les champs indiqués avant une nouvelle requête de création.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Décodez les vecteurs base64 uniquement si ce format a été demandé ; conservez chaque vecteur et son indice d’origine.",
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]|base64 float32 vector"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "nemotron-embed-vl-latest"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "Chaque chaîne doit être non vide après suppression des espaces de début et de fin ; les URI data sont rejetées ; le budget accepté mesure les octets UTF8 concernés.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]"
              },
              {
                "availability": "source_interface",
                "default": "query",
                "default_known": true,
                "enum": [
                  "query",
                  "passage"
                ],
                "enum_known": true,
                "name": "input_type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float",
                  "base64"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "NONE",
                  "START",
                  "END"
                ],
                "enum_known": true,
                "name": "truncate",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "image objects",
              "data URI text inputs",
              "token integer arrays on this NVIDIA adapter"
            ]
          },
          "hints": [
            "Les structures des méthodes et les identifiants sont exacts ; la capacité du fournisseur est distincte de l’admission."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "operation_modes": [
            "embeddings"
          ],
          "output": {
            "family": [
              "embedding"
            ],
            "format": "indexed vectors JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 4096,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"nemotron-embed-vl-latest\", \"input\": []}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"input\"]=[text]\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "Embed your source material",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.1,
        "input": [
          "text"
        ],
        "label": "Plongements vectoriels",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.1,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "nemotron-embed-vl-latest",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "nvidia/llama-nemotron-embed-vl-1b-v2",
        "request_model_id": "nvidia/llama-nemotron-embed-vl-1b-v2",
        "route_label": "Core"
      },
      {
        "canonical_model_id": "nvidia/llama-nemotron-embed-vl-1b-v2",
        "request_model_id": "nemotron-embed-vl",
        "route_label": "Core"
      },
      {
        "canonical_model_id": "nvidia/llama-nemotron-embed-vl-1b-v2",
        "request_model_id": "nemotron-embed-vl-latest",
        "route_label": "Core"
      }
    ],
    "name": "nvidia/llama-nemotron-embed-vl-1b-v2",
    "price": {
      "in": 0.1,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": 0.1,
      "sort_out": null,
      "varies": false
    },
    "short": "Llama Nemotron Embed VL v2 crée des vecteurs pour la recherche sémantique dans les documents. Le catalogue actuel d’Ailoot présente une entrée textuelle pour les requêtes et les contenus."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        },
        {
          "contract_json_pointer": "/methods/1/rawMethod/contract",
          "html_json_pointer": "/methods/1/html",
          "method_ordinal": 1
        },
        {
          "contract_json_pointer": "/methods/2/rawMethod/contract",
          "html_json_pointer": "/methods/2/html",
          "method_ordinal": 2
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod",
        "/methods/1/rawMethod",
        "/methods/2/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Llama Nemotron Embed VL v2 crée des vecteurs pour la recherche sémantique dans les documents. Le catalogue actuel d’Ailoot présente une entrée textuelle pour les requêtes et les contenus.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "cae76e6014d2833032091ac35136764cd98beb9c5dabd0167a10369b4acd2c45",
    "renderer_sha256": "4d2f3bfcbf0fa5c616c87aa9524d00d7cff227d8dfa2446ff47c8e0220325dc9"
  },
  "sourceRevision": "520765fae73c604248e003875b448f00a8705d95bb5aea1741e0ea573fff4eb4"
}
