{
  "aboutHtml": "<p>Gemini Embedding 2 je multimodálny model embeddingov od Google na číselnú reprezentáciu textu, obrázkov, videa, zvuku a PDF. Rôzne typy médií mapuje do spoločného priestoru, aby aplikácia mohla porovnávať ich význam. Výsledkom je vektor čísel užitočný na sémantické vyhľadávanie, získavanie dokumentov, odporúčanie, klasifikáciu či zhlukovanie; nejde o písomnú odpoveď ani generovaný mediálny súbor. Google dokumentuje sémantické pokrytie viac ako 100 jazykov.</p><p>Pri znalostnej báze vytvorte vektory zdrojových pasáží, porovnajte s nimi dopyt používateľa a vyhľadajte relevantný materiál. Samostatný textový model potom môže zostaviť odpoveď s využitím týchto zdrojov. Pri mediálnej kolekcii môže textový opis hľadať súvisiace obrázky či video; dopytom môže byť aj obrázok. Zachovajte spojenie každého vektora s pôvodným obsahom vrátane odkazu na stranu alebo klip, aby sa vyhľadaný výsledok dal preskúmať a ukázať v pôvodnom kontexte.</p><p>Celkový vstupný limit je 8192 tokenov. Príručka stabilného modelu povoľuje najviac šesť obrázkov PNG alebo JPEG, najviac 180 sekúnd zvuku MP3 alebo WAV a najviac 120 sekúnd videa MP4 alebo MOV. Zdokumentované videokodeky sú H264, H265, AV1 a VP9. Spracovanie videa používa najviac 32 snímok: klipy do 32 sekúnd sa vzorkujú jednou snímkou za sekundu, dlhšie klipy rovnomerne na 32 snímok. Zvuková stopa videa sa v tomto videovstupe nespracúva; keď je dôležitá pre vyhľadávanie, vytvorte jej embedding samostatne.</p><p>Vstup PDF prijíma jeden súbor najviac so šiestimi stranami. Google pre najlepšiu kvalitu odporúča jednu stranu na PDF. Väčší zdroj rozdeľte na zmysluplné strany alebo časti a uchovajte ich vzťah k pôvodnému dokumentu. Vyberte výňatok predstavujúci to, čo má byť vyhľadateľné, namiesto spájania nesúvisiaceho materiálu iba preto, že sa zmestí do limitu. Spoločná tokenová hranica stále platí pre požiadavku s kombinovanými médiami. Každá strana PDF spotrebuje 258 vizuálnych tokenov navyše k tokenom extrahovaného textu. V zdokumentovanom postupe Google sa obsah prekračujúci spoločný limit 8192 tokenov skráti bez chyby.</p><p>Výstupná rozmernosť je flexibilná od 128 do 3072 s predvolenými 3072 a odporúčanými veľkosťami 768, 1536 a 3072. Model používa Matryoshka Representation Learning, takže prefixy vektora zostávajú užitočné pri menších rozmeroch. Príručka dokumentuje automatickú normalizáciu predvolených aj skrátených vektorov. Pre záznamy a dopyty porovnávané aplikáciou vyberte jednotný rozmer; požadovaná veľkosť mení číselnú reprezentáciu, nie samotný zdrojový obsah.</p><p>Pri výlučne textových úlohách zahrňte účel do textu namiesto použitia staršieho poľa task_type. Google rozlišuje asymetrické vyhľadávanie od symetrického porovnávania. Vyhľadávací dopyt používa “task: search result | query: {content}”, zdrojový dokument “title: {title} | text: {content}”; ak nemá názov, použite “title: none”. Úlohy otázok a odpovedí, overovania faktov a vyhľadávania kódu majú vlastné prefixy dopytov. Pri klasifikácii, zhlukovaní či podobnosti viet používajte rovnaký formát úlohy konzistentne na oboch stranách. Príručka všeobecne odporúča nepridávať prefix úlohy do textovej časti kombinovanej multimodálnej reprezentácie.</p><p>Štruktúra vstupu určuje, či výsledok reprezentuje jeden kombinovaný objekt alebo samostatné položky. Viacero častí poskytnutých spolu vytvára agregovaný embedding; samostatné objekty Content vytvárajú samostatné embeddingy pre každú položku. Pri príspevku s textom a obrázkom môže kombinovaná reprezentácia zachytiť ich vzťah. Nezávisle vyhľadateľné záznamy ponechajte oddelené. Táto voľba ovplyvňuje podrobnosť vyhľadávania: jeden vektor pre celý príspevok sa líši od jedného pre každú pasáž či obrázok.</p><p>Príručka uvádza, že vektory Gemini Embedding 001 a Gemini Embedding 2 zaberajú nekompatibilné priestory a nemožno ich priamo porovnávať. Kolekcia migrovaná zo staršieho modelu potrebuje nové embeddingy pre nový priestor. Výber modelu a rozmery udržujte konzistentné s porovnávanými vektormi a pôvodný text a médiá uchovajte samostatne od číselného indexu. Podobnosť embeddingov je vyhľadávací signál, nie faktické vysvetlenie, prečo dokument odpovedá na otázku používateľa.</p><p>Pri praktickom katalógu vytvorte embedding produktovej fotografie spolu so schváleným opisom, keď sa dvojica má vyhľadávať ako jeden objekt. Pri kolekcii dokumentov vytvorte embeddingy zameraných pasáží, porovnajte ich s dopytom formátovaným podľa účelu a potom zobrazte zdrojové pasáže vedľa výsledku vyhľadávania. Pri zvuku alebo videu vyberte úsek opisujúci vyhľadateľnú udalosť a zachovajte jeho pôvodný časový rozsah. Užitočným výstupom je číselná reprezentácia prepojená so zdrojovými dôkazmi pre ďalší vyhľadávací alebo analytický krok aplikácie.</p>",
  "aboutText": "Gemini Embedding 2 je multimodálny model embeddingov od Google na číselnú reprezentáciu textu, obrázkov, videa, zvuku a PDF. Rôzne typy médií mapuje do spoločného priestoru, aby aplikácia mohla porovnávať ich význam. Výsledkom je vektor čísel užitočný na sémantické vyhľadávanie, získavanie dokumentov, odporúčanie, klasifikáciu či zhlukovanie; nejde o písomnú odpoveď ani generovaný mediálny súbor. Google dokumentuje sémantické pokrytie viac ako 100 jazykov.\n\nPri znalostnej báze vytvorte vektory zdrojových pasáží, porovnajte s nimi dopyt používateľa a vyhľadajte relevantný materiál. Samostatný textový model potom môže zostaviť odpoveď s využitím týchto zdrojov. Pri mediálnej kolekcii môže textový opis hľadať súvisiace obrázky či video; dopytom môže byť aj obrázok. Zachovajte spojenie každého vektora s pôvodným obsahom vrátane odkazu na stranu alebo klip, aby sa vyhľadaný výsledok dal preskúmať a ukázať v pôvodnom kontexte.\n\nCelkový vstupný limit je 8192 tokenov. Príručka stabilného modelu povoľuje najviac šesť obrázkov PNG alebo JPEG, najviac 180 sekúnd zvuku MP3 alebo WAV a najviac 120 sekúnd videa MP4 alebo MOV. Zdokumentované videokodeky sú H264, H265, AV1 a VP9. Spracovanie videa používa najviac 32 snímok: klipy do 32 sekúnd sa vzorkujú jednou snímkou za sekundu, dlhšie klipy rovnomerne na 32 snímok. Zvuková stopa videa sa v tomto videovstupe nespracúva; keď je dôležitá pre vyhľadávanie, vytvorte jej embedding samostatne.\n\nVstup PDF prijíma jeden súbor najviac so šiestimi stranami. Google pre najlepšiu kvalitu odporúča jednu stranu na PDF. Väčší zdroj rozdeľte na zmysluplné strany alebo časti a uchovajte ich vzťah k pôvodnému dokumentu. Vyberte výňatok predstavujúci to, čo má byť vyhľadateľné, namiesto spájania nesúvisiaceho materiálu iba preto, že sa zmestí do limitu. Spoločná tokenová hranica stále platí pre požiadavku s kombinovanými médiami. Každá strana PDF spotrebuje 258 vizuálnych tokenov navyše k tokenom extrahovaného textu. V zdokumentovanom postupe Google sa obsah prekračujúci spoločný limit 8192 tokenov skráti bez chyby.\n\nVýstupná rozmernosť je flexibilná od 128 do 3072 s predvolenými 3072 a odporúčanými veľkosťami 768, 1536 a 3072. Model používa Matryoshka Representation Learning, takže prefixy vektora zostávajú užitočné pri menších rozmeroch. Príručka dokumentuje automatickú normalizáciu predvolených aj skrátených vektorov. Pre záznamy a dopyty porovnávané aplikáciou vyberte jednotný rozmer; požadovaná veľkosť mení číselnú reprezentáciu, nie samotný zdrojový obsah.\n\nPri výlučne textových úlohách zahrňte účel do textu namiesto použitia staršieho poľa task_type. Google rozlišuje asymetrické vyhľadávanie od symetrického porovnávania. Vyhľadávací dopyt používa “task: search result | query: {content}”, zdrojový dokument “title: {title} | text: {content}”; ak nemá názov, použite “title: none”. Úlohy otázok a odpovedí, overovania faktov a vyhľadávania kódu majú vlastné prefixy dopytov. Pri klasifikácii, zhlukovaní či podobnosti viet používajte rovnaký formát úlohy konzistentne na oboch stranách. Príručka všeobecne odporúča nepridávať prefix úlohy do textovej časti kombinovanej multimodálnej reprezentácie.\n\nŠtruktúra vstupu určuje, či výsledok reprezentuje jeden kombinovaný objekt alebo samostatné položky. Viacero častí poskytnutých spolu vytvára agregovaný embedding; samostatné objekty Content vytvárajú samostatné embeddingy pre každú položku. Pri príspevku s textom a obrázkom môže kombinovaná reprezentácia zachytiť ich vzťah. Nezávisle vyhľadateľné záznamy ponechajte oddelené. Táto voľba ovplyvňuje podrobnosť vyhľadávania: jeden vektor pre celý príspevok sa líši od jedného pre každú pasáž či obrázok.\n\nPríručka uvádza, že vektory Gemini Embedding 001 a Gemini Embedding 2 zaberajú nekompatibilné priestory a nemožno ich priamo porovnávať. Kolekcia migrovaná zo staršieho modelu potrebuje nové embeddingy pre nový priestor. Výber modelu a rozmery udržujte konzistentné s porovnávanými vektormi a pôvodný text a médiá uchovajte samostatne od číselného indexu. Podobnosť embeddingov je vyhľadávací signál, nie faktické vysvetlenie, prečo dokument odpovedá na otázku používateľa.\n\nPri praktickom katalógu vytvorte embedding produktovej fotografie spolu so schváleným opisom, keď sa dvojica má vyhľadávať ako jeden objekt. Pri kolekcii dokumentov vytvorte embeddingy zameraných pasáží, porovnajte ich s dopytom formátovaným podľa účelu a potom zobrazte zdrojové pasáže vedľa výsledku vyhľadávania. Pri zvuku alebo videu vyberte úsek opisujúci vyhľadateľnú udalosť a zachovajte jeho pôvodný časový rozsah. Užitočným výstupom je číselná reprezentácia prepojená so zdrojovými dôkazmi pre ďalší vyhľadávací alebo analytický krok aplikácie.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "013e673e62df178c2361ea42e8ee128ecfe23da3b9f08a387f3a8051d5efd704",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "sk",
  "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=\"Zavrieť\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/gemini-embedding-2</code><button type=\"button\" id=\"copy-id\">Skopírovať ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Sekcie karty modelu\"><button type=\"button\" data-card-jump=\"overview\">Úvod</button><button type=\"button\" data-card-jump=\"methods\">Vstupy a metódy</button><button type=\"button\" data-card-jump=\"pricing\">Cenník</button><button type=\"button\" data-card-jump=\"examples\">Príklady</button><button type=\"button\" data-card-jump=\"results\">Výsledky</button><button type=\"button\" data-card-jump=\"aliases\">Aliasy</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metódy 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\">Embeddingy</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\">Úvod</h3><p class=\"mdesc-full\">Gemini Embedding 2 mapuje text, obrázky, zvuk, video a PDF do spoločného číselného priestoru. Jeho vektory podporujú vyhľadávanie medzi modalitami, získavanie materiálu, klasifikáciu a zhlukovanie s flexibilnými rozmermi a vstupným limitom 8192 tokenov.</p><dl class=\"card-io\" data-card-io><div><dt>Povolené vstupy</dt><dd>Text · token_ids</dd></div><div><dt>Výsledky</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>O modeli</summary><p class=\"note-s\" data-model-method-boundary>Tento opis pokrýva možnosti modelu. Dostupné vstupy, výstupy a voľby v Ailoot sú uvedené nižšie pre vybranú metódu.</p><div class=\"mabout\" id=\"m-about\"><p>Gemini Embedding 2 je multimodálny model embeddingov od Google na číselnú reprezentáciu textu, obrázkov, videa, zvuku a PDF. Rôzne typy médií mapuje do spoločného priestoru, aby aplikácia mohla porovnávať ich význam. Výsledkom je vektor čísel užitočný na sémantické vyhľadávanie, získavanie dokumentov, odporúčanie, klasifikáciu či zhlukovanie; nejde o písomnú odpoveď ani generovaný mediálny súbor. Google dokumentuje sémantické pokrytie viac ako 100 jazykov.</p><p>Pri znalostnej báze vytvorte vektory zdrojových pasáží, porovnajte s nimi dopyt používateľa a vyhľadajte relevantný materiál. Samostatný textový model potom môže zostaviť odpoveď s využitím týchto zdrojov. Pri mediálnej kolekcii môže textový opis hľadať súvisiace obrázky či video; dopytom môže byť aj obrázok. Zachovajte spojenie každého vektora s pôvodným obsahom vrátane odkazu na stranu alebo klip, aby sa vyhľadaný výsledok dal preskúmať a ukázať v pôvodnom kontexte.</p><p>Celkový vstupný limit je 8192 tokenov. Príručka stabilného modelu povoľuje najviac šesť obrázkov PNG alebo JPEG, najviac 180 sekúnd zvuku MP3 alebo WAV a najviac 120 sekúnd videa MP4 alebo MOV. Zdokumentované videokodeky sú H264, H265, AV1 a VP9. Spracovanie videa používa najviac 32 snímok: klipy do 32 sekúnd sa vzorkujú jednou snímkou za sekundu, dlhšie klipy rovnomerne na 32 snímok. Zvuková stopa videa sa v tomto videovstupe nespracúva; keď je dôležitá pre vyhľadávanie, vytvorte jej embedding samostatne.</p><p>Vstup PDF prijíma jeden súbor najviac so šiestimi stranami. Google pre najlepšiu kvalitu odporúča jednu stranu na PDF. Väčší zdroj rozdeľte na zmysluplné strany alebo časti a uchovajte ich vzťah k pôvodnému dokumentu. Vyberte výňatok predstavujúci to, čo má byť vyhľadateľné, namiesto spájania nesúvisiaceho materiálu iba preto, že sa zmestí do limitu. Spoločná tokenová hranica stále platí pre požiadavku s kombinovanými médiami. Každá strana PDF spotrebuje 258 vizuálnych tokenov navyše k tokenom extrahovaného textu. V zdokumentovanom postupe Google sa obsah prekračujúci spoločný limit 8192 tokenov skráti bez chyby.</p><p>Výstupná rozmernosť je flexibilná od 128 do 3072 s predvolenými 3072 a odporúčanými veľkosťami 768, 1536 a 3072. Model používa Matryoshka Representation Learning, takže prefixy vektora zostávajú užitočné pri menších rozmeroch. Príručka dokumentuje automatickú normalizáciu predvolených aj skrátených vektorov. Pre záznamy a dopyty porovnávané aplikáciou vyberte jednotný rozmer; požadovaná veľkosť mení číselnú reprezentáciu, nie samotný zdrojový obsah.</p><p>Pri výlučne textových úlohách zahrňte účel do textu namiesto použitia staršieho poľa task_type. Google rozlišuje asymetrické vyhľadávanie od symetrického porovnávania. Vyhľadávací dopyt používa “task: search result | query: {content}”, zdrojový dokument “title: {title} | text: {content}”; ak nemá názov, použite “title: none”. Úlohy otázok a odpovedí, overovania faktov a vyhľadávania kódu majú vlastné prefixy dopytov. Pri klasifikácii, zhlukovaní či podobnosti viet používajte rovnaký formát úlohy konzistentne na oboch stranách. Príručka všeobecne odporúča nepridávať prefix úlohy do textovej časti kombinovanej multimodálnej reprezentácie.</p><p>Štruktúra vstupu určuje, či výsledok reprezentuje jeden kombinovaný objekt alebo samostatné položky. Viacero častí poskytnutých spolu vytvára agregovaný embedding; samostatné objekty Content vytvárajú samostatné embeddingy pre každú položku. Pri príspevku s textom a obrázkom môže kombinovaná reprezentácia zachytiť ich vzťah. Nezávisle vyhľadateľné záznamy ponechajte oddelené. Táto voľba ovplyvňuje podrobnosť vyhľadávania: jeden vektor pre celý príspevok sa líši od jedného pre každú pasáž či obrázok.</p><p>Príručka uvádza, že vektory Gemini Embedding 001 a Gemini Embedding 2 zaberajú nekompatibilné priestory a nemožno ich priamo porovnávať. Kolekcia migrovaná zo staršieho modelu potrebuje nové embeddingy pre nový priestor. Výber modelu a rozmery udržujte konzistentné s porovnávanými vektormi a pôvodný text a médiá uchovajte samostatne od číselného indexu. Podobnosť embeddingov je vyhľadávací signál, nie faktické vysvetlenie, prečo dokument odpovedá na otázku používateľa.</p><p>Pri praktickom katalógu vytvorte embedding produktovej fotografie spolu so schváleným opisom, keď sa dvojica má vyhľadávať ako jeden objekt. Pri kolekcii dokumentov vytvorte embeddingy zameraných pasáží, porovnajte ich s dopytom formátovaným podľa účelu a potom zobrazte zdrojové pasáže vedľa výsledku vyhľadávania. Pri zvuku alebo videu vyberte úsek opisujúci vyhľadateľnú udalosť a zachovajte jeho pôvodný časový rozsah. Užitočným výstupom je číselná reprezentácia prepojená so zdrojovými dôkazmi pre ďalší vyhľadávací alebo analytický krok aplikácie.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Dostupné v Ailoot · vstupy a metódy</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Embeddingy</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Vstup</dt><dd><code>text</code>, <code>token_ids</code></dd></div><div><dt>Výstup</dt><dd><code>embedding</code></dd></div><div><dt>Kontext</dt><dd>8 192 tokens</dd></div><div><dt>Výstupný formát</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Pole</th><th>Typ</th><th>Požiadavka</th><th>Hodnoty a limity</th><th>Predvolené</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Požiadavka\"><span class=\"card-cell-label\">Požiadavka</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>google/gemini-embedding-2</div></td><td data-cell-label=\"Predvolené\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predvolené</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string|string[]|integer[]|integer[][]</code></td><td data-cell-label=\"Požiadavka\"><span class=\"card-cell-label\">Požiadavka</span>Povinné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>Minimálny počet položiek: 1</div><div>Podmienky: Neprázdna homogénna dávka. ID tokenov sú nezáporné celé čísla.</div><div>Vstupný rozpočet: Maximum: 8 192 · Textová jednotka: bajty UTF8 · Jednotka tokenov: prvky poľa tokenov</div></td><td data-cell-label=\"Predvolené\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predvolené</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Požiadavka\"><span class=\"card-cell-label\">Požiadavka</span>Voliteľné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>float</div></td><td data-cell-label=\"Predvolené\" data-default=\"known\"><span class=\"card-cell-label\">Predvolené</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>integer</code></td><td data-cell-label=\"Požiadavka\"><span class=\"card-cell-label\">Požiadavka</span>Nepodporované</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>Minimum: 1</div></td><td data-cell-label=\"Predvolené\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predvolené</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>json_value</code></td><td data-cell-label=\"Požiadavka\"><span class=\"card-cell-label\">Požiadavka</span>Voliteľné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>Podmienky: Zdroj povoľuje toto pole metadát vo formáte JSON; presný význam na strane dodávateľa sa líši podľa modelu.</div></td><td data-cell-label=\"Predvolené\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predvolené</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>json_value</code></td><td data-cell-label=\"Požiadavka\"><span class=\"card-cell-label\">Požiadavka</span>Voliteľné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>Podmienky: Zdroj povoľuje toto pole metadát vo formáte JSON; presný význam na strane dodávateľa sa líši podľa modelu.</div></td><td data-cell-label=\"Predvolené\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predvolené</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>json_value</code></td><td data-cell-label=\"Požiadavka\"><span class=\"card-cell-label\">Požiadavka</span>Voliteľné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>Podmienky: Zdroj povoľuje toto pole metadát vo formáte JSON; presný význam na strane dodávateľa sa líši podľa modelu.</div></td><td data-cell-label=\"Predvolené\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predvolené</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Požiadavka\"><span class=\"card-cell-label\">Požiadavka</span>Voliteľné</td><td data-cell-label=\"Hodnoty a limity\"><span class=\"card-cell-label\">Hodnoty a limity</span><div>Podmienky: provider.options sa odmieta</div></td><td data-cell-label=\"Predvolené\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predvolené</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinácie vstupných podkladov</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Parametre a životný cyklus metódy</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Špecifikácia</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</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=\"Špecifikácia\"><span class=\"card-cell-label\">Špecifikácia</span>text, token_ids</td></tr></tbody></table></div><p>Životný cyklus: <code>synchronous_json</code></p><p class=\"note-s\">Uchovajte každý index a rozmer vektora.</p><p class=\"note-s\">Názov multimodálneho modelu neznamená, že na tejto konkrétnej trase možno použiť objekty obrázkov.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Cenník</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.</p><dl data-price-conditions><dt>Rýchly režim</dt><dd>Štandardná sadzba <span class=\"note-s\">Keď je zvolený rýchly režim</span></dd><dt>Režim Flex</dt><dd>Štandardná sadzba <span class=\"note-s\">Keď je zvolený režim flex</span></dd><dt>Maximálna úroveň uvažovania</dt><dd>Štandardná sadzba <span class=\"note-s\">Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Sadzby Ailoot</h4><h4>Ceny podľa konfigurácie</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfigurácia</th><th>Sadzobník</th><th>Poplatok</th></tr></thead><tbody><tr><th data-cell-label=\"Konfigurácia\" scope=\"row\"><span class=\"card-cell-label\">Konfigurácia</span>Základné sadzby za tokeny</th><td data-cell-label=\"Sadzobník\"><span class=\"card-cell-label\">Sadzobník</span>Základná sadzba</td><td data-cell-label=\"Poplatok\"><span class=\"card-cell-label\">Poplatok</span><div><span>Vstup · Vstupné tokeny</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K tokenov</span></div><div><span>Výstup · Výstupné tokeny</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokenov</span></div><div><span>Vstup · Čítanie cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenov</span></div><div><span>Vstup · Zápis do cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenov</span></div><div><span>Vstup · Zápis do cache, 1 hod</span> <b>—</b> <span class=\"price-unit\">/ 1K tokenov</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. <a href=\"/docs/sk/billing/reserve/\">Ako funguje rezervácia a vyúčtovanie →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Príklady požiadaviek</h3><h4>Ailoot Ultra · Embeddingy</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Varianty kódu\"><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=\"Skopírovať kód\"><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\">Prijať a uložiť výsledky</h3><h4>Ailoot Ultra · Embeddingy</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Uchovať všetky dokončené výsledky</h5><p class=\"note-s\">Uložte každú úplnú vrátenú odpoveď, súbor a časť obsahu.</p><p class=\"note-s\">Uchovajte každý vektor spolu s jeho indexom. Počet vektorov sa musí rovnať počtu vstupov; rozmery musia byť konzistentné.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Ak treba overiť pôvodnú odpoveď</h5><p class=\"note-s\">Nezavádza sa žiadny koncový bod pre úlohy tvorby embeddingov.</p></div><details class=\"card-about\" data-output-fields><summary>Polia odpovede</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Pole</th><th>Typ</th></tr></thead><tbody><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">object</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>finite float[]</td></tr><tr><th data-cell-label=\"Pole\" scope=\"row\"><span class=\"card-cell-label\">Pole</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Chyby a ďalšie kroky</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Odpoveď</th><th>Podmienka</th><th>Ďalší krok</th></tr></thead><tbody><tr><th data-cell-label=\"Odpoveď\" scope=\"row\"><span class=\"card-cell-label\">Odpoveď</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Podmienka\"><span class=\"card-cell-label\">Podmienka</span>Neplatné povinné polia, reprezentácia materiálu alebo hodnota parametra</td><td data-cell-label=\"Ďalší krok\"><span class=\"card-cell-label\">Ďalší krok</span>Pred novou požiadavkou na vytvorenie opravte uvedené polia.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasy</h3><h4>Aliasy 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>Aliasy ciest metód</h4><p class=\"note-s\">Použite cesty metód uvedené vyššie.</p><h4>Súvisiace ID na volanie</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": "Neplatné povinné polia, reprezentácia materiálu alebo hodnota parametra",
                "http_status": 400,
                "recovery": "Pred novou požiadavkou na vytvorenie opravte uvedené polia.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Nezavádza sa žiadny koncový bod pre úlohy tvorby embeddingov."
            },
            "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": "Uchovajte každý vektor spolu s jeho indexom. Počet vektorov sa musí rovnať počtu vstupov; rozmery musia byť konzistentné.",
              "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": "bajty UTF8",
                  "token_unit": "prvky poľa tokenov"
                },
                "conditions": "Neprázdna homogénna dávka. ID tokenov sú nezáporné celé čísla.",
                "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": "Zdroj povoľuje toto pole metadát vo formáte JSON; presný význam na strane dodávateľa sa líši podľa modelu.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Zdroj povoľuje toto pole metadát vo formáte JSON; presný význam na strane dodávateľa sa líši podľa modelu.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Zdroj povoľuje toto pole metadát vo formáte JSON; presný význam na strane dodávateľa sa líši podľa modelu.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options sa odmieta",
                "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": [
            "Uchovajte každý index a rozmer vektora.",
            "Názov multimodálneho modelu neznamená, že na tejto konkrétnej trase možno použiť objekty obrázkov."
          ],
          "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": "Základné sadzby za tokeny",
            "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": "Rýchly režim",
            "value": "Štandardná sadzba",
            "when": "Keď je zvolený rýchly režim"
          },
          {
            "label": "Režim Flex",
            "value": "Štandardná sadzba",
            "when": "Keď je zvolený režim flex"
          },
          {
            "label": "Maximálna úroveň uvažovania",
            "value": "Štandardná sadzba",
            "when": "Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (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": "3ce520745013dfa3e3e21082f94f034743c1e78f024a4f9fbf4cf913bff8154c",
    "input_html_sha256": "b21d4d922fd607c8a20eea66c0ded7b4fba5495013b3cfe4bfa7daf4db648f90",
    "private_audit_sha256": "6c06c494b6b7d1b79e55e89a150e0c89fe7571f7ac51fc9e7719ab3ea9580fea",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sk/google-gemini-embedding-2/",
    "description": "Gemini Embedding 2 mapuje text, obrázky, zvuk, video a PDF do spoločného číselného priestoru. Jeho vektory podporujú vyhľadávanie medzi modalitami, získavanie materiálu, klasifikáciu a zhlukovanie s flexibilnými rozmermi a vstupným limitom 8192 tokenov.",
    "locale": "sk",
    "md_url": "https://ailoot.ai/models/sk/google-gemini-embedding-2/index.md",
    "title": "Google: Gemini Embedding 2 — Ailoot",
    "url": "https://ailoot.ai/models/sk/google-gemini-embedding-2/"
  },
  "rawModel": {
    "about": "Gemini Embedding 2 je multimodálny model embeddingov od Google na číselnú reprezentáciu textu, obrázkov, videa, zvuku a PDF. Rôzne typy médií mapuje do spoločného priestoru, aby aplikácia mohla porovnávať ich význam. Výsledkom je vektor čísel užitočný na sémantické vyhľadávanie, získavanie dokumentov, odporúčanie, klasifikáciu či zhlukovanie; nejde o písomnú odpoveď ani generovaný mediálny súbor. Google dokumentuje sémantické pokrytie viac ako 100 jazykov.\n\nPri znalostnej báze vytvorte vektory zdrojových pasáží, porovnajte s nimi dopyt používateľa a vyhľadajte relevantný materiál. Samostatný textový model potom môže zostaviť odpoveď s využitím týchto zdrojov. Pri mediálnej kolekcii môže textový opis hľadať súvisiace obrázky či video; dopytom môže byť aj obrázok. Zachovajte spojenie každého vektora s pôvodným obsahom vrátane odkazu na stranu alebo klip, aby sa vyhľadaný výsledok dal preskúmať a ukázať v pôvodnom kontexte.\n\nCelkový vstupný limit je 8192 tokenov. Príručka stabilného modelu povoľuje najviac šesť obrázkov PNG alebo JPEG, najviac 180 sekúnd zvuku MP3 alebo WAV a najviac 120 sekúnd videa MP4 alebo MOV. Zdokumentované videokodeky sú H264, H265, AV1 a VP9. Spracovanie videa používa najviac 32 snímok: klipy do 32 sekúnd sa vzorkujú jednou snímkou za sekundu, dlhšie klipy rovnomerne na 32 snímok. Zvuková stopa videa sa v tomto videovstupe nespracúva; keď je dôležitá pre vyhľadávanie, vytvorte jej embedding samostatne.\n\nVstup PDF prijíma jeden súbor najviac so šiestimi stranami. Google pre najlepšiu kvalitu odporúča jednu stranu na PDF. Väčší zdroj rozdeľte na zmysluplné strany alebo časti a uchovajte ich vzťah k pôvodnému dokumentu. Vyberte výňatok predstavujúci to, čo má byť vyhľadateľné, namiesto spájania nesúvisiaceho materiálu iba preto, že sa zmestí do limitu. Spoločná tokenová hranica stále platí pre požiadavku s kombinovanými médiami. Každá strana PDF spotrebuje 258 vizuálnych tokenov navyše k tokenom extrahovaného textu. V zdokumentovanom postupe Google sa obsah prekračujúci spoločný limit 8192 tokenov skráti bez chyby.\n\nVýstupná rozmernosť je flexibilná od 128 do 3072 s predvolenými 3072 a odporúčanými veľkosťami 768, 1536 a 3072. Model používa Matryoshka Representation Learning, takže prefixy vektora zostávajú užitočné pri menších rozmeroch. Príručka dokumentuje automatickú normalizáciu predvolených aj skrátených vektorov. Pre záznamy a dopyty porovnávané aplikáciou vyberte jednotný rozmer; požadovaná veľkosť mení číselnú reprezentáciu, nie samotný zdrojový obsah.\n\nPri výlučne textových úlohách zahrňte účel do textu namiesto použitia staršieho poľa task_type. Google rozlišuje asymetrické vyhľadávanie od symetrického porovnávania. Vyhľadávací dopyt používa “task: search result | query: {content}”, zdrojový dokument “title: {title} | text: {content}”; ak nemá názov, použite “title: none”. Úlohy otázok a odpovedí, overovania faktov a vyhľadávania kódu majú vlastné prefixy dopytov. Pri klasifikácii, zhlukovaní či podobnosti viet používajte rovnaký formát úlohy konzistentne na oboch stranách. Príručka všeobecne odporúča nepridávať prefix úlohy do textovej časti kombinovanej multimodálnej reprezentácie.\n\nŠtruktúra vstupu určuje, či výsledok reprezentuje jeden kombinovaný objekt alebo samostatné položky. Viacero častí poskytnutých spolu vytvára agregovaný embedding; samostatné objekty Content vytvárajú samostatné embeddingy pre každú položku. Pri príspevku s textom a obrázkom môže kombinovaná reprezentácia zachytiť ich vzťah. Nezávisle vyhľadateľné záznamy ponechajte oddelené. Táto voľba ovplyvňuje podrobnosť vyhľadávania: jeden vektor pre celý príspevok sa líši od jedného pre každú pasáž či obrázok.\n\nPríručka uvádza, že vektory Gemini Embedding 001 a Gemini Embedding 2 zaberajú nekompatibilné priestory a nemožno ich priamo porovnávať. Kolekcia migrovaná zo staršieho modelu potrebuje nové embeddingy pre nový priestor. Výber modelu a rozmery udržujte konzistentné s porovnávanými vektormi a pôvodný text a médiá uchovajte samostatne od číselného indexu. Podobnosť embeddingov je vyhľadávací signál, nie faktické vysvetlenie, prečo dokument odpovedá na otázku používateľa.\n\nPri praktickom katalógu vytvorte embedding produktovej fotografie spolu so schváleným opisom, keď sa dvojica má vyhľadávať ako jeden objekt. Pri kolekcii dokumentov vytvorte embeddingy zameraných pasáží, porovnajte ich s dopytom formátovaným podľa účelu a potom zobrazte zdrojové pasáže vedľa výsledku vyhľadávania. Pri zvuku alebo videu vyberte úsek opisujúci vyhľadateľnú udalosť a zachovajte jeho pôvodný časový rozsah. Užitočným výstupom je číselná reprezentácia prepojená so zdrojovými dôkazmi pre ďalší vyhľadávací alebo analytický krok aplikácie.",
    "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": "Úplný cenník konfigurácie nájdete v podrobnostiach."
      }
    ],
    "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": "Neplatné povinné polia, reprezentácia materiálu alebo hodnota parametra",
                "http_status": 400,
                "recovery": "Pred novou požiadavkou na vytvorenie opravte uvedené polia.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Nezavádza sa žiadny koncový bod pre úlohy tvorby embeddingov."
            },
            "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": "Uchovajte každý vektor spolu s jeho indexom. Počet vektorov sa musí rovnať počtu vstupov; rozmery musia byť konzistentné.",
              "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": "bajty UTF8",
                  "token_unit": "prvky poľa tokenov"
                },
                "conditions": "Neprázdna homogénna dávka. ID tokenov sú nezáporné celé čísla.",
                "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": "Zdroj povoľuje toto pole metadát vo formáte JSON; presný význam na strane dodávateľa sa líši podľa modelu.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Zdroj povoľuje toto pole metadát vo formáte JSON; presný význam na strane dodávateľa sa líši podľa modelu.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Zdroj povoľuje toto pole metadát vo formáte JSON; presný význam na strane dodávateľa sa líši podľa modelu.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options sa odmieta",
                "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": [
            "Uchovajte každý index a rozmer vektora.",
            "Názov multimodálneho modelu neznamená, že na tejto konkrétnej trase možno použiť objekty obrázkov."
          ],
          "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": "Základné sadzby za tokeny",
            "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": "Rýchly režim",
            "value": "Štandardná sadzba",
            "when": "Keď je zvolený rýchly režim"
          },
          {
            "label": "Režim Flex",
            "value": "Štandardná sadzba",
            "when": "Keď je zvolený režim flex"
          },
          {
            "label": "Maximálna úroveň uvažovania",
            "value": "Štandardná sadzba",
            "when": "Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (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 mapuje text, obrázky, zvuk, video a PDF do spoločného číselného priestoru. Jeho vektory podporujú vyhľadávanie medzi modalitami, získavanie materiálu, klasifikáciu a zhlukovanie s flexibilnými rozmermi a vstupným limitom 8192 tokenov."
  },
  "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 mapuje text, obrázky, zvuk, video a PDF do spoločného číselného priestoru. Jeho vektory podporujú vyhľadávanie medzi modalitami, získavanie materiálu, klasifikáciu a zhlukovanie s flexibilnými rozmermi a vstupným limitom 8192 tokenov.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "5654efa6d529466693dce6cd088135c31ee6b9a8a5465117d43c4920b3816eb3",
    "renderer_sha256": "94893ba0fa4d7b7d32370787b705f436a4c2569f84ec7b33063549adc74b07e0"
  },
  "sourceRevision": "fd6e189d02fe325413c99505de2a9dce142d8b09e498afde07efa50a81f58352"
}
