{
  "aboutHtml": "<p>Gemini Embedding 2 je Googlov model multimodalnih vektorskih vložitev za numerično predstavitev besedila, slik, videa, zvoka in PDF. Različne vrste medijev preslika v skupni prostor, da lahko aplikacija primerja njihov pomen. Rezultat je vektor števil, uporaben za semantično iskanje, iskanje dokumentov, priporočanje, klasifikacijo ali gručenje; ni pisni odgovor ali ustvarjena medijska datoteka. Google dokumentira semantično pokritost v več kot 100 jezikih.</p><p>Za zbirko znanja ustvarite vektorje izvornih odlomkov, z njimi primerjajte uporabnikovo poizvedbo in pridobite ustrezno gradivo. Ločen besedilni model lahko nato sestavi odgovor z uporabo teh virov. Pri medijski zbirki lahko besedilni opis išče povezane slike ali video; tudi slika lahko služi kot poizvedba. Ohranite povezavo vsakega vektorja z izvirno vsebino, vključno s sklicem na stran ali posnetek, da je najdeni rezultat mogoče preveriti in prikazati v izvirnem kontekstu.</p><p>Skupna vhodna omejitev je 8192 žetonov. Vodnik stabilnega modela dovoljuje največ šest slik PNG ali JPEG, do 180 sekund zvoka MP3 ali WAV ter do 120 sekund videa MP4 ali MOV. Dokumentirani videokodeki so H264, H265, AV1 in VP9. Obdelava videa uporablja največ 32 sličic: posnetki do 32 sekund se vzorčijo z eno sličico na sekundo, daljši posnetki pa enakomerno v 32 sličic. Zvočna sled videa se v tem videovhodu ne obdela; kadar je zvok pomemben za iskanje, njegovo vektorsko vložitev izdelajte ločeno.</p><p>Vhod PDF sprejme eno datoteko z največ šestimi stranmi. Google za najboljšo kakovost priporoča eno stran na PDF. Večji vir razdelite na smiselne strani ali razdelke ter ohranite njihovo povezavo z izvirnim dokumentom. Izberite izsek, ki predstavlja to, kar naj bi bilo mogoče najti, namesto da nepovezano gradivo združujete zgolj zato, ker se prilega omejitvi. Skupna meja žetonov velja tudi za zahtevo z mešanimi mediji. Vsaka stran PDF poleg žetonov izvlečenega besedila porabi 258 vizualnih žetonov. V Googlovem dokumentiranem postopku se vsebina, ki presega skupno omejitev 8192 žetonov, skrajša brez napake.</p><p>Izhodna dimenzija je prilagodljiva od 128 do 3072, s privzeto vrednostjo 3072 in priporočenimi velikostmi 768, 1536 in 3072. Model uporablja Matryoshka Representation Learning, zato začetni deli vektorja ostajajo uporabni pri manjših dimenzijah. Vodnik dokumentira samodejno normalizacijo tako privzetih kot skrajšanih vektorjev. Za zapise in poizvedbe, ki jih aplikacija primerja, izberite dosledno dimenzijo; zahtevana velikost spremeni numerično predstavitev, ne same izvorne vsebine.</p><p>Pri izključno besedilnih nalogah namen vključite v besedilo, namesto da uporabite starejše polje task_type. Google razlikuje med asimetričnim iskanjem in simetričnim primerjanjem. Iskalna poizvedba uporablja »task: search result | query: {content}«, izvorni dokument pa »title: {title} | text: {content}«; če nima naslova, uporabite »title: none«. Naloge odgovarjanja na vprašanja, preverjanja dejstev in iskanja kode imajo lastne predpone poizvedb. Pri klasifikaciji, gručenju ali podobnosti stavkov na obeh straneh dosledno uporabljajte isti format naloge. Vodnik na splošno odsvetuje dodajanje predpone naloge besedilnemu delu združene multimodalne predstavitve.</p><p>Struktura vhoda določa, ali rezultat predstavlja en združen predmet ali ločene elemente. Več delov, podanih skupaj, ustvari združeno vektorsko vložitev; ločeni objekti Content ustvarijo ločene vložitve za vsak vnos. Pri objavi z besedilom in sliko lahko združena predstavitev zajame njuno povezavo. Zapise, ki jih je treba iskati neodvisno, ohranite ločene. Ta izbira vpliva na podrobnost iskanja: en vektor za celotno objavo se razlikuje od enega vektorja za vsak odlomek ali sliko.</p><p>Vodnik navaja, da vektorji Gemini Embedding 001 in Gemini Embedding 2 zasedajo nezdružljiva prostora in jih ni mogoče neposredno primerjati. Zbirka, prenesena iz starejšega modela, potrebuje nove vektorske vložitve za novi prostor. Izbiro modela in dimenzije ohranite dosledne s primerjanimi vektorji, izvirno besedilo in medije pa shranite ločeno od numeričnega indeksa. Podobnost vektorskih vložitev je iskalni signal, ne stvarna razlaga, zakaj dokument odgovarja na uporabnikovo vprašanje.</p><p>Pri praktičnem katalogu izdelajte skupno vložitev fotografije izdelka in odobrenega opisa, kadar naj bi bil par najden kot en predmet. Pri zbirki dokumentov ustvarite vložitve osredotočenih odlomkov in jih primerjajte s poizvedbo, oblikovano glede na namen, nato ob rezultatu iskanja predstavite izvorne odlomke. Pri zvoku ali videu izberite epizodo, ki opisuje iskani dogodek, in ohranite njen izvirni časovni razpon. Uporaben rezultat je numerična predstavitev, povezana z izvornim dokaznim gradivom za naslednji korak iskanja ali analize v aplikaciji.</p>",
  "aboutText": "Gemini Embedding 2 je Googlov model multimodalnih vektorskih vložitev za numerično predstavitev besedila, slik, videa, zvoka in PDF. Različne vrste medijev preslika v skupni prostor, da lahko aplikacija primerja njihov pomen. Rezultat je vektor števil, uporaben za semantično iskanje, iskanje dokumentov, priporočanje, klasifikacijo ali gručenje; ni pisni odgovor ali ustvarjena medijska datoteka. Google dokumentira semantično pokritost v več kot 100 jezikih.\n\nZa zbirko znanja ustvarite vektorje izvornih odlomkov, z njimi primerjajte uporabnikovo poizvedbo in pridobite ustrezno gradivo. Ločen besedilni model lahko nato sestavi odgovor z uporabo teh virov. Pri medijski zbirki lahko besedilni opis išče povezane slike ali video; tudi slika lahko služi kot poizvedba. Ohranite povezavo vsakega vektorja z izvirno vsebino, vključno s sklicem na stran ali posnetek, da je najdeni rezultat mogoče preveriti in prikazati v izvirnem kontekstu.\n\nSkupna vhodna omejitev je 8192 žetonov. Vodnik stabilnega modela dovoljuje največ šest slik PNG ali JPEG, do 180 sekund zvoka MP3 ali WAV ter do 120 sekund videa MP4 ali MOV. Dokumentirani videokodeki so H264, H265, AV1 in VP9. Obdelava videa uporablja največ 32 sličic: posnetki do 32 sekund se vzorčijo z eno sličico na sekundo, daljši posnetki pa enakomerno v 32 sličic. Zvočna sled videa se v tem videovhodu ne obdela; kadar je zvok pomemben za iskanje, njegovo vektorsko vložitev izdelajte ločeno.\n\nVhod PDF sprejme eno datoteko z največ šestimi stranmi. Google za najboljšo kakovost priporoča eno stran na PDF. Večji vir razdelite na smiselne strani ali razdelke ter ohranite njihovo povezavo z izvirnim dokumentom. Izberite izsek, ki predstavlja to, kar naj bi bilo mogoče najti, namesto da nepovezano gradivo združujete zgolj zato, ker se prilega omejitvi. Skupna meja žetonov velja tudi za zahtevo z mešanimi mediji. Vsaka stran PDF poleg žetonov izvlečenega besedila porabi 258 vizualnih žetonov. V Googlovem dokumentiranem postopku se vsebina, ki presega skupno omejitev 8192 žetonov, skrajša brez napake.\n\nIzhodna dimenzija je prilagodljiva od 128 do 3072, s privzeto vrednostjo 3072 in priporočenimi velikostmi 768, 1536 in 3072. Model uporablja Matryoshka Representation Learning, zato začetni deli vektorja ostajajo uporabni pri manjših dimenzijah. Vodnik dokumentira samodejno normalizacijo tako privzetih kot skrajšanih vektorjev. Za zapise in poizvedbe, ki jih aplikacija primerja, izberite dosledno dimenzijo; zahtevana velikost spremeni numerično predstavitev, ne same izvorne vsebine.\n\nPri izključno besedilnih nalogah namen vključite v besedilo, namesto da uporabite starejše polje task_type. Google razlikuje med asimetričnim iskanjem in simetričnim primerjanjem. Iskalna poizvedba uporablja »task: search result | query: {content}«, izvorni dokument pa »title: {title} | text: {content}«; če nima naslova, uporabite »title: none«. Naloge odgovarjanja na vprašanja, preverjanja dejstev in iskanja kode imajo lastne predpone poizvedb. Pri klasifikaciji, gručenju ali podobnosti stavkov na obeh straneh dosledno uporabljajte isti format naloge. Vodnik na splošno odsvetuje dodajanje predpone naloge besedilnemu delu združene multimodalne predstavitve.\n\nStruktura vhoda določa, ali rezultat predstavlja en združen predmet ali ločene elemente. Več delov, podanih skupaj, ustvari združeno vektorsko vložitev; ločeni objekti Content ustvarijo ločene vložitve za vsak vnos. Pri objavi z besedilom in sliko lahko združena predstavitev zajame njuno povezavo. Zapise, ki jih je treba iskati neodvisno, ohranite ločene. Ta izbira vpliva na podrobnost iskanja: en vektor za celotno objavo se razlikuje od enega vektorja za vsak odlomek ali sliko.\n\nVodnik navaja, da vektorji Gemini Embedding 001 in Gemini Embedding 2 zasedajo nezdružljiva prostora in jih ni mogoče neposredno primerjati. Zbirka, prenesena iz starejšega modela, potrebuje nove vektorske vložitve za novi prostor. Izbiro modela in dimenzije ohranite dosledne s primerjanimi vektorji, izvirno besedilo in medije pa shranite ločeno od numeričnega indeksa. Podobnost vektorskih vložitev je iskalni signal, ne stvarna razlaga, zakaj dokument odgovarja na uporabnikovo vprašanje.\n\nPri praktičnem katalogu izdelajte skupno vložitev fotografije izdelka in odobrenega opisa, kadar naj bi bil par najden kot en predmet. Pri zbirki dokumentov ustvarite vložitve osredotočenih odlomkov in jih primerjajte s poizvedbo, oblikovano glede na namen, nato ob rezultatu iskanja predstavite izvorne odlomke. Pri zvoku ali videu izberite epizodo, ki opisuje iskani dogodek, in ohranite njen izvirni časovni razpon. Uporaben rezultat je numerična predstavitev, povezana z izvornim dokaznim gradivom za naslednji korak iskanja ali analize v aplikaciji.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "68f719b488efb134af4af42c05f6b0615fdc88f1e048a7e800aa9891ef7b82e4",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "sl",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">G</span><h2 id=\"sheet-title\">Google: Gemini Embedding 2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Zapri\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/gemini-embedding-2</code><button type=\"button\" id=\"copy-id\">Kopiraj ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Razdelki kartice modela\"><button type=\"button\" data-card-jump=\"overview\">Začetek</button><button type=\"button\" data-card-jump=\"methods\">Vhodi in metode</button><button type=\"button\" data-card-jump=\"pricing\">Cenik</button><button type=\"button\" data-card-jump=\"examples\">Primeri</button><button type=\"button\" data-card-jump=\"results\">Rezultati</button><button type=\"button\" data-card-jump=\"aliases\">Druga imena</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metode API\"><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|google%2Fgemini-embedding-2\">Vektorske predstavitve</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\">Začetek</h3><p class=\"mdesc-full\">Gemini Embedding 2 preslika besedilo, slike, zvok, video in PDF v skupni numerični prostor. Njegovi vektorji podpirajo iskanje med modalnostmi, pridobivanje gradiva, klasifikacijo in gručenje, s prilagodljivimi dimenzijami in vhodno omejitvijo 8192 žetonov.</p><dl class=\"card-io\" data-card-io><div><dt>Dovoljeni vhodi</dt><dd>Besedilo · token_ids</dd></div><div><dt>Rezultati</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>O modelu</summary><p class=\"note-s\" data-model-method-boundary>Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.</p><div class=\"mabout\" id=\"m-about\"><p>Gemini Embedding 2 je Googlov model multimodalnih vektorskih vložitev za numerično predstavitev besedila, slik, videa, zvoka in PDF. Različne vrste medijev preslika v skupni prostor, da lahko aplikacija primerja njihov pomen. Rezultat je vektor števil, uporaben za semantično iskanje, iskanje dokumentov, priporočanje, klasifikacijo ali gručenje; ni pisni odgovor ali ustvarjena medijska datoteka. Google dokumentira semantično pokritost v več kot 100 jezikih.</p><p>Za zbirko znanja ustvarite vektorje izvornih odlomkov, z njimi primerjajte uporabnikovo poizvedbo in pridobite ustrezno gradivo. Ločen besedilni model lahko nato sestavi odgovor z uporabo teh virov. Pri medijski zbirki lahko besedilni opis išče povezane slike ali video; tudi slika lahko služi kot poizvedba. Ohranite povezavo vsakega vektorja z izvirno vsebino, vključno s sklicem na stran ali posnetek, da je najdeni rezultat mogoče preveriti in prikazati v izvirnem kontekstu.</p><p>Skupna vhodna omejitev je 8192 žetonov. Vodnik stabilnega modela dovoljuje največ šest slik PNG ali JPEG, do 180 sekund zvoka MP3 ali WAV ter do 120 sekund videa MP4 ali MOV. Dokumentirani videokodeki so H264, H265, AV1 in VP9. Obdelava videa uporablja največ 32 sličic: posnetki do 32 sekund se vzorčijo z eno sličico na sekundo, daljši posnetki pa enakomerno v 32 sličic. Zvočna sled videa se v tem videovhodu ne obdela; kadar je zvok pomemben za iskanje, njegovo vektorsko vložitev izdelajte ločeno.</p><p>Vhod PDF sprejme eno datoteko z največ šestimi stranmi. Google za najboljšo kakovost priporoča eno stran na PDF. Večji vir razdelite na smiselne strani ali razdelke ter ohranite njihovo povezavo z izvirnim dokumentom. Izberite izsek, ki predstavlja to, kar naj bi bilo mogoče najti, namesto da nepovezano gradivo združujete zgolj zato, ker se prilega omejitvi. Skupna meja žetonov velja tudi za zahtevo z mešanimi mediji. Vsaka stran PDF poleg žetonov izvlečenega besedila porabi 258 vizualnih žetonov. V Googlovem dokumentiranem postopku se vsebina, ki presega skupno omejitev 8192 žetonov, skrajša brez napake.</p><p>Izhodna dimenzija je prilagodljiva od 128 do 3072, s privzeto vrednostjo 3072 in priporočenimi velikostmi 768, 1536 in 3072. Model uporablja Matryoshka Representation Learning, zato začetni deli vektorja ostajajo uporabni pri manjših dimenzijah. Vodnik dokumentira samodejno normalizacijo tako privzetih kot skrajšanih vektorjev. Za zapise in poizvedbe, ki jih aplikacija primerja, izberite dosledno dimenzijo; zahtevana velikost spremeni numerično predstavitev, ne same izvorne vsebine.</p><p>Pri izključno besedilnih nalogah namen vključite v besedilo, namesto da uporabite starejše polje task_type. Google razlikuje med asimetričnim iskanjem in simetričnim primerjanjem. Iskalna poizvedba uporablja »task: search result | query: {content}«, izvorni dokument pa »title: {title} | text: {content}«; če nima naslova, uporabite »title: none«. Naloge odgovarjanja na vprašanja, preverjanja dejstev in iskanja kode imajo lastne predpone poizvedb. Pri klasifikaciji, gručenju ali podobnosti stavkov na obeh straneh dosledno uporabljajte isti format naloge. Vodnik na splošno odsvetuje dodajanje predpone naloge besedilnemu delu združene multimodalne predstavitve.</p><p>Struktura vhoda določa, ali rezultat predstavlja en združen predmet ali ločene elemente. Več delov, podanih skupaj, ustvari združeno vektorsko vložitev; ločeni objekti Content ustvarijo ločene vložitve za vsak vnos. Pri objavi z besedilom in sliko lahko združena predstavitev zajame njuno povezavo. Zapise, ki jih je treba iskati neodvisno, ohranite ločene. Ta izbira vpliva na podrobnost iskanja: en vektor za celotno objavo se razlikuje od enega vektorja za vsak odlomek ali sliko.</p><p>Vodnik navaja, da vektorji Gemini Embedding 001 in Gemini Embedding 2 zasedajo nezdružljiva prostora in jih ni mogoče neposredno primerjati. Zbirka, prenesena iz starejšega modela, potrebuje nove vektorske vložitve za novi prostor. Izbiro modela in dimenzije ohranite dosledne s primerjanimi vektorji, izvirno besedilo in medije pa shranite ločeno od numeričnega indeksa. Podobnost vektorskih vložitev je iskalni signal, ne stvarna razlaga, zakaj dokument odgovarja na uporabnikovo vprašanje.</p><p>Pri praktičnem katalogu izdelajte skupno vložitev fotografije izdelka in odobrenega opisa, kadar naj bi bil par najden kot en predmet. Pri zbirki dokumentov ustvarite vložitve osredotočenih odlomkov in jih primerjajte s poizvedbo, oblikovano glede na namen, nato ob rezultatu iskanja predstavite izvorne odlomke. Pri zvoku ali videu izberite epizodo, ki opisuje iskani dogodek, in ohranite njen izvirni časovni razpon. Uporaben rezultat je numerična predstavitev, povezana z izvornim dokaznim gradivom za naslednji korak iskanja ali analize v aplikaciji.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Na voljo v Ailoot · vhodi in metode</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Vektorske predstavitve</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Vhod</dt><dd><code>text</code>, <code>token_ids</code></dd></div><div><dt>Izhod</dt><dd><code>embedding</code></dd></div><div><dt>Kontekst</dt><dd>8192 tokens</dd></div><div><dt>Izhodni format</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Polje</th><th>Vrsta</th><th>Zahteva</th><th>Vrednosti in omejitve</th><th>Privzeto</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>google/gemini-embedding-2</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string|string[]|integer[]|integer[][]</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Najmanjše število elementov: 1</div><div>Pogoji: Neprazen paket istovrstnih vhodnih podatkov. Identifikatorji žetonov so nenegativna cela števila.</div><div>Vhodni proračun: Največ: 8192 · Besedilna enota: bajti UTF8 · Enota žetonov: elementi polja žetonov</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>float</div></td><td data-cell-label=\"Privzeto\" data-default=\"known\"><span class=\"card-cell-label\">Privzeto</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>integer</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Ni podprto</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Najmanj: 1</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>json_value</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Pogoji: Izvor dovoljuje to polje metapodatkov JSON; natančen pomen pri ponudniku je odvisen od modela.</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>json_value</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Pogoji: Izvor dovoljuje to polje metapodatkov JSON; natančen pomen pri ponudniku je odvisen od modela.</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>json_value</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Pogoji: Izvor dovoljuje to polje metapodatkov JSON; natančen pomen pri ponudniku je odvisen od modela.</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>object</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Pogoji: provider.options je zavrnjen</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinacije vhodnih gradiv</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Parametri in življenjski cikel metode</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Specifikacija</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=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</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=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</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=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</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=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</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=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</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=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</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=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</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=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>text, token_ids</td></tr></tbody></table></div><p>Življenjski cikel: <code>synchronous_json</code></p><p class=\"note-s\">Shranite indeks in dimenzijo vsakega vektorja.</p><p class=\"note-s\">Ime multimodalnega modela ne pomeni, da so na tej točno določeni poti dovoljeni slikovni objekti.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Cenik</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.</p><dl data-price-conditions><dt>Hitri način</dt><dd>Standardna tarifa <span class=\"note-s\">Ko je izbran hitri način</span></dd><dt>Način flex</dt><dd>Standardna tarifa <span class=\"note-s\">Ko je izbran način flex</span></dd><dt>Najvišja raven razmišljanja</dt><dd>Standardna tarifa <span class=\"note-s\">Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Cene Ailoot</h4><h4>Cene po nastavitvah</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Nastavitev</th><th>Cenovna lestvica</th><th>Strošek</th></tr></thead><tbody><tr><th data-cell-label=\"Nastavitev\" scope=\"row\"><span class=\"card-cell-label\">Nastavitev</span>Osnovne cene za žetone</th><td data-cell-label=\"Cenovna lestvica\"><span class=\"card-cell-label\">Cenovna lestvica</span>Osnovna cena</td><td data-cell-label=\"Strošek\"><span class=\"card-cell-label\">Strošek</span><div><span>Vhod · Vhodni žetoni</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Izhod · Izhodni žetoni</span> <b>$0</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Vhod · Branje predpomnilnika</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Vhod · Zapis v predpomnilnik</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div><div><span>Vhod · Zapis v predpomnilnik, 1 ura</span> <b>—</b> <span class=\"price-unit\">/ 1K žetonov</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. <a href=\"/docs/sl/billing/reserve/\">Kako delujeta rezervacija in obračun →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Primeri zahtev</h3><h4>Ailoot Ultra · Vektorske predstavitve</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Primeri kode\"><button class=\"cg-tab\" id=\"model-code-1487-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1487-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1487-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1487-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=\"Kopiraj kodo\"><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-1487-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1487-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;google/gemini-embedding-2&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-1487-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1487-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;google/gemini-embedding-2&#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\">Prejmi in shrani rezultate</h3><h4>Ailoot Ultra · Vektorske predstavitve</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Ohrani vse dokončane rezultate</h5><p class=\"note-s\">Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.</p><p class=\"note-s\">Shranite vsak vektor skupaj z njegovim indeksom. Število vektorjev mora biti enako številu vhodov; dimenzije morajo biti skladne.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Če je treba preveriti izvirni odgovor</h5><p class=\"note-s\">Končna točka za opravila ustvarjanja vektorskih predstavitev se ne uvaja.</p></div><details class=\"card-about\" data-output-fields><summary>Polja odgovora</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Polje</th><th>Vrsta</th></tr></thead><tbody><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">object</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>string</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>string</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>integer</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>finite float[]</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Napake in naslednji koraki</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Odgovor</th><th>Pogoj</th><th>Naslednji korak</th></tr></thead><tbody><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Neveljavna obvezna polja, predstavitev gradiva ali vrednost parametra</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Pred novo zahtevo za ustvarjanje popravite navedena polja.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Druga imena</h3><h4>Druga imena modelov</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=google%2Fgemini-embedding-2&amp;route=Ultra&amp;caller=google%2Fgemini-embedding-2&amp;fmt=embeddings\"><code>google/gemini-embedding-2</code></a></span></p><h4>Druga imena poti metod</h4><p class=\"note-s\">Uporabite zgoraj navedene poti metod.</p><h4>Povezani ID-ji za klic</h4><p class=\"note-s\"><a href=\"#m=google%2Fgemini-embedding-2&amp;route=Ultra&amp;caller=google%2Fgemini-embedding-2&amp;fmt=embeddings\"><code>google/gemini-embedding-2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/gemini-embedding-2",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "google/gemini-embedding-2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|google%2Fgemini-embedding-2",
      "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": "Neveljavna obvezna polja, predstavitev gradiva ali vrednost parametra",
                "http_status": 400,
                "recovery": "Pred novo zahtevo za ustvarjanje popravite navedena polja.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Končna točka za opravila ustvarjanja vektorskih predstavitev se ne uvaja."
            },
            "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": "Shranite vsak vektor skupaj z njegovim indeksom. Število vektorjev mora biti enako številu vhodov; dimenzije morajo biti skladne.",
              "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": [
                  "google/gemini-embedding-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 8192,
                  "text_unit": "bajti UTF8",
                  "token_unit": "elementi polja žetonov"
                },
                "conditions": "Neprazen paket istovrstnih vhodnih podatkov. Identifikatorji žetonov so nenegativna cela števila.",
                "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": "Izvor dovoljuje to polje metapodatkov JSON; natančen pomen pri ponudniku je odvisen od modela.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Izvor dovoljuje to polje metapodatkov JSON; natančen pomen pri ponudniku je odvisen od modela.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Izvor dovoljuje to polje metapodatkov JSON; natančen pomen pri ponudniku je odvisen od modela.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options je zavrnjen",
                "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": [
            "Shranite indeks in dimenzijo vsakega vektorja.",
            "Ime multimodalnega modela ne pomeni, da so na tej točno določeni poti dovoljeni slikovni objekti."
          ],
          "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": "Osnovne cene za žetone",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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\": \"google/gemini-embedding-2\", \"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='google/gemini-embedding-2',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.4,
        "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": "Hitri način",
            "value": "Standardna tarifa",
            "when": "Ko je izbran hitri način"
          },
          {
            "label": "Način flex",
            "value": "Standardna tarifa",
            "when": "Ko je izbran način flex"
          },
          {
            "label": "Najvišja raven razmišljanja",
            "value": "Standardna tarifa",
            "when": "Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (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.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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": "google/gemini-embedding-2",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "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": "google/gemini-embedding-2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "2c785abfda8e0790bb34826ac5c68734f7934d076031794579327cd396d38635",
    "input_html_sha256": "eff620b5a9c31fbd8c3cb792587279dd5a4014ebc335ee538633401113d31138",
    "private_audit_sha256": "0b67ff20998895e863ff91f34a92d7be7a0a1507ed3837ad0a4c9c18b4873a9a",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sl/google-gemini-embedding-2/",
    "description": "Gemini Embedding 2 preslika besedilo, slike, zvok, video in PDF v skupni numerični prostor. Njegovi vektorji podpirajo iskanje med modalnostmi, pridobivanje gradiva, klasifikacijo in gručenje, s prilagodljivimi dimenzijami in vhodno omejitvijo 8192 žetonov.",
    "locale": "sl",
    "md_url": "https://ailoot.ai/models/sl/google-gemini-embedding-2/index.md",
    "title": "Google: Gemini Embedding 2 — Ailoot",
    "url": "https://ailoot.ai/models/sl/google-gemini-embedding-2/"
  },
  "rawModel": {
    "about": "Gemini Embedding 2 je Googlov model multimodalnih vektorskih vložitev za numerično predstavitev besedila, slik, videa, zvoka in PDF. Različne vrste medijev preslika v skupni prostor, da lahko aplikacija primerja njihov pomen. Rezultat je vektor števil, uporaben za semantično iskanje, iskanje dokumentov, priporočanje, klasifikacijo ali gručenje; ni pisni odgovor ali ustvarjena medijska datoteka. Google dokumentira semantično pokritost v več kot 100 jezikih.\n\nZa zbirko znanja ustvarite vektorje izvornih odlomkov, z njimi primerjajte uporabnikovo poizvedbo in pridobite ustrezno gradivo. Ločen besedilni model lahko nato sestavi odgovor z uporabo teh virov. Pri medijski zbirki lahko besedilni opis išče povezane slike ali video; tudi slika lahko služi kot poizvedba. Ohranite povezavo vsakega vektorja z izvirno vsebino, vključno s sklicem na stran ali posnetek, da je najdeni rezultat mogoče preveriti in prikazati v izvirnem kontekstu.\n\nSkupna vhodna omejitev je 8192 žetonov. Vodnik stabilnega modela dovoljuje največ šest slik PNG ali JPEG, do 180 sekund zvoka MP3 ali WAV ter do 120 sekund videa MP4 ali MOV. Dokumentirani videokodeki so H264, H265, AV1 in VP9. Obdelava videa uporablja največ 32 sličic: posnetki do 32 sekund se vzorčijo z eno sličico na sekundo, daljši posnetki pa enakomerno v 32 sličic. Zvočna sled videa se v tem videovhodu ne obdela; kadar je zvok pomemben za iskanje, njegovo vektorsko vložitev izdelajte ločeno.\n\nVhod PDF sprejme eno datoteko z največ šestimi stranmi. Google za najboljšo kakovost priporoča eno stran na PDF. Večji vir razdelite na smiselne strani ali razdelke ter ohranite njihovo povezavo z izvirnim dokumentom. Izberite izsek, ki predstavlja to, kar naj bi bilo mogoče najti, namesto da nepovezano gradivo združujete zgolj zato, ker se prilega omejitvi. Skupna meja žetonov velja tudi za zahtevo z mešanimi mediji. Vsaka stran PDF poleg žetonov izvlečenega besedila porabi 258 vizualnih žetonov. V Googlovem dokumentiranem postopku se vsebina, ki presega skupno omejitev 8192 žetonov, skrajša brez napake.\n\nIzhodna dimenzija je prilagodljiva od 128 do 3072, s privzeto vrednostjo 3072 in priporočenimi velikostmi 768, 1536 in 3072. Model uporablja Matryoshka Representation Learning, zato začetni deli vektorja ostajajo uporabni pri manjših dimenzijah. Vodnik dokumentira samodejno normalizacijo tako privzetih kot skrajšanih vektorjev. Za zapise in poizvedbe, ki jih aplikacija primerja, izberite dosledno dimenzijo; zahtevana velikost spremeni numerično predstavitev, ne same izvorne vsebine.\n\nPri izključno besedilnih nalogah namen vključite v besedilo, namesto da uporabite starejše polje task_type. Google razlikuje med asimetričnim iskanjem in simetričnim primerjanjem. Iskalna poizvedba uporablja »task: search result | query: {content}«, izvorni dokument pa »title: {title} | text: {content}«; če nima naslova, uporabite »title: none«. Naloge odgovarjanja na vprašanja, preverjanja dejstev in iskanja kode imajo lastne predpone poizvedb. Pri klasifikaciji, gručenju ali podobnosti stavkov na obeh straneh dosledno uporabljajte isti format naloge. Vodnik na splošno odsvetuje dodajanje predpone naloge besedilnemu delu združene multimodalne predstavitve.\n\nStruktura vhoda določa, ali rezultat predstavlja en združen predmet ali ločene elemente. Več delov, podanih skupaj, ustvari združeno vektorsko vložitev; ločeni objekti Content ustvarijo ločene vložitve za vsak vnos. Pri objavi z besedilom in sliko lahko združena predstavitev zajame njuno povezavo. Zapise, ki jih je treba iskati neodvisno, ohranite ločene. Ta izbira vpliva na podrobnost iskanja: en vektor za celotno objavo se razlikuje od enega vektorja za vsak odlomek ali sliko.\n\nVodnik navaja, da vektorji Gemini Embedding 001 in Gemini Embedding 2 zasedajo nezdružljiva prostora in jih ni mogoče neposredno primerjati. Zbirka, prenesena iz starejšega modela, potrebuje nove vektorske vložitve za novi prostor. Izbiro modela in dimenzije ohranite dosledne s primerjanimi vektorji, izvirno besedilo in medije pa shranite ločeno od numeričnega indeksa. Podobnost vektorskih vložitev je iskalni signal, ne stvarna razlaga, zakaj dokument odgovarja na uporabnikovo vprašanje.\n\nPri praktičnem katalogu izdelajte skupno vložitev fotografije izdelka in odobrenega opisa, kadar naj bi bil par najden kot en predmet. Pri zbirki dokumentov ustvarite vložitve osredotočenih odlomkov in jih primerjajte s poizvedbo, oblikovano glede na namen, nato ob rezultatu iskanja predstavite izvorne odlomke. Pri zvoku ali videu izberite epizodo, ki opisuje iskani dogodek, in ohranite njen izvirni časovni razpon. Uporaben rezultat je numerična predstavitev, povezana z izvornim dokaznim gradivom za naslednji korak iskanja ali analize v aplikaciji.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "available": null,
    "canonical_model": "google/gemini-embedding-2",
    "capabilities": {
      "context_length": 8192,
      "manufacturer_input": [
        "text",
        "image",
        "file",
        "audio",
        "video"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "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": "Celoten cenik konfiguracije je v podrobnostih."
      }
    ],
    "ctx": 8192,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "google/gemini-embedding-2",
    "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": "Neveljavna obvezna polja, predstavitev gradiva ali vrednost parametra",
                "http_status": 400,
                "recovery": "Pred novo zahtevo za ustvarjanje popravite navedena polja.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Končna točka za opravila ustvarjanja vektorskih predstavitev se ne uvaja."
            },
            "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": "Shranite vsak vektor skupaj z njegovim indeksom. Število vektorjev mora biti enako številu vhodov; dimenzije morajo biti skladne.",
              "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": [
                  "google/gemini-embedding-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 8192,
                  "text_unit": "bajti UTF8",
                  "token_unit": "elementi polja žetonov"
                },
                "conditions": "Neprazen paket istovrstnih vhodnih podatkov. Identifikatorji žetonov so nenegativna cela števila.",
                "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": "Izvor dovoljuje to polje metapodatkov JSON; natančen pomen pri ponudniku je odvisen od modela.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Izvor dovoljuje to polje metapodatkov JSON; natančen pomen pri ponudniku je odvisen od modela.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Izvor dovoljuje to polje metapodatkov JSON; natančen pomen pri ponudniku je odvisen od modela.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options je zavrnjen",
                "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": [
            "Shranite indeks in dimenzijo vsakega vektorja.",
            "Ime multimodalnega modela ne pomeni, da so na tej točno določeni poti dovoljeni slikovni objekti."
          ],
          "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": "Osnovne cene za žetone",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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\": \"google/gemini-embedding-2\", \"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='google/gemini-embedding-2',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.4,
        "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": "Hitri način",
            "value": "Standardna tarifa",
            "when": "Ko je izbran hitri način"
          },
          {
            "label": "Način flex",
            "value": "Standardna tarifa",
            "when": "Ko je izbran način flex"
          },
          {
            "label": "Najvišja raven razmišljanja",
            "value": "Standardna tarifa",
            "when": "Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (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.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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": "google/gemini-embedding-2",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "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": "google/gemini-embedding-2",
        "request_model_id": "google/gemini-embedding-2",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Gemini Embedding 2",
    "price": {
      "in": 0.4,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.4,
      "sort_out": 0,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Эмбеддинги · Base token rates",
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "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": "google/gemini-embedding-2",
    "short": "Gemini Embedding 2 preslika besedilo, slike, zvok, video in PDF v skupni numerični prostor. Njegovi vektorji podpirajo iskanje med modalnostmi, pridobivanje gradiva, klasifikacijo in gručenje, s prilagodljivimi dimenzijami in vhodno omejitvijo 8192 žetonov."
  },
  "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": "Gemini Embedding 2 preslika besedilo, slike, zvok, video in PDF v skupni numerični prostor. Njegovi vektorji podpirajo iskanje med modalnostmi, pridobivanje gradiva, klasifikacijo in gručenje, s prilagodljivimi dimenzijami in vhodno omejitvijo 8192 žetonov.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "ef6e99072884420ab4beb03ca8d738dc75fd141874ae1c23b87412f8735ff28b",
    "renderer_sha256": "dcba2271c18b0f9570a8b166e8d1e3166f121e096a58609c3a46da31562a1bf2"
  },
  "sourceRevision": "310797cc0cce53f72a32ca19447e903d986182a5969aa76c43bbf8be70a7450a"
}
