{
  "aboutHtml": "<p>A Gemini Embedding 2 a Google multimodális beágyazási modellje szöveg, kép, videó, hang és PDF numerikus reprezentációjához. A különböző médiatípusokat közös térbe képezi le, hogy egy alkalmazás összehasonlíthassa a jelentésüket. Az eredmény egy számvektor, amely szemantikai kereséshez, dokumentumkereséshez, ajánláshoz, osztályozáshoz vagy klaszterezéshez használható; nem írott válasz vagy generált médiafájl. A Google több mint 100 nyelvre kiterjedő szemantikai lefedettséget dokumentál.</p><p>Tudásbázisnál készítsen vektorokat a forrásszövegrészletekhez, hasonlítsa össze velük a felhasználó lekérdezését, és keresse meg a releváns anyagot. Egy külön szövegmodell ezután e források felhasználásával állíthat össze választ. Médiagyűjteménynél egy szöveges leírás kapcsolódó képeket vagy videókat kereshet; a lekérdezést kép is adhatja. Őrizze meg minden vektor kapcsolatát az eredeti tartalommal, beleértve az oldal- vagy videórészlet-hivatkozást, hogy a megtalált eredmény megvizsgálható és eredeti kontextusában megjeleníthető legyen.</p><p>A teljes bemeneti korlát 8192 token. A stabil modell útmutatója legfeljebb hat PNG- vagy JPEG-képet, legfeljebb 180 másodpercnyi MP3- vagy WAV-hangot, valamint legfeljebb 120 másodpercnyi MP4- vagy MOV-videót enged meg. A dokumentált videokodekek a H264, H265, AV1 és VP9. A videófeldolgozás legfeljebb 32 képkockát használ: a legfeljebb 32 másodperces részletekből másodpercenként egy képkockát mintavételez, a hosszabbakból pedig egyenletesen 32 képkockát. A videó hangsávját nem dolgozza fel e videóbemenet részeként; külön ágyazza be a hangját, ha az fontos a kereséshez.</p><p>A PDF-bemenet egyetlen, legfeljebb hatoldalas fájlt fogad el. A legjobb minőséghez a Google PDF-enként egy oldalt javasol. A nagyobb forrást ossza értelmes oldalakra vagy szakaszokra, és őrizze meg a kapcsolatukat az eredeti dokumentummal. Olyan részletet válasszon, amely a kereshetővé tenni kívánt tartalmat reprezentálja, ahelyett, hogy egymással össze nem függő anyagokat egyesítene pusztán azért, mert beleférnek a korlátba. A közös tokenhatár a vegyes médiát tartalmazó kérésre is vonatkozik. Minden PDF-oldal 258 vizuális tokent fogyaszt a kinyert szöveg tokenjein felül. A Google dokumentált munkafolyamatában a közös 8192 tokenes korlátot túllépő tartalom hiba nélkül csonkolódik.</p><p>A kimeneti dimenzió rugalmasan 128 és 3072 között választható, 3072 alapértelmezéssel és 768, 1536, illetve 3072 ajánlott mérettel. A modell Matryoshka Representation Learning módszert használ, így a vektor kezdőrészei kisebb dimenziónál is hasznosak maradnak. Útmutatója az alapértelmezett és a rövidített vektorok automatikus normalizálását is dokumentálja. Válasszon egységes dimenziót az alkalmazás által összehasonlított rekordokhoz és lekérdezésekhez; a kért méret a numerikus reprezentációt változtatja meg, nem magát a forrástartalmat.</p><p>Kizárólag szöveges feladatoknál a célt a szövegbe foglalja bele a régebbi task_type mező használata helyett. A Google megkülönbözteti az aszimmetrikus keresést a szimmetrikus összehasonlítástól. Egy keresőkérdés a “task: search result | query: {content}” formát, egy forrásdokumentum pedig a “title: {title} | text: {content}” formát használja; ha nincs címe, használja a “title: none” értéket. A kérdés–válasz, a tényellenőrzési és a kódkeresési feladatoknak saját lekérdezési előtagjaik vannak. Osztályozásnál, klaszterezésnél vagy mondathasonlóságnál következetesen ugyanazt a feladatformátumot használja mindkét oldalon. Az útmutató általában nem javasolja feladatelőtag hozzáadását egy kombinált multimodális reprezentáció szöveges részéhez.</p><p>A bemenet szerkezete határozza meg, hogy az eredmény egyetlen kombinált objektumot vagy különálló elemeket reprezentál-e. Több együtt megadott rész összesített beágyazást hoz létre; a külön Content objektumok minden bejegyzéshez külön beágyazást hoznak létre. Szöveget és képet tartalmazó bejegyzésnél a kombinált reprezentáció megragadhatja a kapcsolatukat. Az önállóan kereshető rekordokat tartsa külön. Ez a választás befolyásolja a keresés részletességét: egy egész bejegyzéshez tartozó egyetlen vektor más, mint a szövegrészletenként vagy képenként létrehozott vektor.</p><p>Az útmutató szerint a Gemini Embedding 001 és a Gemini Embedding 2 vektorai nem kompatibilis terekben helyezkednek el, és közvetlenül nem hasonlíthatók össze. A régebbi modellről átállított gyűjteményt újra be kell ágyazni az új térhez. Az összehasonlítandó vektoroknál tartsa következetesen a modellválasztást és a dimenziókat, az eredeti szöveget és médiát pedig a numerikus indextől külön őrizze meg. A beágyazások hasonlósága keresési jelzés, nem pedig tényszerű magyarázat arra, hogy egy dokumentum miért válaszolja meg a felhasználó kérdését.</p><p>Gyakorlati katalógusnál együtt ágyazza be a termékfotót és a hozzá tartozó jóváhagyott leírást, ha a párt egyetlen objektumként kell megtalálni. Dokumentumgyűjteménynél körülhatárolt szövegrészleteket ágyazzon be, és hasonlítsa össze őket egy célhoz formázott lekérdezéssel, majd a találat mellett jelenítse meg a forrásszövegrészleteket. Hangnál vagy videónál válassza azt az epizódot, amely a kereshető eseményt írja le, és őrizze meg az eredeti időtartományát. A hasznos eredmény egy forrásbizonyítékhoz kapcsolt numerikus reprezentáció az alkalmazás következő keresési vagy elemzési lépéséhez.</p>",
  "aboutText": "A Gemini Embedding 2 a Google multimodális beágyazási modellje szöveg, kép, videó, hang és PDF numerikus reprezentációjához. A különböző médiatípusokat közös térbe képezi le, hogy egy alkalmazás összehasonlíthassa a jelentésüket. Az eredmény egy számvektor, amely szemantikai kereséshez, dokumentumkereséshez, ajánláshoz, osztályozáshoz vagy klaszterezéshez használható; nem írott válasz vagy generált médiafájl. A Google több mint 100 nyelvre kiterjedő szemantikai lefedettséget dokumentál.\n\nTudásbázisnál készítsen vektorokat a forrásszövegrészletekhez, hasonlítsa össze velük a felhasználó lekérdezését, és keresse meg a releváns anyagot. Egy külön szövegmodell ezután e források felhasználásával állíthat össze választ. Médiagyűjteménynél egy szöveges leírás kapcsolódó képeket vagy videókat kereshet; a lekérdezést kép is adhatja. Őrizze meg minden vektor kapcsolatát az eredeti tartalommal, beleértve az oldal- vagy videórészlet-hivatkozást, hogy a megtalált eredmény megvizsgálható és eredeti kontextusában megjeleníthető legyen.\n\nA teljes bemeneti korlát 8192 token. A stabil modell útmutatója legfeljebb hat PNG- vagy JPEG-képet, legfeljebb 180 másodpercnyi MP3- vagy WAV-hangot, valamint legfeljebb 120 másodpercnyi MP4- vagy MOV-videót enged meg. A dokumentált videokodekek a H264, H265, AV1 és VP9. A videófeldolgozás legfeljebb 32 képkockát használ: a legfeljebb 32 másodperces részletekből másodpercenként egy képkockát mintavételez, a hosszabbakból pedig egyenletesen 32 képkockát. A videó hangsávját nem dolgozza fel e videóbemenet részeként; külön ágyazza be a hangját, ha az fontos a kereséshez.\n\nA PDF-bemenet egyetlen, legfeljebb hatoldalas fájlt fogad el. A legjobb minőséghez a Google PDF-enként egy oldalt javasol. A nagyobb forrást ossza értelmes oldalakra vagy szakaszokra, és őrizze meg a kapcsolatukat az eredeti dokumentummal. Olyan részletet válasszon, amely a kereshetővé tenni kívánt tartalmat reprezentálja, ahelyett, hogy egymással össze nem függő anyagokat egyesítene pusztán azért, mert beleférnek a korlátba. A közös tokenhatár a vegyes médiát tartalmazó kérésre is vonatkozik. Minden PDF-oldal 258 vizuális tokent fogyaszt a kinyert szöveg tokenjein felül. A Google dokumentált munkafolyamatában a közös 8192 tokenes korlátot túllépő tartalom hiba nélkül csonkolódik.\n\nA kimeneti dimenzió rugalmasan 128 és 3072 között választható, 3072 alapértelmezéssel és 768, 1536, illetve 3072 ajánlott mérettel. A modell Matryoshka Representation Learning módszert használ, így a vektor kezdőrészei kisebb dimenziónál is hasznosak maradnak. Útmutatója az alapértelmezett és a rövidített vektorok automatikus normalizálását is dokumentálja. Válasszon egységes dimenziót az alkalmazás által összehasonlított rekordokhoz és lekérdezésekhez; a kért méret a numerikus reprezentációt változtatja meg, nem magát a forrástartalmat.\n\nKizárólag szöveges feladatoknál a célt a szövegbe foglalja bele a régebbi task_type mező használata helyett. A Google megkülönbözteti az aszimmetrikus keresést a szimmetrikus összehasonlítástól. Egy keresőkérdés a “task: search result | query: {content}” formát, egy forrásdokumentum pedig a “title: {title} | text: {content}” formát használja; ha nincs címe, használja a “title: none” értéket. A kérdés–válasz, a tényellenőrzési és a kódkeresési feladatoknak saját lekérdezési előtagjaik vannak. Osztályozásnál, klaszterezésnél vagy mondathasonlóságnál következetesen ugyanazt a feladatformátumot használja mindkét oldalon. Az útmutató általában nem javasolja feladatelőtag hozzáadását egy kombinált multimodális reprezentáció szöveges részéhez.\n\nA bemenet szerkezete határozza meg, hogy az eredmény egyetlen kombinált objektumot vagy különálló elemeket reprezentál-e. Több együtt megadott rész összesített beágyazást hoz létre; a külön Content objektumok minden bejegyzéshez külön beágyazást hoznak létre. Szöveget és képet tartalmazó bejegyzésnél a kombinált reprezentáció megragadhatja a kapcsolatukat. Az önállóan kereshető rekordokat tartsa külön. Ez a választás befolyásolja a keresés részletességét: egy egész bejegyzéshez tartozó egyetlen vektor más, mint a szövegrészletenként vagy képenként létrehozott vektor.\n\nAz útmutató szerint a Gemini Embedding 001 és a Gemini Embedding 2 vektorai nem kompatibilis terekben helyezkednek el, és közvetlenül nem hasonlíthatók össze. A régebbi modellről átállított gyűjteményt újra be kell ágyazni az új térhez. Az összehasonlítandó vektoroknál tartsa következetesen a modellválasztást és a dimenziókat, az eredeti szöveget és médiát pedig a numerikus indextől külön őrizze meg. A beágyazások hasonlósága keresési jelzés, nem pedig tényszerű magyarázat arra, hogy egy dokumentum miért válaszolja meg a felhasználó kérdését.\n\nGyakorlati katalógusnál együtt ágyazza be a termékfotót és a hozzá tartozó jóváhagyott leírást, ha a párt egyetlen objektumként kell megtalálni. Dokumentumgyűjteménynél körülhatárolt szövegrészleteket ágyazzon be, és hasonlítsa össze őket egy célhoz formázott lekérdezéssel, majd a találat mellett jelenítse meg a forrásszövegrészleteket. Hangnál vagy videónál válassza azt az epizódot, amely a kereshető eseményt írja le, és őrizze meg az eredeti időtartományát. A hasznos eredmény egy forrásbizonyítékhoz kapcsolt numerikus reprezentáció az alkalmazás következő keresési vagy elemzési lépéséhez.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "5621bc41a515a5d79f447708afc3048366a96e4b4748b39a1b77a13e317b29b5",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "hu",
  "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=\"Bezárás\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/gemini-embedding-2</code><button type=\"button\" id=\"copy-id\">ID másolása</button></div><nav class=\"card-jump-nav\" aria-label=\"Modellkártya szakaszai\"><button type=\"button\" data-card-jump=\"overview\">Kezdő lépések</button><button type=\"button\" data-card-jump=\"methods\">Bemenetek és metódusok</button><button type=\"button\" data-card-jump=\"pricing\">Díjcsomagok</button><button type=\"button\" data-card-jump=\"examples\">Példák</button><button type=\"button\" data-card-jump=\"results\">Eredmények</button><button type=\"button\" data-card-jump=\"aliases\">Álnevek</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metódusok\"><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\">Beágyazások</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\">Kezdő lépések</h3><p class=\"mdesc-full\">A Gemini Embedding 2 szöveget, képet, hangot, videót és PDF-et képez le közös numerikus térbe. Vektorai modalitások közötti keresést, információkeresést, osztályozást és klaszterezést támogatnak, rugalmas dimenziókkal és 8192 tokenes bemeneti korláttal.</p><dl class=\"card-io\" data-card-io><div><dt>Elfogadott bemenetek</dt><dd>Szöveg · token_ids</dd></div><div><dt>Eredmények</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>A modellről</summary><p class=\"note-s\" data-model-method-boundary>Ez a leírás a modell képességeit ismerteti. Az Ailootban elérhető bemenetek, kimenetek és lehetőségek alább, a kiválasztott metódusnál láthatók.</p><div class=\"mabout\" id=\"m-about\"><p>A Gemini Embedding 2 a Google multimodális beágyazási modellje szöveg, kép, videó, hang és PDF numerikus reprezentációjához. A különböző médiatípusokat közös térbe képezi le, hogy egy alkalmazás összehasonlíthassa a jelentésüket. Az eredmény egy számvektor, amely szemantikai kereséshez, dokumentumkereséshez, ajánláshoz, osztályozáshoz vagy klaszterezéshez használható; nem írott válasz vagy generált médiafájl. A Google több mint 100 nyelvre kiterjedő szemantikai lefedettséget dokumentál.</p><p>Tudásbázisnál készítsen vektorokat a forrásszövegrészletekhez, hasonlítsa össze velük a felhasználó lekérdezését, és keresse meg a releváns anyagot. Egy külön szövegmodell ezután e források felhasználásával állíthat össze választ. Médiagyűjteménynél egy szöveges leírás kapcsolódó képeket vagy videókat kereshet; a lekérdezést kép is adhatja. Őrizze meg minden vektor kapcsolatát az eredeti tartalommal, beleértve az oldal- vagy videórészlet-hivatkozást, hogy a megtalált eredmény megvizsgálható és eredeti kontextusában megjeleníthető legyen.</p><p>A teljes bemeneti korlát 8192 token. A stabil modell útmutatója legfeljebb hat PNG- vagy JPEG-képet, legfeljebb 180 másodpercnyi MP3- vagy WAV-hangot, valamint legfeljebb 120 másodpercnyi MP4- vagy MOV-videót enged meg. A dokumentált videokodekek a H264, H265, AV1 és VP9. A videófeldolgozás legfeljebb 32 képkockát használ: a legfeljebb 32 másodperces részletekből másodpercenként egy képkockát mintavételez, a hosszabbakból pedig egyenletesen 32 képkockát. A videó hangsávját nem dolgozza fel e videóbemenet részeként; külön ágyazza be a hangját, ha az fontos a kereséshez.</p><p>A PDF-bemenet egyetlen, legfeljebb hatoldalas fájlt fogad el. A legjobb minőséghez a Google PDF-enként egy oldalt javasol. A nagyobb forrást ossza értelmes oldalakra vagy szakaszokra, és őrizze meg a kapcsolatukat az eredeti dokumentummal. Olyan részletet válasszon, amely a kereshetővé tenni kívánt tartalmat reprezentálja, ahelyett, hogy egymással össze nem függő anyagokat egyesítene pusztán azért, mert beleférnek a korlátba. A közös tokenhatár a vegyes médiát tartalmazó kérésre is vonatkozik. Minden PDF-oldal 258 vizuális tokent fogyaszt a kinyert szöveg tokenjein felül. A Google dokumentált munkafolyamatában a közös 8192 tokenes korlátot túllépő tartalom hiba nélkül csonkolódik.</p><p>A kimeneti dimenzió rugalmasan 128 és 3072 között választható, 3072 alapértelmezéssel és 768, 1536, illetve 3072 ajánlott mérettel. A modell Matryoshka Representation Learning módszert használ, így a vektor kezdőrészei kisebb dimenziónál is hasznosak maradnak. Útmutatója az alapértelmezett és a rövidített vektorok automatikus normalizálását is dokumentálja. Válasszon egységes dimenziót az alkalmazás által összehasonlított rekordokhoz és lekérdezésekhez; a kért méret a numerikus reprezentációt változtatja meg, nem magát a forrástartalmat.</p><p>Kizárólag szöveges feladatoknál a célt a szövegbe foglalja bele a régebbi task_type mező használata helyett. A Google megkülönbözteti az aszimmetrikus keresést a szimmetrikus összehasonlítástól. Egy keresőkérdés a “task: search result | query: {content}” formát, egy forrásdokumentum pedig a “title: {title} | text: {content}” formát használja; ha nincs címe, használja a “title: none” értéket. A kérdés–válasz, a tényellenőrzési és a kódkeresési feladatoknak saját lekérdezési előtagjaik vannak. Osztályozásnál, klaszterezésnél vagy mondathasonlóságnál következetesen ugyanazt a feladatformátumot használja mindkét oldalon. Az útmutató általában nem javasolja feladatelőtag hozzáadását egy kombinált multimodális reprezentáció szöveges részéhez.</p><p>A bemenet szerkezete határozza meg, hogy az eredmény egyetlen kombinált objektumot vagy különálló elemeket reprezentál-e. Több együtt megadott rész összesített beágyazást hoz létre; a külön Content objektumok minden bejegyzéshez külön beágyazást hoznak létre. Szöveget és képet tartalmazó bejegyzésnél a kombinált reprezentáció megragadhatja a kapcsolatukat. Az önállóan kereshető rekordokat tartsa külön. Ez a választás befolyásolja a keresés részletességét: egy egész bejegyzéshez tartozó egyetlen vektor más, mint a szövegrészletenként vagy képenként létrehozott vektor.</p><p>Az útmutató szerint a Gemini Embedding 001 és a Gemini Embedding 2 vektorai nem kompatibilis terekben helyezkednek el, és közvetlenül nem hasonlíthatók össze. A régebbi modellről átállított gyűjteményt újra be kell ágyazni az új térhez. Az összehasonlítandó vektoroknál tartsa következetesen a modellválasztást és a dimenziókat, az eredeti szöveget és médiát pedig a numerikus indextől külön őrizze meg. A beágyazások hasonlósága keresési jelzés, nem pedig tényszerű magyarázat arra, hogy egy dokumentum miért válaszolja meg a felhasználó kérdését.</p><p>Gyakorlati katalógusnál együtt ágyazza be a termékfotót és a hozzá tartozó jóváhagyott leírást, ha a párt egyetlen objektumként kell megtalálni. Dokumentumgyűjteménynél körülhatárolt szövegrészleteket ágyazzon be, és hasonlítsa össze őket egy célhoz formázott lekérdezéssel, majd a találat mellett jelenítse meg a forrásszövegrészleteket. Hangnál vagy videónál válassza azt az epizódot, amely a kereshető eseményt írja le, és őrizze meg az eredeti időtartományát. A hasznos eredmény egy forrásbizonyítékhoz kapcsolt numerikus reprezentáció az alkalmazás következő keresési vagy elemzési lépéséhez.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Elérhető az Ailootban · bemenetek és metódusok</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Beágyazások</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Bemenet</dt><dd><code>text</code>, <code>token_ids</code></dd></div><div><dt>Kimenet</dt><dd><code>embedding</code></dd></div><div><dt>Kontextus</dt><dd>8192 tokens</dd></div><div><dt>Kimeneti formátum</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Mező</th><th>Típus</th><th>Követelmény</th><th>Értékek és korlátok</th><th>Alapértelmezett</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>google/gemini-embedding-2</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string|string[]|integer[]|integer[][]</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Minimális elemszám: 1</div><div>Feltételek: Nem üres, homogén köteg. A tokenazonosítók nemnegatív egész számok.</div><div>Bemeneti keret: Maximum: 8192 · Szövegegység: UTF8-bájtok · Tokenegység: tokentömb elemei</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>float</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"known\"><span class=\"card-cell-label\">Alapértelmezett</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>integer</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Nem támogatott</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Minimum: 1</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>json_value</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Feltételek: A forrás engedélyezi ezt a JSON-metaadatmezőt; a szolgáltatónál érvényes pontos jelentése modellenként eltér.</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>json_value</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Feltételek: A forrás engedélyezi ezt a JSON-metaadatmezőt; a szolgáltatónál érvényes pontos jelentése modellenként eltér.</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>json_value</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Feltételek: A forrás engedélyezi ezt a JSON-metaadatmezőt; a szolgáltatónál érvényes pontos jelentése modellenként eltér.</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>object</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Feltételek: A provider.options elutasítva</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Bemeneti anyagok kombinációi</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Metódus paraméterei és életciklusa</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Paraméter</th><th>Szerződés</th></tr></thead><tbody><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>content_type</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>application/json</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>required</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>model, input</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>input_shapes</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[]</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>encoding_format</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>float</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>dimensions_override</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>false</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>max_input_budget_units</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>8192</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>multimodal_objects</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>false</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>material_types</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>text, token_ids</td></tr></tbody></table></div><p>Életciklus: <code>synchronous_json</code></p><p class=\"note-s\">Őrizze meg minden vektor indexét és dimenzióját.</p><p class=\"note-s\">A multimodális modell neve ezen a pontos útvonalon nem teszi lehetővé képobjektumok használatát.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Díjcsomagok</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.</p><dl data-price-conditions><dt>Gyors mód</dt><dd>Normál díjszabás <span class=\"note-s\">Ha a gyors mód van kiválasztva</span></dd><dt>Flex mód</dt><dd>Normál díjszabás <span class=\"note-s\">Ha a flex mód van kiválasztva</span></dd><dt>Maximális gondolkodási ráfordítás</dt><dd>Normál díjszabás <span class=\"note-s\">Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-díjak</h4><h4>Árak beállításonként</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Beállítás</th><th>Díjtáblázat</th><th>Díj</th></tr></thead><tbody><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Tokenenkénti alapárak</th><td data-cell-label=\"Díjtáblázat\"><span class=\"card-cell-label\">Díjtáblázat</span>Alapdíj</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Bemenet · Bemeneti tokenek</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Kimenet · Kimeneti tokenek</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Gyorsítótár olvasása</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Írás a gyorsítótárba</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Írás a gyorsítótárba, 1 óra</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. <a href=\"/docs/hu/billing/reserve/\">A foglalás és az elszámolás működése →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Példakérések</h3><h4>Ailoot Ultra · Beágyazások</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kódváltozatok\"><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=\"Kód másolása\"><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\">Eredmények fogadása és mentése</h3><h4>Ailoot Ultra · Beágyazások</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Őrizzen meg minden elkészült eredményt</h5><p class=\"note-s\">Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.</p><p class=\"note-s\">Őrizzen meg minden vektort az indexével együtt. A vektorok számának meg kell egyeznie a bemenetek számával; a dimenzióknak egységesnek kell lenniük.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Ha az eredeti választ ellenőrizni kell</h5><p class=\"note-s\">Nem kerül bevezetésre külön beágyazási feladatvégpont.</p></div><details class=\"card-about\" data-output-fields><summary>Válaszmezők</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Mező</th><th>Típus</th></tr></thead><tbody><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">object</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>integer</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>finite float[]</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Hibák és következő lépések</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Válasz</th><th>Feltétel</th><th>Következő lépés</th></tr></thead><tbody><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Javítsa a jelzett mezőket egy új létrehozási kérés előtt.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Álnevek</h3><h4>Modell álnevei</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>Metódusútvonalak álnevei</h4><p class=\"note-s\">Használja a fent látható metódusútvonalakat.</p><h4>Kapcsolódó modellazonosítók</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": "Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték",
                "http_status": 400,
                "recovery": "Javítsa a jelzett mezőket egy új létrehozási kérés előtt.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Nem kerül bevezetésre külön beágyazási feladatvégpont."
            },
            "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": "Őrizzen meg minden vektort az indexével együtt. A vektorok számának meg kell egyeznie a bemenetek számával; a dimenzióknak egységesnek kell lenniük.",
              "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": "UTF8-bájtok",
                  "token_unit": "tokentömb elemei"
                },
                "conditions": "Nem üres, homogén köteg. A tokenazonosítók nemnegatív egész számok.",
                "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": "A forrás engedélyezi ezt a JSON-metaadatmezőt; a szolgáltatónál érvényes pontos jelentése modellenként eltér.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "A forrás engedélyezi ezt a JSON-metaadatmezőt; a szolgáltatónál érvényes pontos jelentése modellenként eltér.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "A forrás engedélyezi ezt a JSON-metaadatmezőt; a szolgáltatónál érvényes pontos jelentése modellenként eltér.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "A provider.options elutasítva",
                "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": [
            "Őrizze meg minden vektor indexét és dimenzióját.",
            "A multimodális modell neve ezen a pontos útvonalon nem teszi lehetővé képobjektumok használatát."
          ],
          "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": "Tokenenkénti alapárak",
            "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": "Gyors mód",
            "value": "Normál díjszabás",
            "when": "Ha a gyors mód van kiválasztva"
          },
          {
            "label": "Flex mód",
            "value": "Normál díjszabás",
            "when": "Ha a flex mód van kiválasztva"
          },
          {
            "label": "Maximális gondolkodási ráfordítás",
            "value": "Normál díjszabás",
            "when": "Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik"
          }
        ],
        "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": "e4c20c4c077b4585bac5d203f4b2ac3876f83e08574dcc9c646a6cc52450e8d6",
    "input_html_sha256": "273b0408925e8073734d3966b243a8dc904014e5e1061df9f3d91206a91d72fa",
    "private_audit_sha256": "9a2058c378ee35ca023fe2367b320b0ad894988a85a71b41627c02467eda7d97",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/hu/google-gemini-embedding-2/",
    "description": "A Gemini Embedding 2 szöveget, képet, hangot, videót és PDF-et képez le közös numerikus térbe. Vektorai modalitások közötti keresést, információkeresést, osztályozást és klaszterezést támogatnak, rugalmas dimenziókkal és 8192 tokenes bemeneti korláttal.",
    "locale": "hu",
    "md_url": "https://ailoot.ai/models/hu/google-gemini-embedding-2/index.md",
    "title": "Google: Gemini Embedding 2 — Ailoot",
    "url": "https://ailoot.ai/models/hu/google-gemini-embedding-2/"
  },
  "rawModel": {
    "about": "A Gemini Embedding 2 a Google multimodális beágyazási modellje szöveg, kép, videó, hang és PDF numerikus reprezentációjához. A különböző médiatípusokat közös térbe képezi le, hogy egy alkalmazás összehasonlíthassa a jelentésüket. Az eredmény egy számvektor, amely szemantikai kereséshez, dokumentumkereséshez, ajánláshoz, osztályozáshoz vagy klaszterezéshez használható; nem írott válasz vagy generált médiafájl. A Google több mint 100 nyelvre kiterjedő szemantikai lefedettséget dokumentál.\n\nTudásbázisnál készítsen vektorokat a forrásszövegrészletekhez, hasonlítsa össze velük a felhasználó lekérdezését, és keresse meg a releváns anyagot. Egy külön szövegmodell ezután e források felhasználásával állíthat össze választ. Médiagyűjteménynél egy szöveges leírás kapcsolódó képeket vagy videókat kereshet; a lekérdezést kép is adhatja. Őrizze meg minden vektor kapcsolatát az eredeti tartalommal, beleértve az oldal- vagy videórészlet-hivatkozást, hogy a megtalált eredmény megvizsgálható és eredeti kontextusában megjeleníthető legyen.\n\nA teljes bemeneti korlát 8192 token. A stabil modell útmutatója legfeljebb hat PNG- vagy JPEG-képet, legfeljebb 180 másodpercnyi MP3- vagy WAV-hangot, valamint legfeljebb 120 másodpercnyi MP4- vagy MOV-videót enged meg. A dokumentált videokodekek a H264, H265, AV1 és VP9. A videófeldolgozás legfeljebb 32 képkockát használ: a legfeljebb 32 másodperces részletekből másodpercenként egy képkockát mintavételez, a hosszabbakból pedig egyenletesen 32 képkockát. A videó hangsávját nem dolgozza fel e videóbemenet részeként; külön ágyazza be a hangját, ha az fontos a kereséshez.\n\nA PDF-bemenet egyetlen, legfeljebb hatoldalas fájlt fogad el. A legjobb minőséghez a Google PDF-enként egy oldalt javasol. A nagyobb forrást ossza értelmes oldalakra vagy szakaszokra, és őrizze meg a kapcsolatukat az eredeti dokumentummal. Olyan részletet válasszon, amely a kereshetővé tenni kívánt tartalmat reprezentálja, ahelyett, hogy egymással össze nem függő anyagokat egyesítene pusztán azért, mert beleférnek a korlátba. A közös tokenhatár a vegyes médiát tartalmazó kérésre is vonatkozik. Minden PDF-oldal 258 vizuális tokent fogyaszt a kinyert szöveg tokenjein felül. A Google dokumentált munkafolyamatában a közös 8192 tokenes korlátot túllépő tartalom hiba nélkül csonkolódik.\n\nA kimeneti dimenzió rugalmasan 128 és 3072 között választható, 3072 alapértelmezéssel és 768, 1536, illetve 3072 ajánlott mérettel. A modell Matryoshka Representation Learning módszert használ, így a vektor kezdőrészei kisebb dimenziónál is hasznosak maradnak. Útmutatója az alapértelmezett és a rövidített vektorok automatikus normalizálását is dokumentálja. Válasszon egységes dimenziót az alkalmazás által összehasonlított rekordokhoz és lekérdezésekhez; a kért méret a numerikus reprezentációt változtatja meg, nem magát a forrástartalmat.\n\nKizárólag szöveges feladatoknál a célt a szövegbe foglalja bele a régebbi task_type mező használata helyett. A Google megkülönbözteti az aszimmetrikus keresést a szimmetrikus összehasonlítástól. Egy keresőkérdés a “task: search result | query: {content}” formát, egy forrásdokumentum pedig a “title: {title} | text: {content}” formát használja; ha nincs címe, használja a “title: none” értéket. A kérdés–válasz, a tényellenőrzési és a kódkeresési feladatoknak saját lekérdezési előtagjaik vannak. Osztályozásnál, klaszterezésnél vagy mondathasonlóságnál következetesen ugyanazt a feladatformátumot használja mindkét oldalon. Az útmutató általában nem javasolja feladatelőtag hozzáadását egy kombinált multimodális reprezentáció szöveges részéhez.\n\nA bemenet szerkezete határozza meg, hogy az eredmény egyetlen kombinált objektumot vagy különálló elemeket reprezentál-e. Több együtt megadott rész összesített beágyazást hoz létre; a külön Content objektumok minden bejegyzéshez külön beágyazást hoznak létre. Szöveget és képet tartalmazó bejegyzésnél a kombinált reprezentáció megragadhatja a kapcsolatukat. Az önállóan kereshető rekordokat tartsa külön. Ez a választás befolyásolja a keresés részletességét: egy egész bejegyzéshez tartozó egyetlen vektor más, mint a szövegrészletenként vagy képenként létrehozott vektor.\n\nAz útmutató szerint a Gemini Embedding 001 és a Gemini Embedding 2 vektorai nem kompatibilis terekben helyezkednek el, és közvetlenül nem hasonlíthatók össze. A régebbi modellről átállított gyűjteményt újra be kell ágyazni az új térhez. Az összehasonlítandó vektoroknál tartsa következetesen a modellválasztást és a dimenziókat, az eredeti szöveget és médiát pedig a numerikus indextől külön őrizze meg. A beágyazások hasonlósága keresési jelzés, nem pedig tényszerű magyarázat arra, hogy egy dokumentum miért válaszolja meg a felhasználó kérdését.\n\nGyakorlati katalógusnál együtt ágyazza be a termékfotót és a hozzá tartozó jóváhagyott leírást, ha a párt egyetlen objektumként kell megtalálni. Dokumentumgyűjteménynél körülhatárolt szövegrészleteket ágyazzon be, és hasonlítsa össze őket egy célhoz formázott lekérdezéssel, majd a találat mellett jelenítse meg a forrásszövegrészleteket. Hangnál vagy videónál válassza azt az epizódot, amely a kereshető eseményt írja le, és őrizze meg az eredeti időtartományát. A hasznos eredmény egy forrásbizonyítékhoz kapcsolt numerikus reprezentáció az alkalmazás következő keresési vagy elemzési lépéséhez.",
    "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": "A konfiguráció teljes árazása a részletekben."
      }
    ],
    "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": "Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték",
                "http_status": 400,
                "recovery": "Javítsa a jelzett mezőket egy új létrehozási kérés előtt.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Nem kerül bevezetésre külön beágyazási feladatvégpont."
            },
            "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": "Őrizzen meg minden vektort az indexével együtt. A vektorok számának meg kell egyeznie a bemenetek számával; a dimenzióknak egységesnek kell lenniük.",
              "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": "UTF8-bájtok",
                  "token_unit": "tokentömb elemei"
                },
                "conditions": "Nem üres, homogén köteg. A tokenazonosítók nemnegatív egész számok.",
                "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": "A forrás engedélyezi ezt a JSON-metaadatmezőt; a szolgáltatónál érvényes pontos jelentése modellenként eltér.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "A forrás engedélyezi ezt a JSON-metaadatmezőt; a szolgáltatónál érvényes pontos jelentése modellenként eltér.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "A forrás engedélyezi ezt a JSON-metaadatmezőt; a szolgáltatónál érvényes pontos jelentése modellenként eltér.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "A provider.options elutasítva",
                "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": [
            "Őrizze meg minden vektor indexét és dimenzióját.",
            "A multimodális modell neve ezen a pontos útvonalon nem teszi lehetővé képobjektumok használatát."
          ],
          "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": "Tokenenkénti alapárak",
            "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": "Gyors mód",
            "value": "Normál díjszabás",
            "when": "Ha a gyors mód van kiválasztva"
          },
          {
            "label": "Flex mód",
            "value": "Normál díjszabás",
            "when": "Ha a flex mód van kiválasztva"
          },
          {
            "label": "Maximális gondolkodási ráfordítás",
            "value": "Normál díjszabás",
            "when": "Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik"
          }
        ],
        "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": "A Gemini Embedding 2 szöveget, képet, hangot, videót és PDF-et képez le közös numerikus térbe. Vektorai modalitások közötti keresést, információkeresést, osztályozást és klaszterezést támogatnak, rugalmas dimenziókkal és 8192 tokenes bemeneti korláttal."
  },
  "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": "A Gemini Embedding 2 szöveget, képet, hangot, videót és PDF-et képez le közös numerikus térbe. Vektorai modalitások közötti keresést, információkeresést, osztályozást és klaszterezést támogatnak, rugalmas dimenziókkal és 8192 tokenes bemeneti korláttal.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "e047e29265d60e364508dac72fc5d340e2196d97141a110aadf85c0228f8062d",
    "renderer_sha256": "59b0e30a0b251f9d98bf0bafcc7ef50440c33057c2bf9c9fadabbcaeefffb5bb"
  },
  "sourceRevision": "80cf514ff301f734b232ed4ee20f0271d0b4d310e75e5ebcc001a421b502d24d"
}
