{
  "aboutHtml": "<p>Codestral Embed 2505 on Mistral AI:n koodin tiedonhakuun erikoistunut upotusmalli. Se vastaanottaa lähdekoodia tai luonnollisen kielen koodikyselyn sisältävän tekstin ja palauttaa numeeriset vektorit. Valmistaja asemoi sen koodivarastohakuun, koodausassistenttien kontekstinhakuun, samankaltaisuus- ja kaksoiskappaleanalyysiin sekä koodin ryhmittelyyn toiminnallisuuden tai rakenteen mukaan. Sen kiinteä julkaisutunniste on codestral-embed-2505.</p><p>Syöte ja esitys</p><p>Koodisyöte voi olla funktio, siihen liittyvä lähdekatkelma tai muu koodivaraston merkityksellinen kokonaisuus. Luonnollisen kielen kysely voi kuvata etsittävän toiminnan nimeämättä täsmällistä symbolia. Upotus esittää syötteen vertailua varten; malli ei tuota uutta toteutusta tai suorita vastaanottamaansa koodia.</p><p>Virallinen julkaisu dokumentoi 8192 tokenin täyden syötekontekstin. Valmistaja suosittelee tiedonhakuun noin 3000 merkin paloja 1000 merkin päällekkäisyydellä ja huomauttaa suurempien palojen voivan heikentää hakua. Nämä ovat haun valmistelusuosituksia, eivät 3000 merkin tokenraja. Pidä tiedosto, symboli ja lähdesijainti kunkin valmistellun kohteen yhteydessä, jotta sovellus voi palauttaa olennaisen koodin haun jälkeen.</p><p>Tulostarkkuus ja ulottuvuudet</p><p>Koodiupotusopas dokumentoi tulostyypit float, int8, uint8, binary ja ubinary. Float käyttää 32-bittisiä yksinkertaisen tarkkuuden arvoja. Int8 käyttää etumerkillisiä 8-bittisiä kokonaislukuja väliltä -128–127 ja uint8 etumerkittömiä 8-bittisiä arvoja väliltä 0–255. Binary ja ubinary tallentavat kvantisoidut yhden bitin arvot pakattuihin 8-bittisiin alkioihin käyttäen vastaavasti etumerkillisiä tai etumerkittömiä säiliöitä.</p><p>Bittipakattu esitys muuttaa palautetun luettelon pituutta: opas kuvaa yhden pakatun alkion jokaista kahdeksaa loogista upotusulottuvuutta kohti. Muodon huomioiva vertailu eroaa siis pakattujen tavujen käsittelystä tavallisina liukulukukoordinaatteina. Säilytä valittu tyyppi vektorin yhteydessä ja käytä samaa esitystä indeksoidulle koodille ja sen kyselylle.</p><p>Parametridokumentaatio antaa oletusulottuvuudeksi 1536 ja enimmäisulottuvuudeksi 3072. Ulottuvuudet on järjestetty relevanssin mukaan, ja valmistaja kuvaa ensimmäisen valitun määrän säilyttämisen tapana valita esityskoko. Valitse ulottuvuus johdonmukaisesti tallennetulle kokoelmalle ja uusille kyselyille. Lyhyempi tai kvantisoitu esitys muuttaa tallennusta ja vertailukäyttäytymistä; se ei kasvata syötekontekstia tai muuta mallia koodigeneraattoriksi.</p><p>Haulla täydennetty koodaus</p><p>Julkaisun ensimmäinen käyttötapaus on kontekstin hakeminen koodin täydentämiseen, muokkaamiseen tai selittämiseen. Valmistele merkitykselliset koodikokonaisuudet ja säilytä koodivaraston revisio sekä lähdetunnisteet. Tietyn virheen käsittelyä koskeva kysymys voi hakea siihen liittyviä funktioita, jotka sovellus antaa sitten koodausmallille todellisen muutospyynnön kanssa.</p><p>Käytännön tulos on järjestetty lähdekatkelmien joukko, joka sisältää tiedostopolut, symbolit ja niiden toiminnan ymmärtämiseen tarvittavan sisällön. Kehittäjä voi avata haetut katkelmat tai ne voidaan välittää assistentille. Codestral Embed suorittaa esitysvaiheen; erillinen komponentti valitsee tulokset ja generointimalli kirjoittaa selityksen tai koodiehdotuksen.</p><p>Semanttinen haku ja samankaltaisuus</p><p>Valmistaja kuvaa koodin hakemista luonnollisen kielen tai koodin kyselyillä. Kehittäjä voi kysyä toiminnan toteutusta, vaikka funktion nimi eroaisi pyynnön sanamuodosta. Sisällytä tarkoitettua toteutusta erottava toiminta ja ehdot; koko alijärjestelmää koskeva yleinen kysely voi hakea toisiinsa liittyvää materiaalia ratkaisematta täsmällistä kysymystä.</p><p>Julkaisu kuvaa myös lähes identtisen tai toiminnallisesti samankaltaisen koodin löytämistä leksikaalisista eroista huolimatta. Tällaiset tulokset voivat auttaa löytämään uudelleenkäytettävän toteutuksen tai tunnistamaan lisätarkastelua tarvitsevan koodin. Samankaltaisuus upotusavaruudessa on signaali lähteen tutkimiseen; se ei osoita kahden katkelman toimivan identtisesti jokaisella syötteellä.</p><p>Ryhmittely, analytiikka ja vertailu</p><p>Koodiupotuksilla voidaan ryhmitellä koodia toiminnallisuuden tai rakenteen mukaan ja tutkia koodivaraston koostumusta. Pidä alkuperäiset katkelmat ja tunnisteet saatavilla, jotta ihminen tai myöhempi sovellusvaihe voi tulkita ryhmän. Ryhmä on esityspohjainen ryhmittely, ei automaattisesti varmennettu arkkitehtuurikuvaus.</p><p>Valmistajan liukuluvektoriesimerkit käyttävät yksikkönormiin normalisoituja upotuksia, joille kosinisamankaltaisuus, pistetulo ja euklidinen etäisyys antavat yhtenäiset järjestykset. Kvantisoidun ja bittipakatun tuloksen tulisi säilyttää oma muodon käsittelynsä sen sijaan, että se perisi raakaliukulukukoordinaatteja koskevan oletuksen. Julkaistu päätepiste säilyttää myös syöteindeksit, mikä auttaa ylläpitämään kunkin vektorin yhteyttä lähdekohteeseensa.</p><p>Versio ja käytännön rajat</p><p>Täsmällinen mallisivu listaa upotus- ja erätyönkulut 8k-kontekstimerkinnällä, ja julkaisu antaa 8192 tokenin arvon. Säilytä nimetty 2505-versio, valittu tulosulottuvuus ja tyyppi koko kokoelma- ja kyselytyönkulun läpi. Tämä on koodiin suuntautunut vektoritulos, joka eroaa Codestralin tekstintäydennyksestä ja kiinteäulotteisesta Mistral Embed -tekstimallista.</p><p>Valmistele olennaisen toiminnan sisältäviä koodikokonaisuuksia, säilytä niiden lähdesijainnit ja ilmaise etsittävä kysymys. Hyödyllinen tuotos on todelliseen koodiin liitetty haettava esitys, joka tukee seuraavaa selitys-, muokkaus- tai kehittäjätarkasteluvaihetta suorittamatta sitä itse.</p>",
  "aboutText": "Codestral Embed 2505 on Mistral AI:n koodin tiedonhakuun erikoistunut upotusmalli. Se vastaanottaa lähdekoodia tai luonnollisen kielen koodikyselyn sisältävän tekstin ja palauttaa numeeriset vektorit. Valmistaja asemoi sen koodivarastohakuun, koodausassistenttien kontekstinhakuun, samankaltaisuus- ja kaksoiskappaleanalyysiin sekä koodin ryhmittelyyn toiminnallisuuden tai rakenteen mukaan. Sen kiinteä julkaisutunniste on codestral-embed-2505.\n\nSyöte ja esitys\n\nKoodisyöte voi olla funktio, siihen liittyvä lähdekatkelma tai muu koodivaraston merkityksellinen kokonaisuus. Luonnollisen kielen kysely voi kuvata etsittävän toiminnan nimeämättä täsmällistä symbolia. Upotus esittää syötteen vertailua varten; malli ei tuota uutta toteutusta tai suorita vastaanottamaansa koodia.\n\nVirallinen julkaisu dokumentoi 8192 tokenin täyden syötekontekstin. Valmistaja suosittelee tiedonhakuun noin 3000 merkin paloja 1000 merkin päällekkäisyydellä ja huomauttaa suurempien palojen voivan heikentää hakua. Nämä ovat haun valmistelusuosituksia, eivät 3000 merkin tokenraja. Pidä tiedosto, symboli ja lähdesijainti kunkin valmistellun kohteen yhteydessä, jotta sovellus voi palauttaa olennaisen koodin haun jälkeen.\n\nTulostarkkuus ja ulottuvuudet\n\nKoodiupotusopas dokumentoi tulostyypit float, int8, uint8, binary ja ubinary. Float käyttää 32-bittisiä yksinkertaisen tarkkuuden arvoja. Int8 käyttää etumerkillisiä 8-bittisiä kokonaislukuja väliltä -128–127 ja uint8 etumerkittömiä 8-bittisiä arvoja väliltä 0–255. Binary ja ubinary tallentavat kvantisoidut yhden bitin arvot pakattuihin 8-bittisiin alkioihin käyttäen vastaavasti etumerkillisiä tai etumerkittömiä säiliöitä.\n\nBittipakattu esitys muuttaa palautetun luettelon pituutta: opas kuvaa yhden pakatun alkion jokaista kahdeksaa loogista upotusulottuvuutta kohti. Muodon huomioiva vertailu eroaa siis pakattujen tavujen käsittelystä tavallisina liukulukukoordinaatteina. Säilytä valittu tyyppi vektorin yhteydessä ja käytä samaa esitystä indeksoidulle koodille ja sen kyselylle.\n\nParametridokumentaatio antaa oletusulottuvuudeksi 1536 ja enimmäisulottuvuudeksi 3072. Ulottuvuudet on järjestetty relevanssin mukaan, ja valmistaja kuvaa ensimmäisen valitun määrän säilyttämisen tapana valita esityskoko. Valitse ulottuvuus johdonmukaisesti tallennetulle kokoelmalle ja uusille kyselyille. Lyhyempi tai kvantisoitu esitys muuttaa tallennusta ja vertailukäyttäytymistä; se ei kasvata syötekontekstia tai muuta mallia koodigeneraattoriksi.\n\nHaulla täydennetty koodaus\n\nJulkaisun ensimmäinen käyttötapaus on kontekstin hakeminen koodin täydentämiseen, muokkaamiseen tai selittämiseen. Valmistele merkitykselliset koodikokonaisuudet ja säilytä koodivaraston revisio sekä lähdetunnisteet. Tietyn virheen käsittelyä koskeva kysymys voi hakea siihen liittyviä funktioita, jotka sovellus antaa sitten koodausmallille todellisen muutospyynnön kanssa.\n\nKäytännön tulos on järjestetty lähdekatkelmien joukko, joka sisältää tiedostopolut, symbolit ja niiden toiminnan ymmärtämiseen tarvittavan sisällön. Kehittäjä voi avata haetut katkelmat tai ne voidaan välittää assistentille. Codestral Embed suorittaa esitysvaiheen; erillinen komponentti valitsee tulokset ja generointimalli kirjoittaa selityksen tai koodiehdotuksen.\n\nSemanttinen haku ja samankaltaisuus\n\nValmistaja kuvaa koodin hakemista luonnollisen kielen tai koodin kyselyillä. Kehittäjä voi kysyä toiminnan toteutusta, vaikka funktion nimi eroaisi pyynnön sanamuodosta. Sisällytä tarkoitettua toteutusta erottava toiminta ja ehdot; koko alijärjestelmää koskeva yleinen kysely voi hakea toisiinsa liittyvää materiaalia ratkaisematta täsmällistä kysymystä.\n\nJulkaisu kuvaa myös lähes identtisen tai toiminnallisesti samankaltaisen koodin löytämistä leksikaalisista eroista huolimatta. Tällaiset tulokset voivat auttaa löytämään uudelleenkäytettävän toteutuksen tai tunnistamaan lisätarkastelua tarvitsevan koodin. Samankaltaisuus upotusavaruudessa on signaali lähteen tutkimiseen; se ei osoita kahden katkelman toimivan identtisesti jokaisella syötteellä.\n\nRyhmittely, analytiikka ja vertailu\n\nKoodiupotuksilla voidaan ryhmitellä koodia toiminnallisuuden tai rakenteen mukaan ja tutkia koodivaraston koostumusta. Pidä alkuperäiset katkelmat ja tunnisteet saatavilla, jotta ihminen tai myöhempi sovellusvaihe voi tulkita ryhmän. Ryhmä on esityspohjainen ryhmittely, ei automaattisesti varmennettu arkkitehtuurikuvaus.\n\nValmistajan liukuluvektoriesimerkit käyttävät yksikkönormiin normalisoituja upotuksia, joille kosinisamankaltaisuus, pistetulo ja euklidinen etäisyys antavat yhtenäiset järjestykset. Kvantisoidun ja bittipakatun tuloksen tulisi säilyttää oma muodon käsittelynsä sen sijaan, että se perisi raakaliukulukukoordinaatteja koskevan oletuksen. Julkaistu päätepiste säilyttää myös syöteindeksit, mikä auttaa ylläpitämään kunkin vektorin yhteyttä lähdekohteeseensa.\n\nVersio ja käytännön rajat\n\nTäsmällinen mallisivu listaa upotus- ja erätyönkulut 8k-kontekstimerkinnällä, ja julkaisu antaa 8192 tokenin arvon. Säilytä nimetty 2505-versio, valittu tulosulottuvuus ja tyyppi koko kokoelma- ja kyselytyönkulun läpi. Tämä on koodiin suuntautunut vektoritulos, joka eroaa Codestralin tekstintäydennyksestä ja kiinteäulotteisesta Mistral Embed -tekstimallista.\n\nValmistele olennaisen toiminnan sisältäviä koodikokonaisuuksia, säilytä niiden lähdesijainnit ja ilmaise etsittävä kysymys. Hyödyllinen tuotos on todelliseen koodiin liitetty haettava esitys, joka tukee seuraavaa selitys-, muokkaus- tai kehittäjätarkasteluvaihetta suorittamatta sitä itse.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "11fb58d6e21903395bc407681d3e4431eb62e4d832d51fed63ac0639452d01c2",
    "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\">Mistral: Codestral Embed 2505</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Sulje\">×</button></div><div class=\"idline\"><span>Mistral /</span><code>mistralai/codestral-embed-2505</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|mistralai%2Fcodestral-embed-2505\">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\">Codestral Embed 2505 esittää koodin ja luonnollisen kielen kyselyt vektoreina koodivarastohakuun ja koodausassistenttien tiedonhakuun. Valmistaja dokumentoi 8192 tokenin kontekstin, määritettävät ulottuvuudet enintään 3072:een sekä liukuluku-, kokonaisluku- ja bittipakatut tulosmuodot.</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>Codestral Embed 2505 on Mistral AI:n koodin tiedonhakuun erikoistunut upotusmalli. Se vastaanottaa lähdekoodia tai luonnollisen kielen koodikyselyn sisältävän tekstin ja palauttaa numeeriset vektorit. Valmistaja asemoi sen koodivarastohakuun, koodausassistenttien kontekstinhakuun, samankaltaisuus- ja kaksoiskappaleanalyysiin sekä koodin ryhmittelyyn toiminnallisuuden tai rakenteen mukaan. Sen kiinteä julkaisutunniste on codestral-embed-2505.</p><p>Syöte ja esitys</p><p>Koodisyöte voi olla funktio, siihen liittyvä lähdekatkelma tai muu koodivaraston merkityksellinen kokonaisuus. Luonnollisen kielen kysely voi kuvata etsittävän toiminnan nimeämättä täsmällistä symbolia. Upotus esittää syötteen vertailua varten; malli ei tuota uutta toteutusta tai suorita vastaanottamaansa koodia.</p><p>Virallinen julkaisu dokumentoi 8192 tokenin täyden syötekontekstin. Valmistaja suosittelee tiedonhakuun noin 3000 merkin paloja 1000 merkin päällekkäisyydellä ja huomauttaa suurempien palojen voivan heikentää hakua. Nämä ovat haun valmistelusuosituksia, eivät 3000 merkin tokenraja. Pidä tiedosto, symboli ja lähdesijainti kunkin valmistellun kohteen yhteydessä, jotta sovellus voi palauttaa olennaisen koodin haun jälkeen.</p><p>Tulostarkkuus ja ulottuvuudet</p><p>Koodiupotusopas dokumentoi tulostyypit float, int8, uint8, binary ja ubinary. Float käyttää 32-bittisiä yksinkertaisen tarkkuuden arvoja. Int8 käyttää etumerkillisiä 8-bittisiä kokonaislukuja väliltä -128–127 ja uint8 etumerkittömiä 8-bittisiä arvoja väliltä 0–255. Binary ja ubinary tallentavat kvantisoidut yhden bitin arvot pakattuihin 8-bittisiin alkioihin käyttäen vastaavasti etumerkillisiä tai etumerkittömiä säiliöitä.</p><p>Bittipakattu esitys muuttaa palautetun luettelon pituutta: opas kuvaa yhden pakatun alkion jokaista kahdeksaa loogista upotusulottuvuutta kohti. Muodon huomioiva vertailu eroaa siis pakattujen tavujen käsittelystä tavallisina liukulukukoordinaatteina. Säilytä valittu tyyppi vektorin yhteydessä ja käytä samaa esitystä indeksoidulle koodille ja sen kyselylle.</p><p>Parametridokumentaatio antaa oletusulottuvuudeksi 1536 ja enimmäisulottuvuudeksi 3072. Ulottuvuudet on järjestetty relevanssin mukaan, ja valmistaja kuvaa ensimmäisen valitun määrän säilyttämisen tapana valita esityskoko. Valitse ulottuvuus johdonmukaisesti tallennetulle kokoelmalle ja uusille kyselyille. Lyhyempi tai kvantisoitu esitys muuttaa tallennusta ja vertailukäyttäytymistä; se ei kasvata syötekontekstia tai muuta mallia koodigeneraattoriksi.</p><p>Haulla täydennetty koodaus</p><p>Julkaisun ensimmäinen käyttötapaus on kontekstin hakeminen koodin täydentämiseen, muokkaamiseen tai selittämiseen. Valmistele merkitykselliset koodikokonaisuudet ja säilytä koodivaraston revisio sekä lähdetunnisteet. Tietyn virheen käsittelyä koskeva kysymys voi hakea siihen liittyviä funktioita, jotka sovellus antaa sitten koodausmallille todellisen muutospyynnön kanssa.</p><p>Käytännön tulos on järjestetty lähdekatkelmien joukko, joka sisältää tiedostopolut, symbolit ja niiden toiminnan ymmärtämiseen tarvittavan sisällön. Kehittäjä voi avata haetut katkelmat tai ne voidaan välittää assistentille. Codestral Embed suorittaa esitysvaiheen; erillinen komponentti valitsee tulokset ja generointimalli kirjoittaa selityksen tai koodiehdotuksen.</p><p>Semanttinen haku ja samankaltaisuus</p><p>Valmistaja kuvaa koodin hakemista luonnollisen kielen tai koodin kyselyillä. Kehittäjä voi kysyä toiminnan toteutusta, vaikka funktion nimi eroaisi pyynnön sanamuodosta. Sisällytä tarkoitettua toteutusta erottava toiminta ja ehdot; koko alijärjestelmää koskeva yleinen kysely voi hakea toisiinsa liittyvää materiaalia ratkaisematta täsmällistä kysymystä.</p><p>Julkaisu kuvaa myös lähes identtisen tai toiminnallisesti samankaltaisen koodin löytämistä leksikaalisista eroista huolimatta. Tällaiset tulokset voivat auttaa löytämään uudelleenkäytettävän toteutuksen tai tunnistamaan lisätarkastelua tarvitsevan koodin. Samankaltaisuus upotusavaruudessa on signaali lähteen tutkimiseen; se ei osoita kahden katkelman toimivan identtisesti jokaisella syötteellä.</p><p>Ryhmittely, analytiikka ja vertailu</p><p>Koodiupotuksilla voidaan ryhmitellä koodia toiminnallisuuden tai rakenteen mukaan ja tutkia koodivaraston koostumusta. Pidä alkuperäiset katkelmat ja tunnisteet saatavilla, jotta ihminen tai myöhempi sovellusvaihe voi tulkita ryhmän. Ryhmä on esityspohjainen ryhmittely, ei automaattisesti varmennettu arkkitehtuurikuvaus.</p><p>Valmistajan liukuluvektoriesimerkit käyttävät yksikkönormiin normalisoituja upotuksia, joille kosinisamankaltaisuus, pistetulo ja euklidinen etäisyys antavat yhtenäiset järjestykset. Kvantisoidun ja bittipakatun tuloksen tulisi säilyttää oma muodon käsittelynsä sen sijaan, että se perisi raakaliukulukukoordinaatteja koskevan oletuksen. Julkaistu päätepiste säilyttää myös syöteindeksit, mikä auttaa ylläpitämään kunkin vektorin yhteyttä lähdekohteeseensa.</p><p>Versio ja käytännön rajat</p><p>Täsmällinen mallisivu listaa upotus- ja erätyönkulut 8k-kontekstimerkinnällä, ja julkaisu antaa 8192 tokenin arvon. Säilytä nimetty 2505-versio, valittu tulosulottuvuus ja tyyppi koko kokoelma- ja kyselytyönkulun läpi. Tämä on koodiin suuntautunut vektoritulos, joka eroaa Codestralin tekstintäydennyksestä ja kiinteäulotteisesta Mistral Embed -tekstimallista.</p><p>Valmistele olennaisen toiminnan sisältäviä koodikokonaisuuksia, säilytä niiden lähdesijainnit ja ilmaise etsittävä kysymys. Hyödyllinen tuotos on todelliseen koodiin liitetty haettava esitys, joka tukee seuraavaa selitys-, muokkaus- tai kehittäjätarkasteluvaihetta suorittamatta sitä itse.</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>8 192 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>mistralai/codestral-embed-2505</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ä: 8 192 · 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>8192</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.0003</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-1892-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1892-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1892-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1892-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-1892-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1892-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;mistralai/codestral-embed-2505&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-1892-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1892-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;mistralai/codestral-embed-2505&#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=mistralai%2Fcodestral-embed-2505&amp;route=Ultra&amp;caller=mistralai%2Fcodestral-embed-2505&amp;fmt=embeddings\"><code>mistralai/codestral-embed-2505</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=mistralai%2Fcodestral-embed-2505&amp;route=Ultra&amp;caller=mistralai%2Fcodestral-embed-2505&amp;fmt=embeddings\"><code>mistralai/codestral-embed-2505</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "mistralai/codestral-embed-2505",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "mistralai/codestral-embed-2505",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|mistralai%2Fcodestral-embed-2505",
      "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": [
                  "mistralai/codestral-embed-2505"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 8192,
                  "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": 8192,
            "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": 8192,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tokenien perushinnat",
            "units": [
              {
                "amount": "0.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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\": \"mistralai/codestral-embed-2505\", \"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='mistralai/codestral-embed-2505',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.3,
        "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.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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": "mistralai/codestral-embed-2505",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": "mistralai/codestral-embed-2505",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "608d68d830d3569f6246571d812eab6f9610b2d72e16f23c1fde908e16606171",
    "input_html_sha256": "0755fd780fd827e5f5a2c4490dfb4f486ac3242eb3db9bc37501df10ac24684a",
    "private_audit_sha256": "402ac4e796b2de3386f5e6d7bcf034fc95b635b36a632af6af4d7acb30c34cf3",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fi/mistralai-codestral-embed-2505/",
    "description": "Codestral Embed 2505 esittää koodin ja luonnollisen kielen kyselyt vektoreina koodivarastohakuun ja koodausassistenttien tiedonhakuun. Valmistaja dokumentoi 8192 tokenin kontekstin, määritettävät ulottuvuudet enintään 3072:een sekä liukuluku-, kokonaisluku- ja bittipakatut tulosmuodot.",
    "locale": "fi",
    "md_url": "https://ailoot.ai/models/fi/mistralai-codestral-embed-2505/index.md",
    "title": "Mistral: Codestral Embed 2505 — Ailoot",
    "url": "https://ailoot.ai/models/fi/mistralai-codestral-embed-2505/"
  },
  "rawModel": {
    "about": "Codestral Embed 2505 on Mistral AI:n koodin tiedonhakuun erikoistunut upotusmalli. Se vastaanottaa lähdekoodia tai luonnollisen kielen koodikyselyn sisältävän tekstin ja palauttaa numeeriset vektorit. Valmistaja asemoi sen koodivarastohakuun, koodausassistenttien kontekstinhakuun, samankaltaisuus- ja kaksoiskappaleanalyysiin sekä koodin ryhmittelyyn toiminnallisuuden tai rakenteen mukaan. Sen kiinteä julkaisutunniste on codestral-embed-2505.\n\nSyöte ja esitys\n\nKoodisyöte voi olla funktio, siihen liittyvä lähdekatkelma tai muu koodivaraston merkityksellinen kokonaisuus. Luonnollisen kielen kysely voi kuvata etsittävän toiminnan nimeämättä täsmällistä symbolia. Upotus esittää syötteen vertailua varten; malli ei tuota uutta toteutusta tai suorita vastaanottamaansa koodia.\n\nVirallinen julkaisu dokumentoi 8192 tokenin täyden syötekontekstin. Valmistaja suosittelee tiedonhakuun noin 3000 merkin paloja 1000 merkin päällekkäisyydellä ja huomauttaa suurempien palojen voivan heikentää hakua. Nämä ovat haun valmistelusuosituksia, eivät 3000 merkin tokenraja. Pidä tiedosto, symboli ja lähdesijainti kunkin valmistellun kohteen yhteydessä, jotta sovellus voi palauttaa olennaisen koodin haun jälkeen.\n\nTulostarkkuus ja ulottuvuudet\n\nKoodiupotusopas dokumentoi tulostyypit float, int8, uint8, binary ja ubinary. Float käyttää 32-bittisiä yksinkertaisen tarkkuuden arvoja. Int8 käyttää etumerkillisiä 8-bittisiä kokonaislukuja väliltä -128–127 ja uint8 etumerkittömiä 8-bittisiä arvoja väliltä 0–255. Binary ja ubinary tallentavat kvantisoidut yhden bitin arvot pakattuihin 8-bittisiin alkioihin käyttäen vastaavasti etumerkillisiä tai etumerkittömiä säiliöitä.\n\nBittipakattu esitys muuttaa palautetun luettelon pituutta: opas kuvaa yhden pakatun alkion jokaista kahdeksaa loogista upotusulottuvuutta kohti. Muodon huomioiva vertailu eroaa siis pakattujen tavujen käsittelystä tavallisina liukulukukoordinaatteina. Säilytä valittu tyyppi vektorin yhteydessä ja käytä samaa esitystä indeksoidulle koodille ja sen kyselylle.\n\nParametridokumentaatio antaa oletusulottuvuudeksi 1536 ja enimmäisulottuvuudeksi 3072. Ulottuvuudet on järjestetty relevanssin mukaan, ja valmistaja kuvaa ensimmäisen valitun määrän säilyttämisen tapana valita esityskoko. Valitse ulottuvuus johdonmukaisesti tallennetulle kokoelmalle ja uusille kyselyille. Lyhyempi tai kvantisoitu esitys muuttaa tallennusta ja vertailukäyttäytymistä; se ei kasvata syötekontekstia tai muuta mallia koodigeneraattoriksi.\n\nHaulla täydennetty koodaus\n\nJulkaisun ensimmäinen käyttötapaus on kontekstin hakeminen koodin täydentämiseen, muokkaamiseen tai selittämiseen. Valmistele merkitykselliset koodikokonaisuudet ja säilytä koodivaraston revisio sekä lähdetunnisteet. Tietyn virheen käsittelyä koskeva kysymys voi hakea siihen liittyviä funktioita, jotka sovellus antaa sitten koodausmallille todellisen muutospyynnön kanssa.\n\nKäytännön tulos on järjestetty lähdekatkelmien joukko, joka sisältää tiedostopolut, symbolit ja niiden toiminnan ymmärtämiseen tarvittavan sisällön. Kehittäjä voi avata haetut katkelmat tai ne voidaan välittää assistentille. Codestral Embed suorittaa esitysvaiheen; erillinen komponentti valitsee tulokset ja generointimalli kirjoittaa selityksen tai koodiehdotuksen.\n\nSemanttinen haku ja samankaltaisuus\n\nValmistaja kuvaa koodin hakemista luonnollisen kielen tai koodin kyselyillä. Kehittäjä voi kysyä toiminnan toteutusta, vaikka funktion nimi eroaisi pyynnön sanamuodosta. Sisällytä tarkoitettua toteutusta erottava toiminta ja ehdot; koko alijärjestelmää koskeva yleinen kysely voi hakea toisiinsa liittyvää materiaalia ratkaisematta täsmällistä kysymystä.\n\nJulkaisu kuvaa myös lähes identtisen tai toiminnallisesti samankaltaisen koodin löytämistä leksikaalisista eroista huolimatta. Tällaiset tulokset voivat auttaa löytämään uudelleenkäytettävän toteutuksen tai tunnistamaan lisätarkastelua tarvitsevan koodin. Samankaltaisuus upotusavaruudessa on signaali lähteen tutkimiseen; se ei osoita kahden katkelman toimivan identtisesti jokaisella syötteellä.\n\nRyhmittely, analytiikka ja vertailu\n\nKoodiupotuksilla voidaan ryhmitellä koodia toiminnallisuuden tai rakenteen mukaan ja tutkia koodivaraston koostumusta. Pidä alkuperäiset katkelmat ja tunnisteet saatavilla, jotta ihminen tai myöhempi sovellusvaihe voi tulkita ryhmän. Ryhmä on esityspohjainen ryhmittely, ei automaattisesti varmennettu arkkitehtuurikuvaus.\n\nValmistajan liukuluvektoriesimerkit käyttävät yksikkönormiin normalisoituja upotuksia, joille kosinisamankaltaisuus, pistetulo ja euklidinen etäisyys antavat yhtenäiset järjestykset. Kvantisoidun ja bittipakatun tuloksen tulisi säilyttää oma muodon käsittelynsä sen sijaan, että se perisi raakaliukulukukoordinaatteja koskevan oletuksen. Julkaistu päätepiste säilyttää myös syöteindeksit, mikä auttaa ylläpitämään kunkin vektorin yhteyttä lähdekohteeseensa.\n\nVersio ja käytännön rajat\n\nTäsmällinen mallisivu listaa upotus- ja erätyönkulut 8k-kontekstimerkinnällä, ja julkaisu antaa 8192 tokenin arvon. Säilytä nimetty 2505-versio, valittu tulosulottuvuus ja tyyppi koko kokoelma- ja kyselytyönkulun läpi. Tämä on koodiin suuntautunut vektoritulos, joka eroaa Codestralin tekstintäydennyksestä ja kiinteäulotteisesta Mistral Embed -tekstimallista.\n\nValmistele olennaisen toiminnan sisältäviä koodikokonaisuuksia, säilytä niiden lähdesijainnit ja ilmaise etsittävä kysymys. Hyödyllinen tuotos on todelliseen koodiin liitetty haettava esitys, joka tukee seuraavaa selitys-, muokkaus- tai kehittäjätarkasteluvaihetta suorittamatta sitä itse.",
    "alias_of": null,
    "aliases": [],
    "author": "Mistral",
    "available": null,
    "canonical_model": "mistralai/codestral-embed-2505",
    "capabilities": {
      "context_length": 8192,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": 8192,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "mistralai/codestral-embed-2505",
    "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": [
                  "mistralai/codestral-embed-2505"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 8192,
                  "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": 8192,
            "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": 8192,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tokenien perushinnat",
            "units": [
              {
                "amount": "0.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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\": \"mistralai/codestral-embed-2505\", \"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='mistralai/codestral-embed-2505',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.3,
        "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.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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": "mistralai/codestral-embed-2505",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": "mistralai/codestral-embed-2505",
        "request_model_id": "mistralai/codestral-embed-2505",
        "route_label": "Ultra"
      }
    ],
    "name": "Mistral: Codestral Embed 2505",
    "price": {
      "in": 0.3,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.3,
      "sort_out": 0,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Эмбеддинги · Base token rates",
        "units": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": "mistralai/codestral-embed-2505",
    "short": "Codestral Embed 2505 esittää koodin ja luonnollisen kielen kyselyt vektoreina koodivarastohakuun ja koodausassistenttien tiedonhakuun. Valmistaja dokumentoi 8192 tokenin kontekstin, määritettävät ulottuvuudet enintään 3072:een sekä liukuluku-, kokonaisluku- ja bittipakatut tulosmuodot."
  },
  "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": "Codestral Embed 2505 esittää koodin ja luonnollisen kielen kyselyt vektoreina koodivarastohakuun ja koodausassistenttien tiedonhakuun. Valmistaja dokumentoi 8192 tokenin kontekstin, määritettävät ulottuvuudet enintään 3072:een sekä liukuluku-, kokonaisluku- ja bittipakatut tulosmuodot.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "214a1470c30106bad70fd88fb7704e62a4a53cd3f1c44913da50d935b3bb391a",
    "renderer_sha256": "303a59603e2bc29ba8fda690e95fd32cec68de223d92e26054a88babff801dd7"
  },
  "sourceRevision": "96066971eda888a59bee749fc7d27cfb384044a130ac1f3f5c9b3ac71a86f4dc"
}
