{
  "aboutHtml": "<p>Codestral Embed 2505 är Mistral AI:s inbäddningsmodell specialiserad för kodsökning. Den tar emot text med källkod eller en kodfråga på naturligt språk och returnerar numeriska vektorer. Tillverkaren positionerar den för sökning i kodarkiv, kontexthämtning åt kodassistenter, likhets- och dubblettanalys samt gruppering av kod efter funktionalitet eller struktur. Dess fasta utgivningsidentifierare är codestral-embed-2505.</p><p>Indata och representation</p><p>Kodindata kan vara en funktion, ett relaterat källfragment eller en annan meningsfull enhet i ett kodarkiv. En fråga på naturligt språk kan beskriva beteendet som ska hittas i stället för att ange den exakta symbolen. Inbäddningen representerar indata för jämförelse; modellen genererar inte en ny implementation eller kör koden den tar emot.</p><p>Den officiella utgåvan dokumenterar en full indatakontext på 8192 token. För sökning rekommenderar tillverkaren delar på ungefär 3000 tecken med 1000 teckens överlappning och påpekar att större delar kan försämra sökningen. Detta är rekommendationer för sökförberedelse, inte en tokengräns på 3000 tecken. Håll fil, symbol och källplats kopplade till varje förberett objekt så att applikationen kan returnera relevant kod efter sökning.</p><p>Resultatprecision och dimensioner</p><p>Kodinbäddningsguiden dokumenterar resultattyperna float, int8, uint8, binary och ubinary. Float använder 32-bitars värden med enkelprecision. Int8 använder 8-bitars heltal med tecken från -128 till 127, medan uint8 använder 8-bitars värden utan tecken från 0 till 255. Binary och ubinary lagrar kvantiserade enbitsvärden i packade 8-bitars element, med behållare med respektive utan tecken.</p><p>Bitpackad representation ändrar den returnerade listans längd: Guiden beskriver ett packat element för varje grupp om åtta logiska inbäddningsdimensioner. En formatmedveten jämförelse skiljer sig därför från att behandla packade byte som vanliga flyttalskoordinater. Behåll den valda typen tillsammans med vektorn och använd samma representation för indexerad kod och dess fråga.</p><p>Parameterdokumentationen anger en standarddimension på 1536 och ett maximum på 3072. Dimensionerna är ordnade efter relevans och tillverkaren beskriver att behålla det första valda antalet som ett sätt att välja representationsstorlek. Välj dimensionen konsekvent för den lagrade samlingen och nya frågor. En kortare eller kvantiserad representation ändrar lagrings- och jämförelsebeteendet; den ökar inte indatakontexten eller gör modellen till en kodgenerator.</p><p>Kodning med hämtad kontext</p><p>Utgåvans första användningsfall är att hämta kontext för kodkomplettering, redigering eller förklaring. Förbered meningsfulla kodenheter och behåll kodarkivets revision och källidentifierarna. En fråga om hur ett visst fel hanteras kan hämta relaterade funktioner som applikationen sedan ger till en kodmodell tillsammans med den faktiska ändringsbegäran.</p><p>Ett praktiskt resultat är en rangordnad uppsättning källutdrag med filsökvägar, symboler och innehållet som behövs för att förstå deras beteende. Utdragen kan öppnas av en utvecklare eller ges till en assistent. Codestral Embed utför representationssteget; en separat komponent väljer resultaten och en genereringsmodell skriver förklaringen eller kodförslaget.</p><p>Semantisk sökning och likhet</p><p>Tillverkaren beskriver kodsökning med frågor på naturligt språk eller i kod. En utvecklare kan fråga efter implementationen av ett beteende även när funktionsnamnet skiljer sig från begärans ordalydelse. Ta med beteendet och villkoren som särskiljer den avsedda implementationen; en generell fråga om ett helt delsystem kan hämta relaterat material utan att lösa den specifika frågan.</p><p>Utgåvan beskriver också att hitta nästan duplicerad eller funktionellt liknande kod trots lexikala skillnader. Sådana resultat kan hjälpa till att hitta en återanvändbar implementation eller identifiera kod som behöver ytterligare granskning. Likhet i inbäddningsrummet är en signal att granska källan; den fastställer inte att två fragment har identiskt beteende för alla indata.</p><p>Klustring, analys och jämförelse</p><p>Kodinbäddningar kan användas för att gruppera kod efter funktionalitet eller struktur och granska ett kodarkivs sammansättning. Håll originalutdragen och identifierarna tillgängliga så att en grupp kan tolkas av en person eller ett senare applikationssteg. Ett kluster är en representationsbaserad gruppering, inte en automatiskt verifierad arkitekturbeskrivning.</p><p>Tillverkarens flyttalsvektorexempel använder enhetsnormaliserade inbäddningar, för vilka cosinuslikhet, skalärprodukt och euklidiskt avstånd ger konsekventa rangordningar. Kvantiserat och bitpackat resultat bör behålla sin egen formathantering i stället för att ärva ett antagande om råa flyttalskoordinater. Den publicerade slutpunkten behåller också indataindex, vilket hjälper till att bevara kopplingen mellan varje vektor och dess källobjekt.</p><p>Utgåva och praktiska gränser</p><p>Den exakta modellsidan listar inbäddnings- och batcharbetsflöden med en kontextetikett på 8k, medan utgivningsinformationen anger 8192 token. Bevara den namngivna 2505-utgåvan, vald resultatdimension och typ genom hela samlings- och frågearbetsflödet. Detta är kodorienterat vektorresultat, åtskilt från Codestrals textkomplettering och den fastdimensionella textmodellen Mistral Embed.</p><p>Förbered kodenheter som bär det relevanta beteendet, behåll deras källplatser och formulera frågan som material ska hittas för. Den användbara artefakten är en sökbar representation kopplad till faktisk kod, som stöder nästa förklarings-, redigerings- eller utvecklargranskningssteg utan att själv utföra det.</p>",
  "aboutText": "Codestral Embed 2505 är Mistral AI:s inbäddningsmodell specialiserad för kodsökning. Den tar emot text med källkod eller en kodfråga på naturligt språk och returnerar numeriska vektorer. Tillverkaren positionerar den för sökning i kodarkiv, kontexthämtning åt kodassistenter, likhets- och dubblettanalys samt gruppering av kod efter funktionalitet eller struktur. Dess fasta utgivningsidentifierare är codestral-embed-2505.\n\nIndata och representation\n\nKodindata kan vara en funktion, ett relaterat källfragment eller en annan meningsfull enhet i ett kodarkiv. En fråga på naturligt språk kan beskriva beteendet som ska hittas i stället för att ange den exakta symbolen. Inbäddningen representerar indata för jämförelse; modellen genererar inte en ny implementation eller kör koden den tar emot.\n\nDen officiella utgåvan dokumenterar en full indatakontext på 8192 token. För sökning rekommenderar tillverkaren delar på ungefär 3000 tecken med 1000 teckens överlappning och påpekar att större delar kan försämra sökningen. Detta är rekommendationer för sökförberedelse, inte en tokengräns på 3000 tecken. Håll fil, symbol och källplats kopplade till varje förberett objekt så att applikationen kan returnera relevant kod efter sökning.\n\nResultatprecision och dimensioner\n\nKodinbäddningsguiden dokumenterar resultattyperna float, int8, uint8, binary och ubinary. Float använder 32-bitars värden med enkelprecision. Int8 använder 8-bitars heltal med tecken från -128 till 127, medan uint8 använder 8-bitars värden utan tecken från 0 till 255. Binary och ubinary lagrar kvantiserade enbitsvärden i packade 8-bitars element, med behållare med respektive utan tecken.\n\nBitpackad representation ändrar den returnerade listans längd: Guiden beskriver ett packat element för varje grupp om åtta logiska inbäddningsdimensioner. En formatmedveten jämförelse skiljer sig därför från att behandla packade byte som vanliga flyttalskoordinater. Behåll den valda typen tillsammans med vektorn och använd samma representation för indexerad kod och dess fråga.\n\nParameterdokumentationen anger en standarddimension på 1536 och ett maximum på 3072. Dimensionerna är ordnade efter relevans och tillverkaren beskriver att behålla det första valda antalet som ett sätt att välja representationsstorlek. Välj dimensionen konsekvent för den lagrade samlingen och nya frågor. En kortare eller kvantiserad representation ändrar lagrings- och jämförelsebeteendet; den ökar inte indatakontexten eller gör modellen till en kodgenerator.\n\nKodning med hämtad kontext\n\nUtgåvans första användningsfall är att hämta kontext för kodkomplettering, redigering eller förklaring. Förbered meningsfulla kodenheter och behåll kodarkivets revision och källidentifierarna. En fråga om hur ett visst fel hanteras kan hämta relaterade funktioner som applikationen sedan ger till en kodmodell tillsammans med den faktiska ändringsbegäran.\n\nEtt praktiskt resultat är en rangordnad uppsättning källutdrag med filsökvägar, symboler och innehållet som behövs för att förstå deras beteende. Utdragen kan öppnas av en utvecklare eller ges till en assistent. Codestral Embed utför representationssteget; en separat komponent väljer resultaten och en genereringsmodell skriver förklaringen eller kodförslaget.\n\nSemantisk sökning och likhet\n\nTillverkaren beskriver kodsökning med frågor på naturligt språk eller i kod. En utvecklare kan fråga efter implementationen av ett beteende även när funktionsnamnet skiljer sig från begärans ordalydelse. Ta med beteendet och villkoren som särskiljer den avsedda implementationen; en generell fråga om ett helt delsystem kan hämta relaterat material utan att lösa den specifika frågan.\n\nUtgåvan beskriver också att hitta nästan duplicerad eller funktionellt liknande kod trots lexikala skillnader. Sådana resultat kan hjälpa till att hitta en återanvändbar implementation eller identifiera kod som behöver ytterligare granskning. Likhet i inbäddningsrummet är en signal att granska källan; den fastställer inte att två fragment har identiskt beteende för alla indata.\n\nKlustring, analys och jämförelse\n\nKodinbäddningar kan användas för att gruppera kod efter funktionalitet eller struktur och granska ett kodarkivs sammansättning. Håll originalutdragen och identifierarna tillgängliga så att en grupp kan tolkas av en person eller ett senare applikationssteg. Ett kluster är en representationsbaserad gruppering, inte en automatiskt verifierad arkitekturbeskrivning.\n\nTillverkarens flyttalsvektorexempel använder enhetsnormaliserade inbäddningar, för vilka cosinuslikhet, skalärprodukt och euklidiskt avstånd ger konsekventa rangordningar. Kvantiserat och bitpackat resultat bör behålla sin egen formathantering i stället för att ärva ett antagande om råa flyttalskoordinater. Den publicerade slutpunkten behåller också indataindex, vilket hjälper till att bevara kopplingen mellan varje vektor och dess källobjekt.\n\nUtgåva och praktiska gränser\n\nDen exakta modellsidan listar inbäddnings- och batcharbetsflöden med en kontextetikett på 8k, medan utgivningsinformationen anger 8192 token. Bevara den namngivna 2505-utgåvan, vald resultatdimension och typ genom hela samlings- och frågearbetsflödet. Detta är kodorienterat vektorresultat, åtskilt från Codestrals textkomplettering och den fastdimensionella textmodellen Mistral Embed.\n\nFörbered kodenheter som bär det relevanta beteendet, behåll deras källplatser och formulera frågan som material ska hittas för. Den användbara artefakten är en sökbar representation kopplad till faktisk kod, som stöder nästa förklarings-, redigerings- eller utvecklargranskningssteg utan att själv utföra det.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "077916c3e8b8861a45445a2377b54874ecfee81770e762941dd0e6706cfbaa6d",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "sv",
  "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=\"Stäng\">×</button></div><div class=\"idline\"><span>Mistral /</span><code>mistralai/codestral-embed-2505</code><button type=\"button\" id=\"copy-id\">Kopiera ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Modellkortets avsnitt\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Indata &amp; metoder</button><button type=\"button\" data-card-jump=\"pricing\">Priser</button><button type=\"button\" data-card-jump=\"examples\">Exempel</button><button type=\"button\" data-card-jump=\"results\">Resultat</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metoder\"><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\">Embeddings</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\">Start</h3><p class=\"mdesc-full\">Codestral Embed 2505 representerar kod och frågor på naturligt språk som vektorer för kodarkivssökning och informationssökning åt kodassistenter. Tillverkaren dokumenterar en kontext på 8192 token, konfigurerbara dimensioner upp till 3072 och flyttals-, heltals- eller bitpackade resultatformat.</p><dl class=\"card-io\" data-card-io><div><dt>Godkända indata</dt><dd>Text · token_ids</dd></div><div><dt>Resultat</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>Om modellen</summary><p class=\"note-s\" data-model-method-boundary>Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.</p><div class=\"mabout\" id=\"m-about\"><p>Codestral Embed 2505 är Mistral AI:s inbäddningsmodell specialiserad för kodsökning. Den tar emot text med källkod eller en kodfråga på naturligt språk och returnerar numeriska vektorer. Tillverkaren positionerar den för sökning i kodarkiv, kontexthämtning åt kodassistenter, likhets- och dubblettanalys samt gruppering av kod efter funktionalitet eller struktur. Dess fasta utgivningsidentifierare är codestral-embed-2505.</p><p>Indata och representation</p><p>Kodindata kan vara en funktion, ett relaterat källfragment eller en annan meningsfull enhet i ett kodarkiv. En fråga på naturligt språk kan beskriva beteendet som ska hittas i stället för att ange den exakta symbolen. Inbäddningen representerar indata för jämförelse; modellen genererar inte en ny implementation eller kör koden den tar emot.</p><p>Den officiella utgåvan dokumenterar en full indatakontext på 8192 token. För sökning rekommenderar tillverkaren delar på ungefär 3000 tecken med 1000 teckens överlappning och påpekar att större delar kan försämra sökningen. Detta är rekommendationer för sökförberedelse, inte en tokengräns på 3000 tecken. Håll fil, symbol och källplats kopplade till varje förberett objekt så att applikationen kan returnera relevant kod efter sökning.</p><p>Resultatprecision och dimensioner</p><p>Kodinbäddningsguiden dokumenterar resultattyperna float, int8, uint8, binary och ubinary. Float använder 32-bitars värden med enkelprecision. Int8 använder 8-bitars heltal med tecken från -128 till 127, medan uint8 använder 8-bitars värden utan tecken från 0 till 255. Binary och ubinary lagrar kvantiserade enbitsvärden i packade 8-bitars element, med behållare med respektive utan tecken.</p><p>Bitpackad representation ändrar den returnerade listans längd: Guiden beskriver ett packat element för varje grupp om åtta logiska inbäddningsdimensioner. En formatmedveten jämförelse skiljer sig därför från att behandla packade byte som vanliga flyttalskoordinater. Behåll den valda typen tillsammans med vektorn och använd samma representation för indexerad kod och dess fråga.</p><p>Parameterdokumentationen anger en standarddimension på 1536 och ett maximum på 3072. Dimensionerna är ordnade efter relevans och tillverkaren beskriver att behålla det första valda antalet som ett sätt att välja representationsstorlek. Välj dimensionen konsekvent för den lagrade samlingen och nya frågor. En kortare eller kvantiserad representation ändrar lagrings- och jämförelsebeteendet; den ökar inte indatakontexten eller gör modellen till en kodgenerator.</p><p>Kodning med hämtad kontext</p><p>Utgåvans första användningsfall är att hämta kontext för kodkomplettering, redigering eller förklaring. Förbered meningsfulla kodenheter och behåll kodarkivets revision och källidentifierarna. En fråga om hur ett visst fel hanteras kan hämta relaterade funktioner som applikationen sedan ger till en kodmodell tillsammans med den faktiska ändringsbegäran.</p><p>Ett praktiskt resultat är en rangordnad uppsättning källutdrag med filsökvägar, symboler och innehållet som behövs för att förstå deras beteende. Utdragen kan öppnas av en utvecklare eller ges till en assistent. Codestral Embed utför representationssteget; en separat komponent väljer resultaten och en genereringsmodell skriver förklaringen eller kodförslaget.</p><p>Semantisk sökning och likhet</p><p>Tillverkaren beskriver kodsökning med frågor på naturligt språk eller i kod. En utvecklare kan fråga efter implementationen av ett beteende även när funktionsnamnet skiljer sig från begärans ordalydelse. Ta med beteendet och villkoren som särskiljer den avsedda implementationen; en generell fråga om ett helt delsystem kan hämta relaterat material utan att lösa den specifika frågan.</p><p>Utgåvan beskriver också att hitta nästan duplicerad eller funktionellt liknande kod trots lexikala skillnader. Sådana resultat kan hjälpa till att hitta en återanvändbar implementation eller identifiera kod som behöver ytterligare granskning. Likhet i inbäddningsrummet är en signal att granska källan; den fastställer inte att två fragment har identiskt beteende för alla indata.</p><p>Klustring, analys och jämförelse</p><p>Kodinbäddningar kan användas för att gruppera kod efter funktionalitet eller struktur och granska ett kodarkivs sammansättning. Håll originalutdragen och identifierarna tillgängliga så att en grupp kan tolkas av en person eller ett senare applikationssteg. Ett kluster är en representationsbaserad gruppering, inte en automatiskt verifierad arkitekturbeskrivning.</p><p>Tillverkarens flyttalsvektorexempel använder enhetsnormaliserade inbäddningar, för vilka cosinuslikhet, skalärprodukt och euklidiskt avstånd ger konsekventa rangordningar. Kvantiserat och bitpackat resultat bör behålla sin egen formathantering i stället för att ärva ett antagande om råa flyttalskoordinater. Den publicerade slutpunkten behåller också indataindex, vilket hjälper till att bevara kopplingen mellan varje vektor och dess källobjekt.</p><p>Utgåva och praktiska gränser</p><p>Den exakta modellsidan listar inbäddnings- och batcharbetsflöden med en kontextetikett på 8k, medan utgivningsinformationen anger 8192 token. Bevara den namngivna 2505-utgåvan, vald resultatdimension och typ genom hela samlings- och frågearbetsflödet. Detta är kodorienterat vektorresultat, åtskilt från Codestrals textkomplettering och den fastdimensionella textmodellen Mistral Embed.</p><p>Förbered kodenheter som bär det relevanta beteendet, behåll deras källplatser och formulera frågan som material ska hittas för. Den användbara artefakten är en sökbar representation kopplad till faktisk kod, som stöder nästa förklarings-, redigerings- eller utvecklargranskningssteg utan att själv utföra det.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tillgängligt i Ailoot · indata &amp; metoder</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Embeddings</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Indatatyper</dt><dd><code>text</code>, <code>token_ids</code></dd></div><div><dt>Utdatatyper</dt><dd><code>embedding</code></dd></div><div><dt>Kontext</dt><dd>8 192 tokens</dd></div><div><dt>Utdataformat</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Fält</th><th>Typ</th><th>Krav</th><th>Värden &amp; gränser</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>mistralai/codestral-embed-2505</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string|string[]|integer[]|integer[][]</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Minsta antal objekt: 1</div><div>Villkor: En homogen batch som inte är tom. Token-ID:n är heltal som är större än eller lika med noll.</div><div>Indatabudget: Maximum: 8 192 · Textenhet: UTF8-byte · Tokenenhet: element i en tokenarray</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>float</div></td><td data-cell-label=\"Standard\" data-default=\"known\"><span class=\"card-cell-label\">Standard</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>integer</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Stöds inte</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Minimum: 1</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>json_value</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Villkor: Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen.</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>json_value</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Villkor: Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen.</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>json_value</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Villkor: Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen.</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Villkor: provider.options avvisades</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinationer av indatamaterial</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Metodparametrar och livscykel</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Avtal</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>model, input</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>input_shapes</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[]</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>encoding_format</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>float</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>dimensions_override</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>max_input_budget_units</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>8192</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>multimodal_objects</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>text, token_ids</td></tr></tbody></table></div><p>Livscykel: <code>synchronous_json</code></p><p class=\"note-s\">Behåll varje vektorindex och dimension.</p><p class=\"note-s\">Att modellen har ett multimodalt namn innebär inte att bildobjekt tillåts på just denna anropsväg.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Priser</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.</p><dl data-price-conditions><dt>Snabbt läge</dt><dd>Standardpris <span class=\"note-s\">När snabbt läge är valt</span></dd><dt>Flex-läge</dt><dd>Standardpris <span class=\"note-s\">När läget flex är valt</span></dd><dt>Högsta resonemangsnivå</dt><dd>Standardpris <span class=\"note-s\">När den högsta resonemangsnivån använder standardjusteringen (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-priser</h4><h4>Priser efter konfiguration</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Prislista</th><th>Avgift</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Grundpriser för token</th><td data-cell-label=\"Prislista\"><span class=\"card-cell-label\">Prislista</span>Grundpris</td><td data-cell-label=\"Avgift\"><span class=\"card-cell-label\">Avgift</span><div><span>Indata · Indatatoken</span> <b>$0.0003</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Utdata · Utdatatoken</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Cacheläsning</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Skrivning till cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Skrivning till cache, 1 tim</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. <a href=\"/docs/sv/billing/reserve/\">Så fungerar reservation och slutreglering →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exempelbegäranden</h3><h4>Ailoot Ultra · Embeddings</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodvarianter\"><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=\"Kopiera kod\"><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\">Ta emot och spara resultat</h3><h4>Ailoot Ultra · Embeddings</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Behåll alla färdiga resultat</h5><p class=\"note-s\">Behåll varje fullständigt returnerat svar, fil och innehållsdel.</p><p class=\"note-s\">Behåll varje vektor tillsammans med dess index. Antalet vektorer måste vara lika med antalet indataobjekt; dimensionerna måste vara konsekventa.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Om det ursprungliga svaret behöver kontrolleras</h5><p class=\"note-s\">Ingen endpoint för inbäddningsjobb införs.</p></div><details class=\"card-about\" data-output-fields><summary>Svarsfält</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Fält</th><th>Typ</th></tr></thead><tbody><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">object</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>finite float[]</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fel och nästa steg</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Svar</th><th>Villkor</th><th>Nästa steg</th></tr></thead><tbody><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Korrigera de angivna fälten före en ny begäran om att skapa.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Modellalias</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>Alias för metodsökvägar</h4><p class=\"note-s\">Använd metodsökvägarna som visas ovan.</p><h4>Relaterade anropar-ID:n</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": "Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde",
                "http_status": 400,
                "recovery": "Korrigera de angivna fälten före en ny begäran om att skapa.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Ingen endpoint för inbäddningsjobb införs."
            },
            "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": "Behåll varje vektor tillsammans med dess index. Antalet vektorer måste vara lika med antalet indataobjekt; dimensionerna måste vara konsekventa.",
              "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-byte",
                  "token_unit": "element i en tokenarray"
                },
                "conditions": "En homogen batch som inte är tom. Token-ID:n är heltal som är större än eller lika med noll.",
                "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": "Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options avvisades",
                "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": [
            "Behåll varje vektorindex och dimension.",
            "Att modellen har ett multimodalt namn innebär inte att bildobjekt tillåts på just denna anropsväg."
          ],
          "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": "Grundpriser för token",
            "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": "Snabbt läge",
            "value": "Standardpris",
            "when": "När snabbt läge är valt"
          },
          {
            "label": "Flex-läge",
            "value": "Standardpris",
            "when": "När läget flex är valt"
          },
          {
            "label": "Högsta resonemangsnivå",
            "value": "Standardpris",
            "when": "När den högsta resonemangsnivån använder standardjusteringen (default)"
          }
        ],
        "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": "737d860668072deb7342931ff19c68cc890786121290b9e13838f097057ca144",
    "input_html_sha256": "0283e70a725d037260ad10a44a5962be77f9d3e8b4cf97247f5a94c55d7a9c49",
    "private_audit_sha256": "48e590a230a1e57052e80a6f9a4cb128c86949427b8141f254aca8f3d591fcbf",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sv/mistralai-codestral-embed-2505/",
    "description": "Codestral Embed 2505 representerar kod och frågor på naturligt språk som vektorer för kodarkivssökning och informationssökning åt kodassistenter. Tillverkaren dokumenterar en kontext på 8192 token, konfigurerbara dimensioner upp till 3072 och flyttals-, heltals- eller bitpackade resultatformat.",
    "locale": "sv",
    "md_url": "https://ailoot.ai/models/sv/mistralai-codestral-embed-2505/index.md",
    "title": "Mistral: Codestral Embed 2505 — Ailoot",
    "url": "https://ailoot.ai/models/sv/mistralai-codestral-embed-2505/"
  },
  "rawModel": {
    "about": "Codestral Embed 2505 är Mistral AI:s inbäddningsmodell specialiserad för kodsökning. Den tar emot text med källkod eller en kodfråga på naturligt språk och returnerar numeriska vektorer. Tillverkaren positionerar den för sökning i kodarkiv, kontexthämtning åt kodassistenter, likhets- och dubblettanalys samt gruppering av kod efter funktionalitet eller struktur. Dess fasta utgivningsidentifierare är codestral-embed-2505.\n\nIndata och representation\n\nKodindata kan vara en funktion, ett relaterat källfragment eller en annan meningsfull enhet i ett kodarkiv. En fråga på naturligt språk kan beskriva beteendet som ska hittas i stället för att ange den exakta symbolen. Inbäddningen representerar indata för jämförelse; modellen genererar inte en ny implementation eller kör koden den tar emot.\n\nDen officiella utgåvan dokumenterar en full indatakontext på 8192 token. För sökning rekommenderar tillverkaren delar på ungefär 3000 tecken med 1000 teckens överlappning och påpekar att större delar kan försämra sökningen. Detta är rekommendationer för sökförberedelse, inte en tokengräns på 3000 tecken. Håll fil, symbol och källplats kopplade till varje förberett objekt så att applikationen kan returnera relevant kod efter sökning.\n\nResultatprecision och dimensioner\n\nKodinbäddningsguiden dokumenterar resultattyperna float, int8, uint8, binary och ubinary. Float använder 32-bitars värden med enkelprecision. Int8 använder 8-bitars heltal med tecken från -128 till 127, medan uint8 använder 8-bitars värden utan tecken från 0 till 255. Binary och ubinary lagrar kvantiserade enbitsvärden i packade 8-bitars element, med behållare med respektive utan tecken.\n\nBitpackad representation ändrar den returnerade listans längd: Guiden beskriver ett packat element för varje grupp om åtta logiska inbäddningsdimensioner. En formatmedveten jämförelse skiljer sig därför från att behandla packade byte som vanliga flyttalskoordinater. Behåll den valda typen tillsammans med vektorn och använd samma representation för indexerad kod och dess fråga.\n\nParameterdokumentationen anger en standarddimension på 1536 och ett maximum på 3072. Dimensionerna är ordnade efter relevans och tillverkaren beskriver att behålla det första valda antalet som ett sätt att välja representationsstorlek. Välj dimensionen konsekvent för den lagrade samlingen och nya frågor. En kortare eller kvantiserad representation ändrar lagrings- och jämförelsebeteendet; den ökar inte indatakontexten eller gör modellen till en kodgenerator.\n\nKodning med hämtad kontext\n\nUtgåvans första användningsfall är att hämta kontext för kodkomplettering, redigering eller förklaring. Förbered meningsfulla kodenheter och behåll kodarkivets revision och källidentifierarna. En fråga om hur ett visst fel hanteras kan hämta relaterade funktioner som applikationen sedan ger till en kodmodell tillsammans med den faktiska ändringsbegäran.\n\nEtt praktiskt resultat är en rangordnad uppsättning källutdrag med filsökvägar, symboler och innehållet som behövs för att förstå deras beteende. Utdragen kan öppnas av en utvecklare eller ges till en assistent. Codestral Embed utför representationssteget; en separat komponent väljer resultaten och en genereringsmodell skriver förklaringen eller kodförslaget.\n\nSemantisk sökning och likhet\n\nTillverkaren beskriver kodsökning med frågor på naturligt språk eller i kod. En utvecklare kan fråga efter implementationen av ett beteende även när funktionsnamnet skiljer sig från begärans ordalydelse. Ta med beteendet och villkoren som särskiljer den avsedda implementationen; en generell fråga om ett helt delsystem kan hämta relaterat material utan att lösa den specifika frågan.\n\nUtgåvan beskriver också att hitta nästan duplicerad eller funktionellt liknande kod trots lexikala skillnader. Sådana resultat kan hjälpa till att hitta en återanvändbar implementation eller identifiera kod som behöver ytterligare granskning. Likhet i inbäddningsrummet är en signal att granska källan; den fastställer inte att två fragment har identiskt beteende för alla indata.\n\nKlustring, analys och jämförelse\n\nKodinbäddningar kan användas för att gruppera kod efter funktionalitet eller struktur och granska ett kodarkivs sammansättning. Håll originalutdragen och identifierarna tillgängliga så att en grupp kan tolkas av en person eller ett senare applikationssteg. Ett kluster är en representationsbaserad gruppering, inte en automatiskt verifierad arkitekturbeskrivning.\n\nTillverkarens flyttalsvektorexempel använder enhetsnormaliserade inbäddningar, för vilka cosinuslikhet, skalärprodukt och euklidiskt avstånd ger konsekventa rangordningar. Kvantiserat och bitpackat resultat bör behålla sin egen formathantering i stället för att ärva ett antagande om råa flyttalskoordinater. Den publicerade slutpunkten behåller också indataindex, vilket hjälper till att bevara kopplingen mellan varje vektor och dess källobjekt.\n\nUtgåva och praktiska gränser\n\nDen exakta modellsidan listar inbäddnings- och batcharbetsflöden med en kontextetikett på 8k, medan utgivningsinformationen anger 8192 token. Bevara den namngivna 2505-utgåvan, vald resultatdimension och typ genom hela samlings- och frågearbetsflödet. Detta är kodorienterat vektorresultat, åtskilt från Codestrals textkomplettering och den fastdimensionella textmodellen Mistral Embed.\n\nFörbered kodenheter som bär det relevanta beteendet, behåll deras källplatser och formulera frågan som material ska hittas för. Den användbara artefakten är en sökbar representation kopplad till faktisk kod, som stöder nästa förklarings-, redigerings- eller utvecklargranskningssteg utan att själv utföra det.",
    "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": "Fullständig prissättning för konfigurationen finns i detaljerna."
      }
    ],
    "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": "Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde",
                "http_status": 400,
                "recovery": "Korrigera de angivna fälten före en ny begäran om att skapa.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Ingen endpoint för inbäddningsjobb införs."
            },
            "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": "Behåll varje vektor tillsammans med dess index. Antalet vektorer måste vara lika med antalet indataobjekt; dimensionerna måste vara konsekventa.",
              "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-byte",
                  "token_unit": "element i en tokenarray"
                },
                "conditions": "En homogen batch som inte är tom. Token-ID:n är heltal som är större än eller lika med noll.",
                "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": "Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options avvisades",
                "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": [
            "Behåll varje vektorindex och dimension.",
            "Att modellen har ett multimodalt namn innebär inte att bildobjekt tillåts på just denna anropsväg."
          ],
          "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": "Grundpriser för token",
            "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": "Snabbt läge",
            "value": "Standardpris",
            "when": "När snabbt läge är valt"
          },
          {
            "label": "Flex-läge",
            "value": "Standardpris",
            "when": "När läget flex är valt"
          },
          {
            "label": "Högsta resonemangsnivå",
            "value": "Standardpris",
            "when": "När den högsta resonemangsnivån använder standardjusteringen (default)"
          }
        ],
        "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 representerar kod och frågor på naturligt språk som vektorer för kodarkivssökning och informationssökning åt kodassistenter. Tillverkaren dokumenterar en kontext på 8192 token, konfigurerbara dimensioner upp till 3072 och flyttals-, heltals- eller bitpackade resultatformat."
  },
  "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 representerar kod och frågor på naturligt språk som vektorer för kodarkivssökning och informationssökning åt kodassistenter. Tillverkaren dokumenterar en kontext på 8192 token, konfigurerbara dimensioner upp till 3072 och flyttals-, heltals- eller bitpackade resultatformat.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "7c4df3a58708c244cc2646cddd5d66839768e967fdd9a4460460787a02cf16ea",
    "renderer_sha256": "8a45bb31b83d2551e6d975cf4683518c7cb445a54b9394a01947f4dd103f1051"
  },
  "sourceRevision": "16116274f8fcaa46a4c992d711a4e83ecf728e776d63cb575f652b1b317b0e86"
}
