{
  "aboutHtml": "<p>pplx-embed-v1-4B on Perplexityn v1-perheen suurempi itsenäinen tekstinupotusversio. Se esittää kyselyt tai asiakirjat 2560-ulotteisina vektoreina semanttista hakua ja tiedonhakua varten. Valmistaja rakentaa perheen Qwen3:n pohjalle diffuusiota käyttävällä jatkoesikoulutuksella ja käyttää tekstiesitykseen keskiarvopoolingia. Tämä itsenäinen kooderi eroaa pplx-embed-context-v1:stä, joka esittää asiakirjapaloja ympäröivän kontekstin avulla.</p><h4>Upota todellinen teksti suoraan</h4><p>Malli ei edellytä ohjemerkkijonoa tai query/passage-etuliitettä. Valmistele esitettävä teksti sen sijaan, että lisäisit toiselta malliperheeltä lainatun roolikäytännön. Hakukokoelma voi sisältää lähdeasiakirjoja, kohdennettuja katkelmia tai lyhyitä tekstitietueita. Säilytä kunkin kohteen alkuperäinen sanamuoto ja tunniste vektorin rinnalla, jotta hakutulos pysyy luettavana ja jäljitettävänä.</p><p>Käytännön tehtävänä voi olla teknisen selityksen osion hakeminen sen ehtoja koskevaan kysymykseen. Säilytä osion otsikko, sääntö ja poikkeus yhdessä. Kyselyn sanamuoto upotetaan itsenäisesti ja sitä verrataan sitten valmisteltuihin korpusesityksiin. Myöhempi RAG-vaihe käyttää lähdemateriaalina palautettua katkelmatekstiä, ei itse vektoria.</p><h4>Natiivi esitys ja vertailu</h4><p>Valmistaja ilmoittaa nimenomaisesti, että natiivit upotukset ovat normalisoimattomia ja INT8-kvantisoituja. Vertaa niitä kosinisamankaltaisuudella. Raaka pistetulo näistä normalisoimattomista arvoista ei ole dokumentoidusti sama asia kuin kosinivertailu. Esitystyyppi ja samankaltaisuusfunktio kuuluvat siis yhteen valittaessa, miten hakuindeksi tallentaa ja vertaa tulosta.</p><p>Mallikortti dokumentoi myös binäärituloksen ja merkitsee Matryoshka-esitysten tuen. Binäärikomponentit ja niiden pakattu tallennus eroavat tavallisista liukulukutaulukoista, joten indeksin on tulkittava valittu esitys. Täysi upotusulottuvuus kuvaa esityksen komponentteja, ei jokaisen koodauksen tavumäärää. Pidä ulottuvuus ja tulostyyppi yhtenäisinä kysely- ja asiakirjapuolella.</p><h4>Pituus ja asiakirjarajat</h4><p>Mallin julkaistu konteksti on 32K. Se mahdollistaa huomattavan tekstimäärän esittämisen, mutta katkelmien tarkkuustason tulisi silti vastata sitä, mitä haun on tarkoitus palauttaa. Kokonainen osio voi säilyttää määritelmän ja sen rajaukset; kohdennettu ote voi osoittaa suoraan ohjeeseen. Liian suuri materiaali tulisi valmistella valitun syöteikkunan mukaan sen sijaan, että olettaisit pois jäävän lopun pysyvän esitettynä.</p><p>Säilytä pääasiakirjan tunniste ja lähdeversio vektorin ulkopuolella. Jos teksti muuttuu, päivitä vastaava korpusesitys ja säilytä yhteys uuteen lähteeseen. Tutki useita kieliä sisältävässä kokoelmassa todellisia kysymyksiä ja ehdokaskatkelmia tarkoitetulla kieliyhdistelmällä sen sijaan, että päättelisit saman relevanssin pelkän monikielinen-nimikkeen perusteella.</p><h4>Itsenäiset ja kontekstuaaliset versiot</h4><p>v1-4B-malli upottaa jokaisen annetun tekstin itsenäisesti. Useiden merkkijonojen lisääminen erään ei muuta sitä erilliseksi asiakirjapalojen context-v1-kooderiksi. Kun ympäröivän asiakirjan on muovattava kunkin palan esitystä, tehtävä kuuluu kontekstuaaliselle versiolle ja sen omalle valmistelulle.</p><p>Pienempi pplx-embed-v1-0.6B palauttaa 1024 ulottuvuutta ja tämä 4B-versio 2560. Pidä niiden täsmälliset identiteetit ja indeksiesitykset erillään, ellei dokumentoitua yhteensopivuuspolkua ole osoitettu. Hyödyllinen tulos on tässä itsenäinen kysely- tai lähdetekstivektori, jonka kosinivertailu ja valittu kvantisoitu esitys kirjataan tiedonhakutehtävää varten.</p>",
  "aboutText": "pplx-embed-v1-4B on Perplexityn v1-perheen suurempi itsenäinen tekstinupotusversio. Se esittää kyselyt tai asiakirjat 2560-ulotteisina vektoreina semanttista hakua ja tiedonhakua varten. Valmistaja rakentaa perheen Qwen3:n pohjalle diffuusiota käyttävällä jatkoesikoulutuksella ja käyttää tekstiesitykseen keskiarvopoolingia. Tämä itsenäinen kooderi eroaa pplx-embed-context-v1:stä, joka esittää asiakirjapaloja ympäröivän kontekstin avulla.\n\n### Upota todellinen teksti suoraan\n\nMalli ei edellytä ohjemerkkijonoa tai query/passage-etuliitettä. Valmistele esitettävä teksti sen sijaan, että lisäisit toiselta malliperheeltä lainatun roolikäytännön. Hakukokoelma voi sisältää lähdeasiakirjoja, kohdennettuja katkelmia tai lyhyitä tekstitietueita. Säilytä kunkin kohteen alkuperäinen sanamuoto ja tunniste vektorin rinnalla, jotta hakutulos pysyy luettavana ja jäljitettävänä.\n\nKäytännön tehtävänä voi olla teknisen selityksen osion hakeminen sen ehtoja koskevaan kysymykseen. Säilytä osion otsikko, sääntö ja poikkeus yhdessä. Kyselyn sanamuoto upotetaan itsenäisesti ja sitä verrataan sitten valmisteltuihin korpusesityksiin. Myöhempi RAG-vaihe käyttää lähdemateriaalina palautettua katkelmatekstiä, ei itse vektoria.\n\n### Natiivi esitys ja vertailu\n\nValmistaja ilmoittaa nimenomaisesti, että natiivit upotukset ovat normalisoimattomia ja INT8-kvantisoituja. Vertaa niitä kosinisamankaltaisuudella. Raaka pistetulo näistä normalisoimattomista arvoista ei ole dokumentoidusti sama asia kuin kosinivertailu. Esitystyyppi ja samankaltaisuusfunktio kuuluvat siis yhteen valittaessa, miten hakuindeksi tallentaa ja vertaa tulosta.\n\nMallikortti dokumentoi myös binäärituloksen ja merkitsee Matryoshka-esitysten tuen. Binäärikomponentit ja niiden pakattu tallennus eroavat tavallisista liukulukutaulukoista, joten indeksin on tulkittava valittu esitys. Täysi upotusulottuvuus kuvaa esityksen komponentteja, ei jokaisen koodauksen tavumäärää. Pidä ulottuvuus ja tulostyyppi yhtenäisinä kysely- ja asiakirjapuolella.\n\n### Pituus ja asiakirjarajat\n\nMallin julkaistu konteksti on 32K. Se mahdollistaa huomattavan tekstimäärän esittämisen, mutta katkelmien tarkkuustason tulisi silti vastata sitä, mitä haun on tarkoitus palauttaa. Kokonainen osio voi säilyttää määritelmän ja sen rajaukset; kohdennettu ote voi osoittaa suoraan ohjeeseen. Liian suuri materiaali tulisi valmistella valitun syöteikkunan mukaan sen sijaan, että olettaisit pois jäävän lopun pysyvän esitettynä.\n\nSäilytä pääasiakirjan tunniste ja lähdeversio vektorin ulkopuolella. Jos teksti muuttuu, päivitä vastaava korpusesitys ja säilytä yhteys uuteen lähteeseen. Tutki useita kieliä sisältävässä kokoelmassa todellisia kysymyksiä ja ehdokaskatkelmia tarkoitetulla kieliyhdistelmällä sen sijaan, että päättelisit saman relevanssin pelkän monikielinen-nimikkeen perusteella.\n\n### Itsenäiset ja kontekstuaaliset versiot\n\nv1-4B-malli upottaa jokaisen annetun tekstin itsenäisesti. Useiden merkkijonojen lisääminen erään ei muuta sitä erilliseksi asiakirjapalojen context-v1-kooderiksi. Kun ympäröivän asiakirjan on muovattava kunkin palan esitystä, tehtävä kuuluu kontekstuaaliselle versiolle ja sen omalle valmistelulle.\n\nPienempi pplx-embed-v1-0.6B palauttaa 1024 ulottuvuutta ja tämä 4B-versio 2560. Pidä niiden täsmälliset identiteetit ja indeksiesitykset erillään, ellei dokumentoitua yhteensopivuuspolkua ole osoitettu. Hyödyllinen tulos on tässä itsenäinen kysely- tai lähdetekstivektori, jonka kosinivertailu ja valittu kvantisoitu esitys kirjataan tiedonhakutehtävää varten.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "6bf3eaf47effbac5ca4f6e05ee27a515988477419120f96a8dd9a1717e2035dd",
    "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\">•</span><h2 id=\"sheet-title\">Perplexity: Embed V1 4B</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sulje\">×</button></div><div class=\"idline\"><span>Perplexity /</span><code>perplexity/pplx-embed-v1-4b</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=\"Ultra|embeddings|/v1/embeddings|perplexity%2Fpplx-embed-v1-4b\">Vektoriesitykset</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Aloitus</h3><p class=\"mdesc-full\">Perplexity pplx-embed-v1-4B koodaa itsenäiset tekstit 2560-ulotteisiksi tiedonhakuvektoreiksi 32K-kontekstilla. Se ei edellytä ohje-etuliitettä ja tuottaa natiivisti normalisoimattomia INT8-vektoriesityksiä, joita verrataan kosinisamankaltaisuudella.</p><dl class=\"card-io\" data-card-io><div><dt>Hyväksytyt syötteet</dt><dd>Teksti · token_ids</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\"><p>pplx-embed-v1-4B on Perplexityn v1-perheen suurempi itsenäinen tekstinupotusversio. Se esittää kyselyt tai asiakirjat 2560-ulotteisina vektoreina semanttista hakua ja tiedonhakua varten. Valmistaja rakentaa perheen Qwen3:n pohjalle diffuusiota käyttävällä jatkoesikoulutuksella ja käyttää tekstiesitykseen keskiarvopoolingia. Tämä itsenäinen kooderi eroaa pplx-embed-context-v1:stä, joka esittää asiakirjapaloja ympäröivän kontekstin avulla.</p><h4>Upota todellinen teksti suoraan</h4><p>Malli ei edellytä ohjemerkkijonoa tai query/passage-etuliitettä. Valmistele esitettävä teksti sen sijaan, että lisäisit toiselta malliperheeltä lainatun roolikäytännön. Hakukokoelma voi sisältää lähdeasiakirjoja, kohdennettuja katkelmia tai lyhyitä tekstitietueita. Säilytä kunkin kohteen alkuperäinen sanamuoto ja tunniste vektorin rinnalla, jotta hakutulos pysyy luettavana ja jäljitettävänä.</p><p>Käytännön tehtävänä voi olla teknisen selityksen osion hakeminen sen ehtoja koskevaan kysymykseen. Säilytä osion otsikko, sääntö ja poikkeus yhdessä. Kyselyn sanamuoto upotetaan itsenäisesti ja sitä verrataan sitten valmisteltuihin korpusesityksiin. Myöhempi RAG-vaihe käyttää lähdemateriaalina palautettua katkelmatekstiä, ei itse vektoria.</p><h4>Natiivi esitys ja vertailu</h4><p>Valmistaja ilmoittaa nimenomaisesti, että natiivit upotukset ovat normalisoimattomia ja INT8-kvantisoituja. Vertaa niitä kosinisamankaltaisuudella. Raaka pistetulo näistä normalisoimattomista arvoista ei ole dokumentoidusti sama asia kuin kosinivertailu. Esitystyyppi ja samankaltaisuusfunktio kuuluvat siis yhteen valittaessa, miten hakuindeksi tallentaa ja vertaa tulosta.</p><p>Mallikortti dokumentoi myös binäärituloksen ja merkitsee Matryoshka-esitysten tuen. Binäärikomponentit ja niiden pakattu tallennus eroavat tavallisista liukulukutaulukoista, joten indeksin on tulkittava valittu esitys. Täysi upotusulottuvuus kuvaa esityksen komponentteja, ei jokaisen koodauksen tavumäärää. Pidä ulottuvuus ja tulostyyppi yhtenäisinä kysely- ja asiakirjapuolella.</p><h4>Pituus ja asiakirjarajat</h4><p>Mallin julkaistu konteksti on 32K. Se mahdollistaa huomattavan tekstimäärän esittämisen, mutta katkelmien tarkkuustason tulisi silti vastata sitä, mitä haun on tarkoitus palauttaa. Kokonainen osio voi säilyttää määritelmän ja sen rajaukset; kohdennettu ote voi osoittaa suoraan ohjeeseen. Liian suuri materiaali tulisi valmistella valitun syöteikkunan mukaan sen sijaan, että olettaisit pois jäävän lopun pysyvän esitettynä.</p><p>Säilytä pääasiakirjan tunniste ja lähdeversio vektorin ulkopuolella. Jos teksti muuttuu, päivitä vastaava korpusesitys ja säilytä yhteys uuteen lähteeseen. Tutki useita kieliä sisältävässä kokoelmassa todellisia kysymyksiä ja ehdokaskatkelmia tarkoitetulla kieliyhdistelmällä sen sijaan, että päättelisit saman relevanssin pelkän monikielinen-nimikkeen perusteella.</p><h4>Itsenäiset ja kontekstuaaliset versiot</h4><p>v1-4B-malli upottaa jokaisen annetun tekstin itsenäisesti. Useiden merkkijonojen lisääminen erään ei muuta sitä erilliseksi asiakirjapalojen context-v1-kooderiksi. Kun ympäröivän asiakirjan on muovattava kunkin palan esitystä, tehtävä kuuluu kontekstuaaliselle versiolle ja sen omalle valmistelulle.</p><p>Pienempi pplx-embed-v1-0.6B palauttaa 1024 ulottuvuutta ja tämä 4B-versio 2560. Pidä niiden täsmälliset identiteetit ja indeksiesitykset erillään, ellei dokumentoitua yhteensopivuuspolkua ole osoitettu. Hyödyllinen tulos on tässä itsenäinen kysely- tai lähdetekstivektori, jonka kosinivertailu ja valittu kvantisoitu esitys kirjataan tiedonhakutehtävää varten.</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 Ultra · Vektoriesitykset</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Syötetyypit</dt><dd><code>text</code>, <code>token_ids</code></dd></div><div><dt>Tulostyypit</dt><dd><code>embedding</code></dd></div><div><dt>Konteksti</dt><dd>32 000 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>perplexity/pplx-embed-v1-4b</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[]|integer[]|integer[][]</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: Ei-tyhjä, yhdenmukaisista alkioista koostuva erä. Tokenien ID:t ovat ei-negatiivisia kokonaislukuja.</div><div>Syötebudjetti: Enimmäismäärä: 32 000 · Tekstiyksikkö: UTF8-tavut · Tokenyksikkö: Token-taulukon alkiot</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\">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</div></td><td data-cell-label=\"Oletus\" data-default=\"known\"><span class=\"card-cell-label\">Oletus</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><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>Ei tuettu</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=\"pass_through_metadata\"><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>json_value</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>Ehdot: Lähde sallii tämän JSON-metatietokentän; tarkka alkuperäisen palvelun semantiikka on mallikohtainen.</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>json_value</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>Ehdot: Lähde sallii tämän JSON-metatietokentän; tarkka alkuperäisen palvelun semantiikka on mallikohtainen.</div></td><td data-cell-label=\"Oletus\" data-default=\"unspecified\"><span class=\"card-cell-label\">Oletus</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Kenttä\" scope=\"row\"><span class=\"card-cell-label\">Kenttä</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>json_value</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>Ehdot: Lähde sallii tämän JSON-metatietokentän; tarkka alkuperäisen palvelun semantiikka on mallikohtainen.</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\">provider</code></th><td data-cell-label=\"Tyyppi\" data-field-type><span class=\"card-cell-label\">Tyyppi</span><code>object</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>Ehdot: provider.options hylätty</div></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>content_type</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>application/json</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>input_shapes</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[]</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>encoding_format</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>float</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>dimensions_override</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>false</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>max_input_budget_units</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>32000</td></tr><tr><th data-cell-label=\"Parametri\" scope=\"row\"><span class=\"card-cell-label\">Parametri</span><code>multimodal_objects</code></th><td data-cell-label=\"Sopimus\"><span class=\"card-cell-label\">Sopimus</span>false</td></tr><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, token_ids</td></tr></tbody></table></div><p>Elinkaari: <code>synchronous_json</code></p><p class=\"note-s\">Säilytä jokaisen vektorin indeksi ja ulottuvuus.</p><p class=\"note-s\">Mallin nimen multimodaalisuus ei tarkoita, että tämä nimenomainen reitti hyväksyisi kuvaolioita.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Hinnoittelu</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.</p><dl data-price-conditions><dt>Nopea tila</dt><dd>Vakiohinta <span class=\"note-s\">Kun nopea tila on valittu</span></dd><dt>Flex-tila</dt><dd>Vakiohinta <span class=\"note-s\">Kun flex-tila on valittu</span></dd><dt>Päättelyn enimmäisteho</dt><dd>Vakiohinta <span class=\"note-s\">Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-hinnat</h4><h4>Hinnat asetusten mukaan</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Asetukset</th><th>Hinnasto</th><th>Veloitus</th></tr></thead><tbody><tr><th data-cell-label=\"Asetukset\" scope=\"row\"><span class=\"card-cell-label\">Asetukset</span>Tokenien perushinnat</th><td data-cell-label=\"Hinnasto\"><span class=\"card-cell-label\">Hinnasto</span>Perushinta</td><td data-cell-label=\"Veloitus\"><span class=\"card-cell-label\">Veloitus</span><div><span>Syöte · Syötetokenit</span> <b>$0.00006</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Tuloste · Tulostokenit</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistin luku</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistiin kirjoitus</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div><div><span>Syöte · Välimuistiin kirjoitus, 1 tunti</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenia</span></div></td></tr></tbody></table></div></div><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 Ultra · 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-2193-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2193-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-2193-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2193-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</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-2193-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2193-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;perplexity/pplx-embed-v1-4b&quot;, &quot;input&quot;: [&quot;First document&quot;, &quot;Second document&quot;]}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/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 class=\"cg-pane\" id=\"model-code-2193-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2193-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.embeddings.create(model=&#39;perplexity/pplx-embed-v1-4b&#39;,input=[&quot;First document&quot;,&quot;Second document&quot;])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\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 Ultra · 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\">Säilytä jokainen vektori indekseineen. Vektorien määrän on vastattava syötteiden määrää; ulottuvuuksien on oltava yhdenmukaiset.</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\">object</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\">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\">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[]</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=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=perplexity%2Fpplx-embed-v1-4b&amp;route=Ultra&amp;caller=perplexity%2Fpplx-embed-v1-4b&amp;fmt=embeddings\"><code>perplexity/pplx-embed-v1-4b</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=perplexity%2Fpplx-embed-v1-4b&amp;route=Ultra&amp;caller=perplexity%2Fpplx-embed-v1-4b&amp;fmt=embeddings\"><code>perplexity/pplx-embed-v1-4b</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "perplexity/pplx-embed-v1-4b",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "perplexity/pplx-embed-v1-4b",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|perplexity%2Fpplx-embed-v1-4b",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every vector with its index. Vector count must equal input count; dimensions must be consistent.",
            "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": [
                  "string",
                  "string[]",
                  "nonnegative_integer_token_array",
                  "nonnegative_integer_token_array[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Säilytä jokainen vektori indekseineen. Vektorien määrän on vastattava syötteiden määrää; ulottuvuuksien on oltava yhdenmukaiset.",
              "default_dimensions": null,
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "perplexity/pplx-embed-v1-4b"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 32000,
                  "text_unit": "UTF8-tavut",
                  "token_unit": "Token-taulukon alkiot"
                },
                "conditions": "Ei-tyhjä, yhdenmukaisista alkioista koostuva erä. Tokenien ID:t ovat ei-negatiivisia kokonaislukuja.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]|integer[]|integer[][]"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "unsupported",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Lähde sallii tämän JSON-metatietokentän; tarkka alkuperäisen palvelun semantiikka on mallikohtainen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Lähde sallii tämän JSON-metatietokentän; tarkka alkuperäisen palvelun semantiikka on mallikohtainen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Lähde sallii tämän JSON-metatietokentän; tarkka alkuperäisen palvelun semantiikka on mallikohtainen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options hylätty",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mixed input kinds",
              "empty input",
              "image/audio/file objects",
              "encoding_format=base64",
              "dimensions override"
            ]
          },
          "hints": [
            "Säilytä jokaisen vektorin indeksi ja ulottuvuus.",
            "Mallin nimen multimodaalisuus ei tarkoita, että tämä nimenomainen reitti hyväksyisi kuvaolioita."
          ],
          "input": {
            "content_type": "application/json",
            "dimensions_override": false,
            "encoding_format": [
              "float"
            ],
            "input_shapes": [
              "string",
              "string[]",
              "nonnegative_integer_token_array",
              "nonnegative_integer_token_array[]"
            ],
            "material_types": [
              "text",
              "token_ids"
            ],
            "max_input_budget_units": 32000,
            "multimodal_objects": false,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_json",
            "unknown": "no embedding job endpoint inferred"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_embedding"
          ],
          "output": {
            "default_dimensions": null,
            "family": "embedding",
            "format": "json",
            "http_success": 200,
            "vectors": "one dense float vector per input; indices/model/usage validated"
          }
        },
        "ctx": 32000,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tokenien perushinnat",
            "units": [
              {
                "amount": "0.00006000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000006",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"perplexity/pplx-embed-v1-4b\", \"input\": [\"First document\", \"Second document\"]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/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": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='perplexity/pplx-embed-v1-4b',input=[\"First document\",\"Second document\"])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n",
            "label": "Python SDK · all vectors",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "embeddings",
        "hints": [
          "Keep every vector index and dimension.",
          "Multimodal model name does not admit image objects on this exact path."
        ],
        "http": "POST",
        "in": 0.06,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Nopea tila",
            "value": "Vakiohinta",
            "when": "Kun nopea tila on valittu"
          },
          {
            "label": "Flex-tila",
            "value": "Vakiohinta",
            "when": "Kun flex-tila on valittu"
          },
          {
            "label": "Päättelyn enimmäisteho",
            "value": "Vakiohinta",
            "when": "Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.00006000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000006",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "perplexity/pplx-embed-v1-4b",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00006000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000006",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "perplexity/pplx-embed-v1-4b",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "8afbfb074597e4ab844f441f8f033c3f619d9f9357170223346aece207941528",
    "input_html_sha256": "78f7fb319c34733c6e12b51284121908ece05180772676f1493f72221534b5ca",
    "private_audit_sha256": "628b922971be12c82a9b0fa1092b2c35cd2fc3d1dcdd1a3cbd6eb15a063efc4f",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fi/perplexity-pplx-embed-v1-4b/",
    "description": "Perplexity pplx-embed-v1-4B koodaa itsenäiset tekstit 2560-ulotteisiksi tiedonhakuvektoreiksi 32K-kontekstilla. Se ei edellytä ohje-etuliitettä ja tuottaa natiivisti normalisoimattomia INT8-vektoriesityksiä, joita verrataan kosinisamankaltaisuudella.",
    "locale": "fi",
    "md_url": "https://ailoot.ai/models/fi/perplexity-pplx-embed-v1-4b/index.md",
    "title": "Perplexity: Embed V1 4B — Ailoot",
    "url": "https://ailoot.ai/models/fi/perplexity-pplx-embed-v1-4b/"
  },
  "rawModel": {
    "about": "pplx-embed-v1-4B on Perplexityn v1-perheen suurempi itsenäinen tekstinupotusversio. Se esittää kyselyt tai asiakirjat 2560-ulotteisina vektoreina semanttista hakua ja tiedonhakua varten. Valmistaja rakentaa perheen Qwen3:n pohjalle diffuusiota käyttävällä jatkoesikoulutuksella ja käyttää tekstiesitykseen keskiarvopoolingia. Tämä itsenäinen kooderi eroaa pplx-embed-context-v1:stä, joka esittää asiakirjapaloja ympäröivän kontekstin avulla.\n\n### Upota todellinen teksti suoraan\n\nMalli ei edellytä ohjemerkkijonoa tai query/passage-etuliitettä. Valmistele esitettävä teksti sen sijaan, että lisäisit toiselta malliperheeltä lainatun roolikäytännön. Hakukokoelma voi sisältää lähdeasiakirjoja, kohdennettuja katkelmia tai lyhyitä tekstitietueita. Säilytä kunkin kohteen alkuperäinen sanamuoto ja tunniste vektorin rinnalla, jotta hakutulos pysyy luettavana ja jäljitettävänä.\n\nKäytännön tehtävänä voi olla teknisen selityksen osion hakeminen sen ehtoja koskevaan kysymykseen. Säilytä osion otsikko, sääntö ja poikkeus yhdessä. Kyselyn sanamuoto upotetaan itsenäisesti ja sitä verrataan sitten valmisteltuihin korpusesityksiin. Myöhempi RAG-vaihe käyttää lähdemateriaalina palautettua katkelmatekstiä, ei itse vektoria.\n\n### Natiivi esitys ja vertailu\n\nValmistaja ilmoittaa nimenomaisesti, että natiivit upotukset ovat normalisoimattomia ja INT8-kvantisoituja. Vertaa niitä kosinisamankaltaisuudella. Raaka pistetulo näistä normalisoimattomista arvoista ei ole dokumentoidusti sama asia kuin kosinivertailu. Esitystyyppi ja samankaltaisuusfunktio kuuluvat siis yhteen valittaessa, miten hakuindeksi tallentaa ja vertaa tulosta.\n\nMallikortti dokumentoi myös binäärituloksen ja merkitsee Matryoshka-esitysten tuen. Binäärikomponentit ja niiden pakattu tallennus eroavat tavallisista liukulukutaulukoista, joten indeksin on tulkittava valittu esitys. Täysi upotusulottuvuus kuvaa esityksen komponentteja, ei jokaisen koodauksen tavumäärää. Pidä ulottuvuus ja tulostyyppi yhtenäisinä kysely- ja asiakirjapuolella.\n\n### Pituus ja asiakirjarajat\n\nMallin julkaistu konteksti on 32K. Se mahdollistaa huomattavan tekstimäärän esittämisen, mutta katkelmien tarkkuustason tulisi silti vastata sitä, mitä haun on tarkoitus palauttaa. Kokonainen osio voi säilyttää määritelmän ja sen rajaukset; kohdennettu ote voi osoittaa suoraan ohjeeseen. Liian suuri materiaali tulisi valmistella valitun syöteikkunan mukaan sen sijaan, että olettaisit pois jäävän lopun pysyvän esitettynä.\n\nSäilytä pääasiakirjan tunniste ja lähdeversio vektorin ulkopuolella. Jos teksti muuttuu, päivitä vastaava korpusesitys ja säilytä yhteys uuteen lähteeseen. Tutki useita kieliä sisältävässä kokoelmassa todellisia kysymyksiä ja ehdokaskatkelmia tarkoitetulla kieliyhdistelmällä sen sijaan, että päättelisit saman relevanssin pelkän monikielinen-nimikkeen perusteella.\n\n### Itsenäiset ja kontekstuaaliset versiot\n\nv1-4B-malli upottaa jokaisen annetun tekstin itsenäisesti. Useiden merkkijonojen lisääminen erään ei muuta sitä erilliseksi asiakirjapalojen context-v1-kooderiksi. Kun ympäröivän asiakirjan on muovattava kunkin palan esitystä, tehtävä kuuluu kontekstuaaliselle versiolle ja sen omalle valmistelulle.\n\nPienempi pplx-embed-v1-0.6B palauttaa 1024 ulottuvuutta ja tämä 4B-versio 2560. Pidä niiden täsmälliset identiteetit ja indeksiesitykset erillään, ellei dokumentoitua yhteensopivuuspolkua ole osoitettu. Hyödyllinen tulos on tässä itsenäinen kysely- tai lähdetekstivektori, jonka kosinivertailu ja valittu kvantisoitu esitys kirjataan tiedonhakutehtävää varten.",
    "alias_of": null,
    "aliases": [],
    "author": "Perplexity",
    "available": null,
    "canonical_model": "perplexity/pplx-embed-v1-4b",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00006000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000006",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "Konfiguraation täydet hintatiedot lisätiedoissa."
      }
    ],
    "ctx": 32000,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "perplexity/pplx-embed-v1-4b",
    "input": [
      "text",
      "token_ids"
    ],
    "kind": "embedding",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every vector with its index. Vector count must equal input count; dimensions must be consistent.",
            "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": [
                  "string",
                  "string[]",
                  "nonnegative_integer_token_array",
                  "nonnegative_integer_token_array[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Säilytä jokainen vektori indekseineen. Vektorien määrän on vastattava syötteiden määrää; ulottuvuuksien on oltava yhdenmukaiset.",
              "default_dimensions": null,
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "perplexity/pplx-embed-v1-4b"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 32000,
                  "text_unit": "UTF8-tavut",
                  "token_unit": "Token-taulukon alkiot"
                },
                "conditions": "Ei-tyhjä, yhdenmukaisista alkioista koostuva erä. Tokenien ID:t ovat ei-negatiivisia kokonaislukuja.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]|integer[]|integer[][]"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "unsupported",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Lähde sallii tämän JSON-metatietokentän; tarkka alkuperäisen palvelun semantiikka on mallikohtainen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Lähde sallii tämän JSON-metatietokentän; tarkka alkuperäisen palvelun semantiikka on mallikohtainen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Lähde sallii tämän JSON-metatietokentän; tarkka alkuperäisen palvelun semantiikka on mallikohtainen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options hylätty",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mixed input kinds",
              "empty input",
              "image/audio/file objects",
              "encoding_format=base64",
              "dimensions override"
            ]
          },
          "hints": [
            "Säilytä jokaisen vektorin indeksi ja ulottuvuus.",
            "Mallin nimen multimodaalisuus ei tarkoita, että tämä nimenomainen reitti hyväksyisi kuvaolioita."
          ],
          "input": {
            "content_type": "application/json",
            "dimensions_override": false,
            "encoding_format": [
              "float"
            ],
            "input_shapes": [
              "string",
              "string[]",
              "nonnegative_integer_token_array",
              "nonnegative_integer_token_array[]"
            ],
            "material_types": [
              "text",
              "token_ids"
            ],
            "max_input_budget_units": 32000,
            "multimodal_objects": false,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_json",
            "unknown": "no embedding job endpoint inferred"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_embedding"
          ],
          "output": {
            "default_dimensions": null,
            "family": "embedding",
            "format": "json",
            "http_success": 200,
            "vectors": "one dense float vector per input; indices/model/usage validated"
          }
        },
        "ctx": 32000,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tokenien perushinnat",
            "units": [
              {
                "amount": "0.00006000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000006",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"perplexity/pplx-embed-v1-4b\", \"input\": [\"First document\", \"Second document\"]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/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": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='perplexity/pplx-embed-v1-4b',input=[\"First document\",\"Second document\"])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n",
            "label": "Python SDK · all vectors",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "embeddings",
        "hints": [
          "Keep every vector index and dimension.",
          "Multimodal model name does not admit image objects on this exact path."
        ],
        "http": "POST",
        "in": 0.06,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Nopea tila",
            "value": "Vakiohinta",
            "when": "Kun nopea tila on valittu"
          },
          {
            "label": "Flex-tila",
            "value": "Vakiohinta",
            "when": "Kun flex-tila on valittu"
          },
          {
            "label": "Päättelyn enimmäisteho",
            "value": "Vakiohinta",
            "when": "Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.00006000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000006",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "perplexity/pplx-embed-v1-4b",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00006000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000006",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "perplexity/pplx-embed-v1-4b",
        "request_model_id": "perplexity/pplx-embed-v1-4b",
        "route_label": "Ultra"
      }
    ],
    "name": "Perplexity: Embed V1 4B",
    "price": {
      "in": 0.06,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.06,
      "sort_out": 0,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Эмбеддинги · Base token rates",
        "units": [
          {
            "amount": "0.00006000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000006",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "public_id": "perplexity/pplx-embed-v1-4b",
    "short": "Perplexity pplx-embed-v1-4B koodaa itsenäiset tekstit 2560-ulotteisiksi tiedonhakuvektoreiksi 32K-kontekstilla. Se ei edellytä ohje-etuliitettä ja tuottaa natiivisti normalisoimattomia INT8-vektoriesityksiä, joita verrataan kosinisamankaltaisuudella."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Perplexity pplx-embed-v1-4B koodaa itsenäiset tekstit 2560-ulotteisiksi tiedonhakuvektoreiksi 32K-kontekstilla. Se ei edellytä ohje-etuliitettä ja tuottaa natiivisti normalisoimattomia INT8-vektoriesityksiä, joita verrataan kosinisamankaltaisuudella.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "8c7045309e8efa95b6ad1b853068f7d240093a3aa2aac48beedf5d09db6f94ef",
    "renderer_sha256": "303a59603e2bc29ba8fda690e95fd32cec68de223d92e26054a88babff801dd7"
  },
  "sourceRevision": "70c0d8c4950dd7d47f0c5b4db05cf92b3c5f83be6192c3071c598047bd2d475c"
}
