{
  "aboutHtml": "<h4>Sopivan sivun löytäminen kysymyksen perusteella</h4><p>NVIDIA kehitti Llama Nemotron Embed VL 1B v2 -mallin kysymykseen vastaamista tukevien aineistojen hakuun. Kysely annetaan tekstinä. Ailootin nykyisessä luettelossa mallille on tarjolla tekstisyöte: kysymys ja aineisto koodataan tekstinä. Valmistaja kuvaa myös asiakirjan sivukuvana tai kuvana yhdessä poimitun tekstin kanssa. Nämä visuaaliset vaihtoehdot vaativat erillisen kuvia tukevan menetelmän. Sopivalla syötteellä malli esittää taulukot, kuvaajat ja infografiikan yhteisessä vektoriavaruudessa.</p><p>Haku sopii suuren asiakirjakokoelman kysymys-vastausavustajiin, sisäisiin käsikirjoihin ja tutkimusaineistoihin. Koodauksen tulos on numeerinen vektori. Löydetty sivu tai jakso voidaan antaa vastausta muodostavalle mallille: Embed VL itse hoitaa kontekstin hakuvaiheen.</p><h4>Valmistajan asiakirjavaihtoehdot</h4><ul><li>Tekstiasiakirja: erillinen osio, jakso tai jo tunnistettu sivuteksti.</li><li>Kuva: kokonainen sivu teksteineen, taulukoineen ja graafisine elementteineen.</li><li>Kuva ja teksti: sivun visuaalinen ilme ja tekstisisältö yhdistetään yhteen esitykseen.</li></ul><p>Kysely ja asiakirja koodataan toisistaan riippumatta. Kokoelma voidaan siis käsitellä ennakkoon ja vektorit tallentaa lähtösivujen kanssa, jolloin uudelle kysymykselle lasketaan vain kyselyvektori. Vektorien samankaltaisuus auttaa valitsemaan aineistot merkityksen perusteella. Kyselyn ja asiakirjan tekstiroolit eroavat, mikä on tärkeää säilyttää aineiston valmistelussa.</p><h4>Esityksen koko ja syötteen pituus</h4><p>Jokainen syöte muuntuu yhdeksi vektoriksi, jonka ulottuvuus on enintään 2048 lukua. Tekstitilan budjetti on 8192 tokenia. Valmistajan kuvan ja tekstin yhdistävälle visuaaliselle menetelmälle kuvataan 10240 tokenin yhteisbudjetti, johon kuuluvat molemmat osat; tämä ei ole Ailoot-menetelmän tekstiraja. Kuva jaetaan osiin: kuvatussa konfiguraatiossa sallitaan enintään kuusi osaa ja pienennetty kopio koko sivusta, yhteensä noin 1792 visuaalista tokenia. Pitkät tekstit on jaettava tai lyhennettävä.</p><p>Kieliosa perustuu Llama 3.2 1B -malliin ja kuvaosa SigLIP2-malliin. Ne yhdistyvät enkooderiksi, joka keskiarvoistaa syötetokenien esitykset ja tuottaa yhden vektorin. Kontrastiivinen koulutus lähentää kysymystä sopivaan sivuun ja etäännyttää sitä epäolennaisista aineistoista. Haku on edelleen todennäköisyyspohjaista: vektorien läheisyys ei takaa, että valittu jakso sisältää oikean vastauksen.</p>",
  "aboutText": "### Sopivan sivun löytäminen kysymyksen perusteella\n\nNVIDIA kehitti Llama Nemotron Embed VL 1B v2 -mallin kysymykseen vastaamista tukevien aineistojen hakuun. Kysely annetaan tekstinä. Ailootin nykyisessä luettelossa mallille on tarjolla tekstisyöte: kysymys ja aineisto koodataan tekstinä. Valmistaja kuvaa myös asiakirjan sivukuvana tai kuvana yhdessä poimitun tekstin kanssa. Nämä visuaaliset vaihtoehdot vaativat erillisen kuvia tukevan menetelmän. Sopivalla syötteellä malli esittää taulukot, kuvaajat ja infografiikan yhteisessä vektoriavaruudessa.\n\nHaku sopii suuren asiakirjakokoelman kysymys-vastausavustajiin, sisäisiin käsikirjoihin ja tutkimusaineistoihin. Koodauksen tulos on numeerinen vektori. Löydetty sivu tai jakso voidaan antaa vastausta muodostavalle mallille: Embed VL itse hoitaa kontekstin hakuvaiheen.\n\n### Valmistajan asiakirjavaihtoehdot\n\n- Tekstiasiakirja: erillinen osio, jakso tai jo tunnistettu sivuteksti.\n- Kuva: kokonainen sivu teksteineen, taulukoineen ja graafisine elementteineen.\n- Kuva ja teksti: sivun visuaalinen ilme ja tekstisisältö yhdistetään yhteen esitykseen.\n\nKysely ja asiakirja koodataan toisistaan riippumatta. Kokoelma voidaan siis käsitellä ennakkoon ja vektorit tallentaa lähtösivujen kanssa, jolloin uudelle kysymykselle lasketaan vain kyselyvektori. Vektorien samankaltaisuus auttaa valitsemaan aineistot merkityksen perusteella. Kyselyn ja asiakirjan tekstiroolit eroavat, mikä on tärkeää säilyttää aineiston valmistelussa.\n\n### Esityksen koko ja syötteen pituus\n\nJokainen syöte muuntuu yhdeksi vektoriksi, jonka ulottuvuus on enintään 2048 lukua. Tekstitilan budjetti on 8192 tokenia. Valmistajan kuvan ja tekstin yhdistävälle visuaaliselle menetelmälle kuvataan 10240 tokenin yhteisbudjetti, johon kuuluvat molemmat osat; tämä ei ole Ailoot-menetelmän tekstiraja. Kuva jaetaan osiin: kuvatussa konfiguraatiossa sallitaan enintään kuusi osaa ja pienennetty kopio koko sivusta, yhteensä noin 1792 visuaalista tokenia. Pitkät tekstit on jaettava tai lyhennettävä.\n\nKieliosa perustuu Llama 3.2 1B -malliin ja kuvaosa SigLIP2-malliin. Ne yhdistyvät enkooderiksi, joka keskiarvoistaa syötetokenien esitykset ja tuottaa yhden vektorin. Kontrastiivinen koulutus lähentää kysymystä sopivaan sivuun ja etäännyttää sitä epäolennaisista aineistoista. Haku on edelleen todennäköisyyspohjaista: vektorien läheisyys ei takaa, että valittu jakso sisältää oikean vastauksen.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "b23f5155d99a77e33f1b1cb2d4035e34ee4322f8b36e93704a4a8bb58c432f53",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fi",
  "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=\"Sulje\">×</button></div><div class=\"idline\"><span>NVIDIA /</span><code>nvidia/llama-nemotron-embed-vl-1b-v2</code><button type=\"button\" id=\"copy-id\">Kopioi ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Mallikortin osiot\"><button type=\"button\" data-card-jump=\"overview\">Aloitus</button><button type=\"button\" data-card-jump=\"methods\">Syötteet &amp; menetelmät</button><button type=\"button\" data-card-jump=\"pricing\">Hinnoittelu</button><button type=\"button\" data-card-jump=\"examples\">Esimerkit</button><button type=\"button\" data-card-jump=\"results\">Tulokset</button><button type=\"button\" data-card-jump=\"aliases\">Aliakset</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-menetelmät\"><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\">Vektoriesitykset</button></div><div class=\"idline\"><label for=\"card-model-id\">Mallin ID</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\">Aloitus</h3><p class=\"mdesc-full\">Llama Nemotron Embed VL v2 luo vektoreita asiakirjojen semanttiseen hakuun. Ailootin nykyisessä luettelossa kyselyille ja aineistoille on tarjolla tekstisyöte.</p><dl class=\"card-io\" data-card-io><div><dt>Hyväksytyt syötteet</dt><dd>Teksti</dd></div><div><dt>Tulokset</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>Tietoa mallista</summary><p class=\"note-s\" data-model-method-boundary>Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.</p><div class=\"mabout\" id=\"m-about\"><h4>Sopivan sivun löytäminen kysymyksen perusteella</h4><p>NVIDIA kehitti Llama Nemotron Embed VL 1B v2 -mallin kysymykseen vastaamista tukevien aineistojen hakuun. Kysely annetaan tekstinä. Ailootin nykyisessä luettelossa mallille on tarjolla tekstisyöte: kysymys ja aineisto koodataan tekstinä. Valmistaja kuvaa myös asiakirjan sivukuvana tai kuvana yhdessä poimitun tekstin kanssa. Nämä visuaaliset vaihtoehdot vaativat erillisen kuvia tukevan menetelmän. Sopivalla syötteellä malli esittää taulukot, kuvaajat ja infografiikan yhteisessä vektoriavaruudessa.</p><p>Haku sopii suuren asiakirjakokoelman kysymys-vastausavustajiin, sisäisiin käsikirjoihin ja tutkimusaineistoihin. Koodauksen tulos on numeerinen vektori. Löydetty sivu tai jakso voidaan antaa vastausta muodostavalle mallille: Embed VL itse hoitaa kontekstin hakuvaiheen.</p><h4>Valmistajan asiakirjavaihtoehdot</h4><ul><li>Tekstiasiakirja: erillinen osio, jakso tai jo tunnistettu sivuteksti.</li><li>Kuva: kokonainen sivu teksteineen, taulukoineen ja graafisine elementteineen.</li><li>Kuva ja teksti: sivun visuaalinen ilme ja tekstisisältö yhdistetään yhteen esitykseen.</li></ul><p>Kysely ja asiakirja koodataan toisistaan riippumatta. Kokoelma voidaan siis käsitellä ennakkoon ja vektorit tallentaa lähtösivujen kanssa, jolloin uudelle kysymykselle lasketaan vain kyselyvektori. Vektorien samankaltaisuus auttaa valitsemaan aineistot merkityksen perusteella. Kyselyn ja asiakirjan tekstiroolit eroavat, mikä on tärkeää säilyttää aineiston valmistelussa.</p><h4>Esityksen koko ja syötteen pituus</h4><p>Jokainen syöte muuntuu yhdeksi vektoriksi, jonka ulottuvuus on enintään 2048 lukua. Tekstitilan budjetti on 8192 tokenia. Valmistajan kuvan ja tekstin yhdistävälle visuaaliselle menetelmälle kuvataan 10240 tokenin yhteisbudjetti, johon kuuluvat molemmat osat; tämä ei ole Ailoot-menetelmän tekstiraja. Kuva jaetaan osiin: kuvatussa konfiguraatiossa sallitaan enintään kuusi osaa ja pienennetty kopio koko sivusta, yhteensä noin 1792 visuaalista tokenia. Pitkät tekstit on jaettava tai lyhennettävä.</p><p>Kieliosa perustuu Llama 3.2 1B -malliin ja kuvaosa SigLIP2-malliin. Ne yhdistyvät enkooderiksi, joka keskiarvoistaa syötetokenien esitykset ja tuottaa yhden vektorin. Kontrastiivinen koulutus lähentää kysymystä sopivaan sivuun ja etäännyttää sitä epäolennaisista aineistoista. Haku on edelleen todennäköisyyspohjaista: vektorien läheisyys ei takaa, että valittu jakso sisältää oikean vastauksen.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Saatavilla Ailootissa · syötteet &amp; menetelmät</h3><details class=\"card-method\" open><summary><b>Ailoot · Vektoriesitykset</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Syötetyypit</dt><dd><code>text</code></dd></div><div><dt>Tulostyypit</dt><dd><code>embedding</code></dd></div><div><dt>Konteksti</dt><dd>4 096 tokens</dd></div><div><dt>Tulosteen muoto</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Kenttä</th><th>Tyyppi</th><th>Vaatimus</th><th>Arvot &amp; rajat</th><th>Oletus</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>nvidia/llama-nemotron-embed-vl-1b-v2</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string|string[]</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Kohteiden vähimmäismäärä: 1</div><div>Ehdot: Jokaisen merkkijonon on oltava ei-tyhjä reunojen tyhjemerkkien poiston jälkeen; data-URI:t hylätään; hyväksytty budjetti mittaa asiaankuuluvia UTF8-tavuja.</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">input_type</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>query, passage</div></td><td data-cell-label=\"Oletus\" data-default=\"known\"><span class=\"card-cell-label\">Oletus</span>query</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>float, base64</div></td><td data-cell-label=\"Oletus\" data-default=\"known\"><span class=\"card-cell-label\">Oletus</span>float</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">truncate</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>NONE, START, END</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>integer</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Vähimmäismäärä: 1</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Syöteaineistojen yhdistelmät</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Menetelmän parametrit ja elinkaari</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametri</th><th>Sopimus</th></tr></thead><tbody><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>material_types</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>text</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>required</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>model, input</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>optional_controls</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>null</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>content_type</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>application/json</td></tr></tbody></table></div><p>Elinkaari: <code>exact retained published method</code></p><p class=\"note-s\">Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Hinnoittelu</h3><h4>Ailoot-menetelmien hinnat</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Vektoriesitykset</b><code>POST /v1/embeddings</code></header><dl><div><dt>Syöte</dt><dd>0,0001 $ <em>/ 1K</em></dd></div></dl></section><p class=\"note-s\">Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. <a href=\"/docs/fi/billing/reserve/\">Varauksen ja lopullisen veloituksen toiminta →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Esimerkkipyynnöt</h3><h4>Ailoot · Vektoriesitykset</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Koodivaihtoehdot\"><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\">Vektoriesityksen esimerkki</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopioi koodi\"><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\">Vastaanota ja tallenna tulokset</h3><h4>Ailoot · Vektoriesitykset</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Säilytä kaikki valmistuneet tulokset</h5><p class=\"note-s\">Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.</p><p class=\"note-s\">Pura base64-vektorit vain, jos kyseistä muotoa pyydettiin; säilytä jokainen vektori ja sen alkuperäinen indeksi.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jos alkuperäinen vastaus on tarkistettava</h5><p class=\"note-s\">Uutta upotustehtävien päätepistettä ei oteta käyttöön.</p></div><details class=\"card-about\" data-output-fields><summary>Vastauksen kentät</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Kenttä</th><th>Tyyppi</th></tr></thead><tbody><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>integer</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>finite float[]|base64 float32 vector</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>string</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Virheet ja seuraavat vaiheet</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Vastaus</th><th>Ehto</th><th>Seuraava vaihe</th></tr></thead><tbody><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Virheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Korjaa ilmoitetut kentät ennen uutta luontipyyntöä.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliakset</h3><h4>Mallin aliakset</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>Menetelmäpolkujen aliakset</h4><p class=\"note-s\">Käytä yllä näytettyjä menetelmäpolkuja.</p><h4>Liittyvät kutsujan ID:t</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": "Virheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo",
                "http_status": 400,
                "recovery": "Korjaa ilmoitetut kentät ennen uutta luontipyyntöä.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Uutta upotustehtävien päätepistettä ei oteta käyttöön."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Pura base64-vektorit vain, jos kyseistä muotoa pyydettiin; säilytä jokainen vektori ja sen alkuperäinen indeksi.",
              "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": "Jokaisen merkkijonon on oltava ei-tyhjä reunojen tyhjemerkkien poiston jälkeen; data-URI:t hylätään; hyväksytty budjetti mittaa asiaankuuluvia UTF8-tavuja.",
                "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": [
            "Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä."
          ],
          "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": "Vektoriesitykset",
        "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=\"Sulje\">×</button></div><div class=\"idline\"><span>NVIDIA /</span><code>nemotron-embed-vl</code><button type=\"button\" id=\"copy-id\">Kopioi ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Mallikortin osiot\"><button type=\"button\" data-card-jump=\"overview\">Aloitus</button><button type=\"button\" data-card-jump=\"methods\">Syötteet &amp; menetelmät</button><button type=\"button\" data-card-jump=\"pricing\">Hinnoittelu</button><button type=\"button\" data-card-jump=\"examples\">Esimerkit</button><button type=\"button\" data-card-jump=\"results\">Tulokset</button><button type=\"button\" data-card-jump=\"aliases\">Aliakset</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-menetelmät\"><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\">Vektoriesitykset</button></div><div class=\"idline\"><label for=\"card-model-id\">Mallin ID</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\">Aloitus</h3><p class=\"mdesc-full\">Llama Nemotron Embed VL v2 luo vektoreita asiakirjojen semanttiseen hakuun. Ailootin nykyisessä luettelossa kyselyille ja aineistoille on tarjolla tekstisyöte.</p><dl class=\"card-io\" data-card-io><div><dt>Hyväksytyt syötteet</dt><dd>Teksti</dd></div><div><dt>Tulokset</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>Tietoa mallista</summary><p class=\"note-s\" data-model-method-boundary>Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.</p><div class=\"mabout\" id=\"m-about\"><h4>Sopivan sivun löytäminen kysymyksen perusteella</h4><p>NVIDIA kehitti Llama Nemotron Embed VL 1B v2 -mallin kysymykseen vastaamista tukevien aineistojen hakuun. Kysely annetaan tekstinä. Ailootin nykyisessä luettelossa mallille on tarjolla tekstisyöte: kysymys ja aineisto koodataan tekstinä. Valmistaja kuvaa myös asiakirjan sivukuvana tai kuvana yhdessä poimitun tekstin kanssa. Nämä visuaaliset vaihtoehdot vaativat erillisen kuvia tukevan menetelmän. Sopivalla syötteellä malli esittää taulukot, kuvaajat ja infografiikan yhteisessä vektoriavaruudessa.</p><p>Haku sopii suuren asiakirjakokoelman kysymys-vastausavustajiin, sisäisiin käsikirjoihin ja tutkimusaineistoihin. Koodauksen tulos on numeerinen vektori. Löydetty sivu tai jakso voidaan antaa vastausta muodostavalle mallille: Embed VL itse hoitaa kontekstin hakuvaiheen.</p><h4>Valmistajan asiakirjavaihtoehdot</h4><ul><li>Tekstiasiakirja: erillinen osio, jakso tai jo tunnistettu sivuteksti.</li><li>Kuva: kokonainen sivu teksteineen, taulukoineen ja graafisine elementteineen.</li><li>Kuva ja teksti: sivun visuaalinen ilme ja tekstisisältö yhdistetään yhteen esitykseen.</li></ul><p>Kysely ja asiakirja koodataan toisistaan riippumatta. Kokoelma voidaan siis käsitellä ennakkoon ja vektorit tallentaa lähtösivujen kanssa, jolloin uudelle kysymykselle lasketaan vain kyselyvektori. Vektorien samankaltaisuus auttaa valitsemaan aineistot merkityksen perusteella. Kyselyn ja asiakirjan tekstiroolit eroavat, mikä on tärkeää säilyttää aineiston valmistelussa.</p><h4>Esityksen koko ja syötteen pituus</h4><p>Jokainen syöte muuntuu yhdeksi vektoriksi, jonka ulottuvuus on enintään 2048 lukua. Tekstitilan budjetti on 8192 tokenia. Valmistajan kuvan ja tekstin yhdistävälle visuaaliselle menetelmälle kuvataan 10240 tokenin yhteisbudjetti, johon kuuluvat molemmat osat; tämä ei ole Ailoot-menetelmän tekstiraja. Kuva jaetaan osiin: kuvatussa konfiguraatiossa sallitaan enintään kuusi osaa ja pienennetty kopio koko sivusta, yhteensä noin 1792 visuaalista tokenia. Pitkät tekstit on jaettava tai lyhennettävä.</p><p>Kieliosa perustuu Llama 3.2 1B -malliin ja kuvaosa SigLIP2-malliin. Ne yhdistyvät enkooderiksi, joka keskiarvoistaa syötetokenien esitykset ja tuottaa yhden vektorin. Kontrastiivinen koulutus lähentää kysymystä sopivaan sivuun ja etäännyttää sitä epäolennaisista aineistoista. Haku on edelleen todennäköisyyspohjaista: vektorien läheisyys ei takaa, että valittu jakso sisältää oikean vastauksen.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Saatavilla Ailootissa · syötteet &amp; menetelmät</h3><details class=\"card-method\" open><summary><b>Ailoot · Vektoriesitykset</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Syötetyypit</dt><dd><code>text</code></dd></div><div><dt>Tulostyypit</dt><dd><code>embedding</code></dd></div><div><dt>Konteksti</dt><dd>4 096 tokens</dd></div><div><dt>Tulosteen muoto</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Kenttä</th><th>Tyyppi</th><th>Vaatimus</th><th>Arvot &amp; rajat</th><th>Oletus</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>nemotron-embed-vl</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string|string[]</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Kohteiden vähimmäismäärä: 1</div><div>Ehdot: Jokaisen merkkijonon on oltava ei-tyhjä reunojen tyhjemerkkien poiston jälkeen; data-URI:t hylätään; hyväksytty budjetti mittaa asiaankuuluvia UTF8-tavuja.</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">input_type</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>query, passage</div></td><td data-cell-label=\"Oletus\" data-default=\"known\"><span class=\"card-cell-label\">Oletus</span>query</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>float, base64</div></td><td data-cell-label=\"Oletus\" data-default=\"known\"><span class=\"card-cell-label\">Oletus</span>float</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">truncate</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>NONE, START, END</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>integer</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Vähimmäismäärä: 1</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Syöteaineistojen yhdistelmät</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Menetelmän parametrit ja elinkaari</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametri</th><th>Sopimus</th></tr></thead><tbody><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>material_types</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>text</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>required</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>model, input</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>optional_controls</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>null</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>content_type</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>application/json</td></tr></tbody></table></div><p>Elinkaari: <code>exact retained published method</code></p><p class=\"note-s\">Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Hinnoittelu</h3><h4>Ailoot-menetelmien hinnat</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Vektoriesitykset</b><code>POST /v1/embeddings</code></header><dl><div><dt>Syöte</dt><dd>0,0001 $ <em>/ 1K</em></dd></div></dl></section><p class=\"note-s\">Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. <a href=\"/docs/fi/billing/reserve/\">Varauksen ja lopullisen veloituksen toiminta →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Esimerkkipyynnöt</h3><h4>Ailoot · Vektoriesitykset</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Koodivaihtoehdot\"><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\">Vektoriesityksen esimerkki</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopioi koodi\"><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\">Vastaanota ja tallenna tulokset</h3><h4>Ailoot · Vektoriesitykset</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Säilytä kaikki valmistuneet tulokset</h5><p class=\"note-s\">Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.</p><p class=\"note-s\">Pura base64-vektorit vain, jos kyseistä muotoa pyydettiin; säilytä jokainen vektori ja sen alkuperäinen indeksi.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jos alkuperäinen vastaus on tarkistettava</h5><p class=\"note-s\">Uutta upotustehtävien päätepistettä ei oteta käyttöön.</p></div><details class=\"card-about\" data-output-fields><summary>Vastauksen kentät</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Kenttä</th><th>Tyyppi</th></tr></thead><tbody><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>integer</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>finite float[]|base64 float32 vector</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>string</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Virheet ja seuraavat vaiheet</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Vastaus</th><th>Ehto</th><th>Seuraava vaihe</th></tr></thead><tbody><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Virheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Korjaa ilmoitetut kentät ennen uutta luontipyyntöä.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliakset</h3><h4>Mallin aliakset</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>Menetelmäpolkujen aliakset</h4><p class=\"note-s\">Käytä yllä näytettyjä menetelmäpolkuja.</p><h4>Liittyvät kutsujan ID:t</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": "Virheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo",
                "http_status": 400,
                "recovery": "Korjaa ilmoitetut kentät ennen uutta luontipyyntöä.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Uutta upotustehtävien päätepistettä ei oteta käyttöön."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Pura base64-vektorit vain, jos kyseistä muotoa pyydettiin; säilytä jokainen vektori ja sen alkuperäinen indeksi.",
              "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": "Jokaisen merkkijonon on oltava ei-tyhjä reunojen tyhjemerkkien poiston jälkeen; data-URI:t hylätään; hyväksytty budjetti mittaa asiaankuuluvia UTF8-tavuja.",
                "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": [
            "Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä."
          ],
          "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": "Vektoriesitykset",
        "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=\"Sulje\">×</button></div><div class=\"idline\"><span>NVIDIA /</span><code>nemotron-embed-vl-latest</code><button type=\"button\" id=\"copy-id\">Kopioi ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Mallikortin osiot\"><button type=\"button\" data-card-jump=\"overview\">Aloitus</button><button type=\"button\" data-card-jump=\"methods\">Syötteet &amp; menetelmät</button><button type=\"button\" data-card-jump=\"pricing\">Hinnoittelu</button><button type=\"button\" data-card-jump=\"examples\">Esimerkit</button><button type=\"button\" data-card-jump=\"results\">Tulokset</button><button type=\"button\" data-card-jump=\"aliases\">Aliakset</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-menetelmät\"><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\">Vektoriesitykset</button></div><div class=\"idline\"><label for=\"card-model-id\">Mallin ID</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\">Aloitus</h3><p class=\"mdesc-full\">Llama Nemotron Embed VL v2 luo vektoreita asiakirjojen semanttiseen hakuun. Ailootin nykyisessä luettelossa kyselyille ja aineistoille on tarjolla tekstisyöte.</p><dl class=\"card-io\" data-card-io><div><dt>Hyväksytyt syötteet</dt><dd>Teksti</dd></div><div><dt>Tulokset</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>Tietoa mallista</summary><p class=\"note-s\" data-model-method-boundary>Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.</p><div class=\"mabout\" id=\"m-about\"><h4>Sopivan sivun löytäminen kysymyksen perusteella</h4><p>NVIDIA kehitti Llama Nemotron Embed VL 1B v2 -mallin kysymykseen vastaamista tukevien aineistojen hakuun. Kysely annetaan tekstinä. Ailootin nykyisessä luettelossa mallille on tarjolla tekstisyöte: kysymys ja aineisto koodataan tekstinä. Valmistaja kuvaa myös asiakirjan sivukuvana tai kuvana yhdessä poimitun tekstin kanssa. Nämä visuaaliset vaihtoehdot vaativat erillisen kuvia tukevan menetelmän. Sopivalla syötteellä malli esittää taulukot, kuvaajat ja infografiikan yhteisessä vektoriavaruudessa.</p><p>Haku sopii suuren asiakirjakokoelman kysymys-vastausavustajiin, sisäisiin käsikirjoihin ja tutkimusaineistoihin. Koodauksen tulos on numeerinen vektori. Löydetty sivu tai jakso voidaan antaa vastausta muodostavalle mallille: Embed VL itse hoitaa kontekstin hakuvaiheen.</p><h4>Valmistajan asiakirjavaihtoehdot</h4><ul><li>Tekstiasiakirja: erillinen osio, jakso tai jo tunnistettu sivuteksti.</li><li>Kuva: kokonainen sivu teksteineen, taulukoineen ja graafisine elementteineen.</li><li>Kuva ja teksti: sivun visuaalinen ilme ja tekstisisältö yhdistetään yhteen esitykseen.</li></ul><p>Kysely ja asiakirja koodataan toisistaan riippumatta. Kokoelma voidaan siis käsitellä ennakkoon ja vektorit tallentaa lähtösivujen kanssa, jolloin uudelle kysymykselle lasketaan vain kyselyvektori. Vektorien samankaltaisuus auttaa valitsemaan aineistot merkityksen perusteella. Kyselyn ja asiakirjan tekstiroolit eroavat, mikä on tärkeää säilyttää aineiston valmistelussa.</p><h4>Esityksen koko ja syötteen pituus</h4><p>Jokainen syöte muuntuu yhdeksi vektoriksi, jonka ulottuvuus on enintään 2048 lukua. Tekstitilan budjetti on 8192 tokenia. Valmistajan kuvan ja tekstin yhdistävälle visuaaliselle menetelmälle kuvataan 10240 tokenin yhteisbudjetti, johon kuuluvat molemmat osat; tämä ei ole Ailoot-menetelmän tekstiraja. Kuva jaetaan osiin: kuvatussa konfiguraatiossa sallitaan enintään kuusi osaa ja pienennetty kopio koko sivusta, yhteensä noin 1792 visuaalista tokenia. Pitkät tekstit on jaettava tai lyhennettävä.</p><p>Kieliosa perustuu Llama 3.2 1B -malliin ja kuvaosa SigLIP2-malliin. Ne yhdistyvät enkooderiksi, joka keskiarvoistaa syötetokenien esitykset ja tuottaa yhden vektorin. Kontrastiivinen koulutus lähentää kysymystä sopivaan sivuun ja etäännyttää sitä epäolennaisista aineistoista. Haku on edelleen todennäköisyyspohjaista: vektorien läheisyys ei takaa, että valittu jakso sisältää oikean vastauksen.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Saatavilla Ailootissa · syötteet &amp; menetelmät</h3><details class=\"card-method\" open><summary><b>Ailoot · Vektoriesitykset</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Syötetyypit</dt><dd><code>text</code></dd></div><div><dt>Tulostyypit</dt><dd><code>embedding</code></dd></div><div><dt>Konteksti</dt><dd>4 096 tokens</dd></div><div><dt>Tulosteen muoto</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Kenttä</th><th>Tyyppi</th><th>Vaatimus</th><th>Arvot &amp; rajat</th><th>Oletus</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>nemotron-embed-vl-latest</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string|string[]</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Pakollinen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Kohteiden vähimmäismäärä: 1</div><div>Ehdot: Jokaisen merkkijonon on oltava ei-tyhjä reunojen tyhjemerkkien poiston jälkeen; data-URI:t hylätään; hyväksytty budjetti mittaa asiaankuuluvia UTF8-tavuja.</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">input_type</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>query, passage</div></td><td data-cell-label=\"Oletus\" data-default=\"known\"><span class=\"card-cell-label\">Oletus</span>query</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>float, base64</div></td><td data-cell-label=\"Oletus\" data-default=\"known\"><span class=\"card-cell-label\">Oletus</span>float</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">truncate</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>NONE, START, END</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>integer</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span><div>Vähimmäismäärä: 1</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>string</code></td><td data-cell-label=\"Vaatimus\"><span class=\"card-cell-label\">Vaatimus</span>Valinnainen</td><td data-cell-label=\"Arvot &amp; rajat\"><span class=\"card-cell-label\">Arvot &amp; rajat</span></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Syöteaineistojen yhdistelmät</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Menetelmän parametrit ja elinkaari</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametri</th><th>Sopimus</th></tr></thead><tbody><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>material_types</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>text</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>required</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>model, input</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>optional_controls</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>null</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>content_type</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>application/json</td></tr></tbody></table></div><p>Elinkaari: <code>exact retained published method</code></p><p class=\"note-s\">Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Hinnoittelu</h3><h4>Ailoot-menetelmien hinnat</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Vektoriesitykset</b><code>POST /v1/embeddings</code></header><dl><div><dt>Syöte</dt><dd>0,0001 $ <em>/ 1K</em></dd></div></dl></section><p class=\"note-s\">Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. <a href=\"/docs/fi/billing/reserve/\">Varauksen ja lopullisen veloituksen toiminta →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Esimerkkipyynnöt</h3><h4>Ailoot · Vektoriesitykset</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Koodivaihtoehdot\"><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\">Vektoriesityksen esimerkki</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopioi koodi\"><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\">Vastaanota ja tallenna tulokset</h3><h4>Ailoot · Vektoriesitykset</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Säilytä kaikki valmistuneet tulokset</h5><p class=\"note-s\">Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.</p><p class=\"note-s\">Pura base64-vektorit vain, jos kyseistä muotoa pyydettiin; säilytä jokainen vektori ja sen alkuperäinen indeksi.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Jos alkuperäinen vastaus on tarkistettava</h5><p class=\"note-s\">Uutta upotustehtävien päätepistettä ei oteta käyttöön.</p></div><details class=\"card-about\" data-output-fields><summary>Vastauksen kentät</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Kenttä</th><th>Tyyppi</th></tr></thead><tbody><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>integer</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>finite float[]|base64 float32 vector</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>string</td></tr><tr><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Virheet ja seuraavat vaiheet</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Vastaus</th><th>Ehto</th><th>Seuraava vaihe</th></tr></thead><tbody><tr><th data-cell-label=\"Vastaus\" scope=\"row\"><span class=\"card-cell-label\">Vastaus</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Ehto\"><span class=\"card-cell-label\">Ehto</span>Virheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo</td><td data-cell-label=\"Seuraava vaihe\"><span class=\"card-cell-label\">Seuraava vaihe</span>Korjaa ilmoitetut kentät ennen uutta luontipyyntöä.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliakset</h3><h4>Mallin aliakset</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>Menetelmäpolkujen aliakset</h4><p class=\"note-s\">Käytä yllä näytettyjä menetelmäpolkuja.</p><h4>Liittyvät kutsujan ID:t</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": "Virheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo",
                "http_status": 400,
                "recovery": "Korjaa ilmoitetut kentät ennen uutta luontipyyntöä.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Uutta upotustehtävien päätepistettä ei oteta käyttöön."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Pura base64-vektorit vain, jos kyseistä muotoa pyydettiin; säilytä jokainen vektori ja sen alkuperäinen indeksi.",
              "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": "Jokaisen merkkijonon on oltava ei-tyhjä reunojen tyhjemerkkien poiston jälkeen; data-URI:t hylätään; hyväksytty budjetti mittaa asiaankuuluvia UTF8-tavuja.",
                "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": [
            "Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä."
          ],
          "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": "Vektoriesitykset",
        "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": "40bf5ee869e5b8e755e432bfd53b7d3c6b9e3f812650efe02455cf459ee6e5fa",
    "input_html_sha256": "97cd3d2b282cafe9f7110880c8a5669929591d38712afb640c5f982e129f132f",
    "private_audit_sha256": "e11a2aaa32dfde08f7e950e3f7939e27afe46f21e65d4ecc0be61da40de509a0",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fi/nvidia-llama-nemotron-embed-vl-1b-v2/",
    "description": "Llama Nemotron Embed VL v2 luo vektoreita asiakirjojen semanttiseen hakuun. Ailootin nykyisessä luettelossa kyselyille ja aineistoille on tarjolla tekstisyöte.",
    "locale": "fi",
    "md_url": "https://ailoot.ai/models/fi/nvidia-llama-nemotron-embed-vl-1b-v2/index.md",
    "title": "Llama Nemotron Embed VL 1B v2 — Ailoot",
    "url": "https://ailoot.ai/models/fi/nvidia-llama-nemotron-embed-vl-1b-v2/"
  },
  "rawModel": {
    "about": "### Sopivan sivun löytäminen kysymyksen perusteella\n\nNVIDIA kehitti Llama Nemotron Embed VL 1B v2 -mallin kysymykseen vastaamista tukevien aineistojen hakuun. Kysely annetaan tekstinä. Ailootin nykyisessä luettelossa mallille on tarjolla tekstisyöte: kysymys ja aineisto koodataan tekstinä. Valmistaja kuvaa myös asiakirjan sivukuvana tai kuvana yhdessä poimitun tekstin kanssa. Nämä visuaaliset vaihtoehdot vaativat erillisen kuvia tukevan menetelmän. Sopivalla syötteellä malli esittää taulukot, kuvaajat ja infografiikan yhteisessä vektoriavaruudessa.\n\nHaku sopii suuren asiakirjakokoelman kysymys-vastausavustajiin, sisäisiin käsikirjoihin ja tutkimusaineistoihin. Koodauksen tulos on numeerinen vektori. Löydetty sivu tai jakso voidaan antaa vastausta muodostavalle mallille: Embed VL itse hoitaa kontekstin hakuvaiheen.\n\n### Valmistajan asiakirjavaihtoehdot\n\n- Tekstiasiakirja: erillinen osio, jakso tai jo tunnistettu sivuteksti.\n- Kuva: kokonainen sivu teksteineen, taulukoineen ja graafisine elementteineen.\n- Kuva ja teksti: sivun visuaalinen ilme ja tekstisisältö yhdistetään yhteen esitykseen.\n\nKysely ja asiakirja koodataan toisistaan riippumatta. Kokoelma voidaan siis käsitellä ennakkoon ja vektorit tallentaa lähtösivujen kanssa, jolloin uudelle kysymykselle lasketaan vain kyselyvektori. Vektorien samankaltaisuus auttaa valitsemaan aineistot merkityksen perusteella. Kyselyn ja asiakirjan tekstiroolit eroavat, mikä on tärkeää säilyttää aineiston valmistelussa.\n\n### Esityksen koko ja syötteen pituus\n\nJokainen syöte muuntuu yhdeksi vektoriksi, jonka ulottuvuus on enintään 2048 lukua. Tekstitilan budjetti on 8192 tokenia. Valmistajan kuvan ja tekstin yhdistävälle visuaaliselle menetelmälle kuvataan 10240 tokenin yhteisbudjetti, johon kuuluvat molemmat osat; tämä ei ole Ailoot-menetelmän tekstiraja. Kuva jaetaan osiin: kuvatussa konfiguraatiossa sallitaan enintään kuusi osaa ja pienennetty kopio koko sivusta, yhteensä noin 1792 visuaalista tokenia. Pitkät tekstit on jaettava tai lyhennettävä.\n\nKieliosa perustuu Llama 3.2 1B -malliin ja kuvaosa SigLIP2-malliin. Ne yhdistyvät enkooderiksi, joka keskiarvoistaa syötetokenien esitykset ja tuottaa yhden vektorin. Kontrastiivinen koulutus lähentää kysymystä sopivaan sivuun ja etäännyttää sitä epäolennaisista aineistoista. Haku on edelleen todennäköisyyspohjaista: vektorien läheisyys ei takaa, että valittu jakso sisältää oikean vastauksen.",
    "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": "Virheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo",
                "http_status": 400,
                "recovery": "Korjaa ilmoitetut kentät ennen uutta luontipyyntöä.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Uutta upotustehtävien päätepistettä ei oteta käyttöön."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Pura base64-vektorit vain, jos kyseistä muotoa pyydettiin; säilytä jokainen vektori ja sen alkuperäinen indeksi.",
              "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": "Jokaisen merkkijonon on oltava ei-tyhjä reunojen tyhjemerkkien poiston jälkeen; data-URI:t hylätään; hyväksytty budjetti mittaa asiaankuuluvia UTF8-tavuja.",
                "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": [
            "Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä."
          ],
          "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": "Vektoriesitykset",
        "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": "Virheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo",
                "http_status": 400,
                "recovery": "Korjaa ilmoitetut kentät ennen uutta luontipyyntöä.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Uutta upotustehtävien päätepistettä ei oteta käyttöön."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Pura base64-vektorit vain, jos kyseistä muotoa pyydettiin; säilytä jokainen vektori ja sen alkuperäinen indeksi.",
              "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": "Jokaisen merkkijonon on oltava ei-tyhjä reunojen tyhjemerkkien poiston jälkeen; data-URI:t hylätään; hyväksytty budjetti mittaa asiaankuuluvia UTF8-tavuja.",
                "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": [
            "Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä."
          ],
          "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": "Vektoriesitykset",
        "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": "Virheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo",
                "http_status": 400,
                "recovery": "Korjaa ilmoitetut kentät ennen uutta luontipyyntöä.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Uutta upotustehtävien päätepistettä ei oteta käyttöön."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "nonempty string",
                  "nonempty string[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Pura base64-vektorit vain, jos kyseistä muotoa pyydettiin; säilytä jokainen vektori ja sen alkuperäinen indeksi.",
              "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": "Jokaisen merkkijonon on oltava ei-tyhjä reunojen tyhjemerkkien poiston jälkeen; data-URI:t hylätään; hyväksytty budjetti mittaa asiaankuuluvia UTF8-tavuja.",
                "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": [
            "Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä."
          ],
          "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": "Vektoriesitykset",
        "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 luo vektoreita asiakirjojen semanttiseen hakuun. Ailootin nykyisessä luettelossa kyselyille ja aineistoille on tarjolla tekstisyöte."
  },
  "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 luo vektoreita asiakirjojen semanttiseen hakuun. Ailootin nykyisessä luettelossa kyselyille ja aineistoille on tarjolla tekstisyöte.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "9122e7ae5a08a85423cda444c6d9d780961ffedcc34fa0f31d571e78eaeef0ee",
    "renderer_sha256": "303a59603e2bc29ba8fda690e95fd32cec68de223d92e26054a88babff801dd7"
  },
  "sourceRevision": "fcfe63af696984cde3e4b31e917a9def8b9e9eebda9349a799ca4674ff3a07b4"
}
