{
  "aboutHtml": "<p>voyage-4-large er Voyage AI’s førende tekstembeddingmodel i Voyage 4-familien. Den repræsenterer kildepassager og forespørgsler som numeriske vektorer til generel og flersproget søgning. De to særlige egenskaber er et mixture-of-experts-modeldesign og det fælles embeddingrum, som bruges af voyage-4-large, voyage-4, voyage-4-lite og voyage-4-nano.</p><h4>Fælles rum: separate modelvalg til korpus og forespørgsler</h4><p>Udvikleren beskriver asymmetrisk søgning: dokumenter kan indlejres med voyage-4-large, mens en anden model i Voyage 4-familien forbereder forespørgselsvektorerne. Et korpus repræsenteret af Large kan for eksempel gennemsøges med voyage-4-forespørgsler. Det lader søgningens to sider bruge forskellige modelvalg, mens de forbliver i det dokumenterede kompatible rum.</p><p>En praktisk samling kan derfor bruge Large til at forberede stabile dokumentpassager og vælge modellen på forespørgselssiden uafhængigt. Dokumenter får embeddings, når korpusset oprettes eller opdateres, mens forespørgsler vektoriseres, når brugere søger. Familieannonceringen beskriver skift af forespørgselsmodel inden for den kompatible familie uden at vektorisere dokumentkorpusset igen alene af den grund. Hold sammenlignede vektorer på samme dimensioner og i repræsentationer, som søgesystemet kan fortolke samlet.</p><h4>Embeddingdesign med mixture of experts</h4><p>Et tæt feedforwardlag behandler hvert token gennem hele sit parametersæt. Den MoE-tilgang, som beskrives for voyage-4-large, bruger en router og ekspert-feedforwardnetværk og vælger de eksperter, som behandler hvert token. Det adskiller den samlede modelkapacitet fra de parametre, som er aktive for et bestemt token. Voyage angiver et aktiveringsforhold på 1/10 for modellens MoE-design med top-k-routing.</p><p>Udviklerens tekniske forklaring beskriver også to udviklingsvalg. Ekspertkapacitet påvirker, om overskydende tokens springer et ekspertlag over gennem en residualsti; teamet valgte den størst mulige kapacitetsfaktor for at undgå tab af søgekvalitet. I sidste træningstrin fryses routerparametrene før sammenlægning af modeller, så interpolation af kildemodellerne ikke ændrer den indlærte routing til ekspertvalg. Det er egenskaber ved modelklargøringen, adskilt fra indstillinger for tekstlængde eller afkortning ved forberedelse af input.</p><h4>Dimensioner og outputrepræsentation</h4><p>Den officielle modeltabel angiver et kontekstvindue på 32.000 tokens og valgbare embeddings med 256, 512, 1024 og 2048 dimensioner med 1024 som standard. Familien bruger Matryoshka learning til indlejrede repræsentationsstørrelser og understøtter kvantiseringsvalg: 32-bit-flydende tal, 8-bit-heltal med eller uden fortegn og pakket binært output.</p><p>Ved binært output er længden af den returnerede byteliste en ottendedel af den valgte dimension, fordi hver byte indeholder otte embeddingbits. Gem dimensions- og datatypevalgene sammen med indekset, og brug en sammenligningsmetode, som understøtter repræsentationen. En mindre eller komprimeret vektor ændrer repræsentationen til søgning; vurder de relevante passager, som returneres på faktiske spørgsmål, før den vælges til en samling.</p><h4>Forbered dokument- og forespørgselsinput</h4><p>Voyage anbefaler rollen document til korpuspassager og rollen query til søgeformuleringer. Rolleindstillingen tilføjer den tilsvarende søgeinstruktion før embedding. Bevar passagens nyttige overskrift, betingelser og kildeplacering, og gem derefter den returnerede vektor sammen med originalteksten og en stabil identifikator.</p><p>I en teknisk videnssamling bør et spørgsmål om en fejltilstand føre til den passage, der beskriver tilstanden og dens relevante betingelser. Ved en dokumentsamling på tværs af sprog bevares kildesproget, og de spørgsmål og den terminologi, brugerne vil søge med, vurderes. Udgaven dækker søgemateriale som tekniske dokumenter, samtaler, lange dokumenter, kode, jura, økonomi og webtekst. Embeddingen lokaliserer kandidatmateriale; et senere reranker- eller svartrin bruger originalteksten.</p><h4>Grænser for kontekst, batching og afkortning</h4><p>Udviklerens aktuelle vejledning tillader op til 1.000 strenge og i alt 120.000 inputtokens i en voyage-4-large-anmodning. Dette adskiller sig fra den angivne batchgrænse for voyage-4, mens begge har et vindue på 32.000 tokens pr. tekst. Standardafkortning forkorter et for langt input, så det passer; deaktivering af afkortning returnerer en fejl ved en for lang tekst.</p><p>Vælg bevidst grænser for passager, som indeholder svaret, så en lang kilde ikke mister en relevant præcisering i en afkortet slutning. Bevar kildeforbindelsen ved returnering af søgeresultater, og undersøg den faktiske kandidattekst frem for at behandle vektornærhed som verificering af indholdet. Kompatibilitet i det fælles rum gælder den dokumenterede Voyage 4-tekstfamilie; behandling af kontekstualiserede tekststykker, billed- og videoembeddings samt senere modeludgaver forbliver egne modelspecifikke forløb.</p>",
  "aboutText": "voyage-4-large er Voyage AI’s førende tekstembeddingmodel i Voyage 4-familien. Den repræsenterer kildepassager og forespørgsler som numeriske vektorer til generel og flersproget søgning. De to særlige egenskaber er et mixture-of-experts-modeldesign og det fælles embeddingrum, som bruges af voyage-4-large, voyage-4, voyage-4-lite og voyage-4-nano.\n\n### Fælles rum: separate modelvalg til korpus og forespørgsler\n\nUdvikleren beskriver asymmetrisk søgning: dokumenter kan indlejres med voyage-4-large, mens en anden model i Voyage 4-familien forbereder forespørgselsvektorerne. Et korpus repræsenteret af Large kan for eksempel gennemsøges med voyage-4-forespørgsler. Det lader søgningens to sider bruge forskellige modelvalg, mens de forbliver i det dokumenterede kompatible rum.\n\nEn praktisk samling kan derfor bruge Large til at forberede stabile dokumentpassager og vælge modellen på forespørgselssiden uafhængigt. Dokumenter får embeddings, når korpusset oprettes eller opdateres, mens forespørgsler vektoriseres, når brugere søger. Familieannonceringen beskriver skift af forespørgselsmodel inden for den kompatible familie uden at vektorisere dokumentkorpusset igen alene af den grund. Hold sammenlignede vektorer på samme dimensioner og i repræsentationer, som søgesystemet kan fortolke samlet.\n\n### Embeddingdesign med mixture of experts\n\nEt tæt feedforwardlag behandler hvert token gennem hele sit parametersæt. Den MoE-tilgang, som beskrives for voyage-4-large, bruger en router og ekspert-feedforwardnetværk og vælger de eksperter, som behandler hvert token. Det adskiller den samlede modelkapacitet fra de parametre, som er aktive for et bestemt token. Voyage angiver et aktiveringsforhold på 1/10 for modellens MoE-design med top-k-routing.\n\nUdviklerens tekniske forklaring beskriver også to udviklingsvalg. Ekspertkapacitet påvirker, om overskydende tokens springer et ekspertlag over gennem en residualsti; teamet valgte den størst mulige kapacitetsfaktor for at undgå tab af søgekvalitet. I sidste træningstrin fryses routerparametrene før sammenlægning af modeller, så interpolation af kildemodellerne ikke ændrer den indlærte routing til ekspertvalg. Det er egenskaber ved modelklargøringen, adskilt fra indstillinger for tekstlængde eller afkortning ved forberedelse af input.\n\n### Dimensioner og outputrepræsentation\n\nDen officielle modeltabel angiver et kontekstvindue på 32.000 tokens og valgbare embeddings med 256, 512, 1024 og 2048 dimensioner med 1024 som standard. Familien bruger Matryoshka learning til indlejrede repræsentationsstørrelser og understøtter kvantiseringsvalg: 32-bit-flydende tal, 8-bit-heltal med eller uden fortegn og pakket binært output.\n\nVed binært output er længden af den returnerede byteliste en ottendedel af den valgte dimension, fordi hver byte indeholder otte embeddingbits. Gem dimensions- og datatypevalgene sammen med indekset, og brug en sammenligningsmetode, som understøtter repræsentationen. En mindre eller komprimeret vektor ændrer repræsentationen til søgning; vurder de relevante passager, som returneres på faktiske spørgsmål, før den vælges til en samling.\n\n### Forbered dokument- og forespørgselsinput\n\nVoyage anbefaler rollen document til korpuspassager og rollen query til søgeformuleringer. Rolleindstillingen tilføjer den tilsvarende søgeinstruktion før embedding. Bevar passagens nyttige overskrift, betingelser og kildeplacering, og gem derefter den returnerede vektor sammen med originalteksten og en stabil identifikator.\n\nI en teknisk videnssamling bør et spørgsmål om en fejltilstand føre til den passage, der beskriver tilstanden og dens relevante betingelser. Ved en dokumentsamling på tværs af sprog bevares kildesproget, og de spørgsmål og den terminologi, brugerne vil søge med, vurderes. Udgaven dækker søgemateriale som tekniske dokumenter, samtaler, lange dokumenter, kode, jura, økonomi og webtekst. Embeddingen lokaliserer kandidatmateriale; et senere reranker- eller svartrin bruger originalteksten.\n\n### Grænser for kontekst, batching og afkortning\n\nUdviklerens aktuelle vejledning tillader op til 1.000 strenge og i alt 120.000 inputtokens i en voyage-4-large-anmodning. Dette adskiller sig fra den angivne batchgrænse for voyage-4, mens begge har et vindue på 32.000 tokens pr. tekst. Standardafkortning forkorter et for langt input, så det passer; deaktivering af afkortning returnerer en fejl ved en for lang tekst.\n\nVælg bevidst grænser for passager, som indeholder svaret, så en lang kilde ikke mister en relevant præcisering i en afkortet slutning. Bevar kildeforbindelsen ved returnering af søgeresultater, og undersøg den faktiske kandidattekst frem for at behandle vektornærhed som verificering af indholdet. Kompatibilitet i det fælles rum gælder den dokumenterede Voyage 4-tekstfamilie; behandling af kontekstualiserede tekststykker, billed- og videoembeddings samt senere modeludgaver forbliver egne modelspecifikke forløb.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "c8ea08e0217859417f2e3b0ff2c8c3004581f7c07d16ca689e76798df079c490",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "da",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">VoyageAI by MongoDB: voyage-4-large</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Luk\">×</button></div><div class=\"idline\"><span>VoyageAI by MongoDB /</span><code>voyageai/voyage-4-large</code><button type=\"button\" id=\"copy-id\">Kopiér ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Modelkortets afsnit\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Input og metoder</button><button type=\"button\" data-card-jump=\"pricing\">Priser</button><button type=\"button\" data-card-jump=\"examples\">Eksempler</button><button type=\"button\" data-card-jump=\"results\">Resultater</button><button type=\"button\" data-card-jump=\"aliases\">Aliaser</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metoder\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|embeddings|/v1/embeddings|voyageai%2Fvoyage-4-large\">Embeddings</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Start</h3><p class=\"mdesc-full\">voyage-4-large er Voyage AI’s mixture-of-experts-tekstembeddingmodel til generel og flersproget genfinding. Dens vektorer deler Voyage 4-familiens rum, så korpusembeddings fra Large kan gennemsøges med kompatible forespørgselsembeddings fra andre modeller i familien.</p><dl class=\"card-io\" data-card-io><div><dt>Accepterede input</dt><dd>Tekst · token_ids</dd></div><div><dt>Resultater</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>Om modellen</summary><p class=\"note-s\" data-model-method-boundary>Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.</p><div class=\"mabout\" id=\"m-about\"><p>voyage-4-large er Voyage AI’s førende tekstembeddingmodel i Voyage 4-familien. Den repræsenterer kildepassager og forespørgsler som numeriske vektorer til generel og flersproget søgning. De to særlige egenskaber er et mixture-of-experts-modeldesign og det fælles embeddingrum, som bruges af voyage-4-large, voyage-4, voyage-4-lite og voyage-4-nano.</p><h4>Fælles rum: separate modelvalg til korpus og forespørgsler</h4><p>Udvikleren beskriver asymmetrisk søgning: dokumenter kan indlejres med voyage-4-large, mens en anden model i Voyage 4-familien forbereder forespørgselsvektorerne. Et korpus repræsenteret af Large kan for eksempel gennemsøges med voyage-4-forespørgsler. Det lader søgningens to sider bruge forskellige modelvalg, mens de forbliver i det dokumenterede kompatible rum.</p><p>En praktisk samling kan derfor bruge Large til at forberede stabile dokumentpassager og vælge modellen på forespørgselssiden uafhængigt. Dokumenter får embeddings, når korpusset oprettes eller opdateres, mens forespørgsler vektoriseres, når brugere søger. Familieannonceringen beskriver skift af forespørgselsmodel inden for den kompatible familie uden at vektorisere dokumentkorpusset igen alene af den grund. Hold sammenlignede vektorer på samme dimensioner og i repræsentationer, som søgesystemet kan fortolke samlet.</p><h4>Embeddingdesign med mixture of experts</h4><p>Et tæt feedforwardlag behandler hvert token gennem hele sit parametersæt. Den MoE-tilgang, som beskrives for voyage-4-large, bruger en router og ekspert-feedforwardnetværk og vælger de eksperter, som behandler hvert token. Det adskiller den samlede modelkapacitet fra de parametre, som er aktive for et bestemt token. Voyage angiver et aktiveringsforhold på 1/10 for modellens MoE-design med top-k-routing.</p><p>Udviklerens tekniske forklaring beskriver også to udviklingsvalg. Ekspertkapacitet påvirker, om overskydende tokens springer et ekspertlag over gennem en residualsti; teamet valgte den størst mulige kapacitetsfaktor for at undgå tab af søgekvalitet. I sidste træningstrin fryses routerparametrene før sammenlægning af modeller, så interpolation af kildemodellerne ikke ændrer den indlærte routing til ekspertvalg. Det er egenskaber ved modelklargøringen, adskilt fra indstillinger for tekstlængde eller afkortning ved forberedelse af input.</p><h4>Dimensioner og outputrepræsentation</h4><p>Den officielle modeltabel angiver et kontekstvindue på 32.000 tokens og valgbare embeddings med 256, 512, 1024 og 2048 dimensioner med 1024 som standard. Familien bruger Matryoshka learning til indlejrede repræsentationsstørrelser og understøtter kvantiseringsvalg: 32-bit-flydende tal, 8-bit-heltal med eller uden fortegn og pakket binært output.</p><p>Ved binært output er længden af den returnerede byteliste en ottendedel af den valgte dimension, fordi hver byte indeholder otte embeddingbits. Gem dimensions- og datatypevalgene sammen med indekset, og brug en sammenligningsmetode, som understøtter repræsentationen. En mindre eller komprimeret vektor ændrer repræsentationen til søgning; vurder de relevante passager, som returneres på faktiske spørgsmål, før den vælges til en samling.</p><h4>Forbered dokument- og forespørgselsinput</h4><p>Voyage anbefaler rollen document til korpuspassager og rollen query til søgeformuleringer. Rolleindstillingen tilføjer den tilsvarende søgeinstruktion før embedding. Bevar passagens nyttige overskrift, betingelser og kildeplacering, og gem derefter den returnerede vektor sammen med originalteksten og en stabil identifikator.</p><p>I en teknisk videnssamling bør et spørgsmål om en fejltilstand føre til den passage, der beskriver tilstanden og dens relevante betingelser. Ved en dokumentsamling på tværs af sprog bevares kildesproget, og de spørgsmål og den terminologi, brugerne vil søge med, vurderes. Udgaven dækker søgemateriale som tekniske dokumenter, samtaler, lange dokumenter, kode, jura, økonomi og webtekst. Embeddingen lokaliserer kandidatmateriale; et senere reranker- eller svartrin bruger originalteksten.</p><h4>Grænser for kontekst, batching og afkortning</h4><p>Udviklerens aktuelle vejledning tillader op til 1.000 strenge og i alt 120.000 inputtokens i en voyage-4-large-anmodning. Dette adskiller sig fra den angivne batchgrænse for voyage-4, mens begge har et vindue på 32.000 tokens pr. tekst. Standardafkortning forkorter et for langt input, så det passer; deaktivering af afkortning returnerer en fejl ved en for lang tekst.</p><p>Vælg bevidst grænser for passager, som indeholder svaret, så en lang kilde ikke mister en relevant præcisering i en afkortet slutning. Bevar kildeforbindelsen ved returnering af søgeresultater, og undersøg den faktiske kandidattekst frem for at behandle vektornærhed som verificering af indholdet. Kompatibilitet i det fælles rum gælder den dokumenterede Voyage 4-tekstfamilie; behandling af kontekstualiserede tekststykker, billed- og videoembeddings samt senere modeludgaver forbliver egne modelspecifikke forløb.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tilgængelig i Ailoot · input og metoder</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Embeddings</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Inputtyper</dt><dd><code>text</code>, <code>token_ids</code></dd></div><div><dt>Outputtyper</dt><dd><code>embedding</code></dd></div><div><dt>Kontekst</dt><dd>32.000 tokens</dd></div><div><dt>Outputformat</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Felt</th><th>Type</th><th>Krav</th><th>Værdier og grænser</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrævet</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>voyageai/voyage-4-large</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string|string[]|integer[]|integer[][]</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrævet</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>Minimumsantal elementer: 1</div><div>Betingelser: Ikke-tom batch med ensartede elementer. Token-ID’er er ikke-negative heltal.</div><div>Inputbudget: Maksimum: 32.000 · Tekstenhed: UTF8-bytes · Tokenenhed: elementer i et tokenarray</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfrit</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>float</div></td><td data-cell-label=\"Standard\" data-default=\"known\"><span class=\"card-cell-label\">Standard</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Ikke understøttet</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>Minimum: 1</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>json_value</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfrit</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>Betingelser: Kilden tillader dette JSON-metadatafelt; den præcise betydning hos den bagvedliggende udbyder afhænger af modellen.</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>json_value</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfrit</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>Betingelser: Kilden tillader dette JSON-metadatafelt; den præcise betydning hos den bagvedliggende udbyder afhænger af modellen.</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>json_value</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfrit</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>Betingelser: Kilden tillader dette JSON-metadatafelt; den præcise betydning hos den bagvedliggende udbyder afhænger af modellen.</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfrit</td><td data-cell-label=\"Værdier og grænser\"><span class=\"card-cell-label\">Værdier og grænser</span><div>Betingelser: provider.options afvist</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinationer af inputmaterialer</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Metodeparametre og livscyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Kontrakt</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>model, input</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>input_shapes</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[]</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>encoding_format</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>float</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>dimensions_override</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>max_input_budget_units</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>32000</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>multimodal_objects</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Kontrakt\"><span class=\"card-cell-label\">Kontrakt</span>text, token_ids</td></tr></tbody></table></div><p>Livscyklus: <code>synchronous_json</code></p><p class=\"note-s\">Gem hver vektors indeks og dimension.</p><p class=\"note-s\">Et multimodalt modelnavn giver ikke adgang til at bruge billedobjekter på denne præcise sti.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Priser</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.</p><dl data-price-conditions><dt>Hurtig tilstand</dt><dd>Standardpris <span class=\"note-s\">Når hurtig tilstand er valgt</span></dd><dt>flex-tilstand</dt><dd>Standardpris <span class=\"note-s\">Når flex-tilstanden er valgt</span></dd><dt>Maksimal ræsonneringsindsats</dt><dd>Standardpris <span class=\"note-s\">Når default-justeringen anvendes ved maksimal ræsonneringsindsats</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-takster</h4><h4>Priser efter konfiguration</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Takstplan</th><th>Beløb</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Grundtakster for tokens</th><td data-cell-label=\"Takstplan\"><span class=\"card-cell-label\">Takstplan</span>Grundtakst</td><td data-cell-label=\"Beløb\"><span class=\"card-cell-label\">Beløb</span><div><span>Input · Inputtokens</span> <b>$0.00024</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Output · Outputtokens</span> <b>$0</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cachelæsning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cacheskrivning</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Input · Cacheskrivning, 1 time</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. <a href=\"/docs/da/billing/reserve/\">Sådan fungerer reservation og afregning →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Eksempelanmodninger</h3><h4>Ailoot Ultra · Embeddings</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodevarianter\"><button class=\"cg-tab\" id=\"model-code-2702-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2702-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-2702-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2702-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=\"Kopiér kode\"><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-2702-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2702-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;voyageai/voyage-4-large&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-2702-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2702-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;voyageai/voyage-4-large&#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\">Hent og gem resultater</h3><h4>Ailoot Ultra · Embeddings</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Behold alle færdige resultater</h5><p class=\"note-s\">Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.</p><p class=\"note-s\">Gem hver vektor med dens indeks. Antallet af vektorer skal svare til antallet af input; dimensionerne skal være ensartede.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Hvis det oprindelige svar skal kontrolleres</h5><p class=\"note-s\">Der indføres intet endpoint til embedding-job.</p></div><details class=\"card-about\" data-output-fields><summary>Svarfelter</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Felt</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">object</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>finite float[]</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fejl og næste trin</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Svar</th><th>Betingelse</th><th>Næste trin</th></tr></thead><tbody><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Betingelse\"><span class=\"card-cell-label\">Betingelse</span>Ugyldige obligatoriske felter, materialerepræsentation eller parameterværdi</td><td data-cell-label=\"Næste trin\"><span class=\"card-cell-label\">Næste trin</span>Ret de angivne felter før en ny oprettelsesanmodning.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliaser</h3><h4>Modelaliaser</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=voyageai%2Fvoyage-4-large&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-4-large&amp;fmt=embeddings\"><code>voyageai/voyage-4-large</code></a></span></p><h4>Aliaser for metodestier</h4><p class=\"note-s\">Brug metodestierne vist ovenfor.</p><h4>Relaterede kalder-ID’er</h4><p class=\"note-s\"><a href=\"#m=voyageai%2Fvoyage-4-large&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-4-large&amp;fmt=embeddings\"><code>voyageai/voyage-4-large</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyageai/voyage-4-large",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyageai/voyage-4-large",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyageai%2Fvoyage-4-large",
      "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": "Ugyldige obligatoriske felter, materialerepræsentation eller parameterværdi",
                "http_status": 400,
                "recovery": "Ret de angivne felter før en ny oprettelsesanmodning.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Der indføres intet endpoint til embedding-job."
            },
            "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": "Gem hver vektor med dens indeks. Antallet af vektorer skal svare til antallet af input; dimensionerne skal være ensartede.",
              "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": [
                  "voyageai/voyage-4-large"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 32000,
                  "text_unit": "UTF8-bytes",
                  "token_unit": "elementer i et tokenarray"
                },
                "conditions": "Ikke-tom batch med ensartede elementer. Token-ID’er er ikke-negative heltal.",
                "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": "Kilden tillader dette JSON-metadatafelt; den præcise betydning hos den bagvedliggende udbyder afhænger af modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Kilden tillader dette JSON-metadatafelt; den præcise betydning hos den bagvedliggende udbyder afhænger af modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Kilden tillader dette JSON-metadatafelt; den præcise betydning hos den bagvedliggende udbyder afhænger af modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options afvist",
                "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": [
            "Gem hver vektors indeks og dimension.",
            "Et multimodalt modelnavn giver ikke adgang til at bruge billedobjekter på denne præcise sti."
          ],
          "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": 32000,
            "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": 32000,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Grundtakster for tokens",
            "units": [
              {
                "amount": "0.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "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\": \"voyageai/voyage-4-large\", \"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='voyageai/voyage-4-large',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.24,
        "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": "Hurtig tilstand",
            "value": "Standardpris",
            "when": "Når hurtig tilstand er valgt"
          },
          {
            "label": "flex-tilstand",
            "value": "Standardpris",
            "when": "Når flex-tilstanden er valgt"
          },
          {
            "label": "Maksimal ræsonneringsindsats",
            "value": "Standardpris",
            "when": "Når default-justeringen anvendes ved maksimal ræsonneringsindsats"
          }
        ],
        "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.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "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": "voyageai/voyage-4-large",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "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": "voyageai/voyage-4-large",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "131524226744e3d67cbd3180066a35d2af6b74521c9a1ff8f529d451dc34c85b",
    "input_html_sha256": "1041fcde63d042a73672c8f47674914ad17370eadce2e7a5843aa670994b1ce7",
    "private_audit_sha256": "c192d01c38d19f652c0d40704fae1f463f909e6894256cfdbcf56bef8dcf62ab",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/da/voyageai-voyage-4-large/",
    "description": "voyage-4-large er Voyage AI’s mixture-of-experts-tekstembeddingmodel til generel og flersproget genfinding. Dens vektorer deler Voyage 4-familiens rum, så korpusembeddings fra Large kan gennemsøges med kompatible forespørgselsembeddings fra andre modeller i familien.",
    "locale": "da",
    "md_url": "https://ailoot.ai/models/da/voyageai-voyage-4-large/index.md",
    "title": "VoyageAI by MongoDB: voyage-4-large — Ailoot",
    "url": "https://ailoot.ai/models/da/voyageai-voyage-4-large/"
  },
  "rawModel": {
    "about": "voyage-4-large er Voyage AI’s førende tekstembeddingmodel i Voyage 4-familien. Den repræsenterer kildepassager og forespørgsler som numeriske vektorer til generel og flersproget søgning. De to særlige egenskaber er et mixture-of-experts-modeldesign og det fælles embeddingrum, som bruges af voyage-4-large, voyage-4, voyage-4-lite og voyage-4-nano.\n\n### Fælles rum: separate modelvalg til korpus og forespørgsler\n\nUdvikleren beskriver asymmetrisk søgning: dokumenter kan indlejres med voyage-4-large, mens en anden model i Voyage 4-familien forbereder forespørgselsvektorerne. Et korpus repræsenteret af Large kan for eksempel gennemsøges med voyage-4-forespørgsler. Det lader søgningens to sider bruge forskellige modelvalg, mens de forbliver i det dokumenterede kompatible rum.\n\nEn praktisk samling kan derfor bruge Large til at forberede stabile dokumentpassager og vælge modellen på forespørgselssiden uafhængigt. Dokumenter får embeddings, når korpusset oprettes eller opdateres, mens forespørgsler vektoriseres, når brugere søger. Familieannonceringen beskriver skift af forespørgselsmodel inden for den kompatible familie uden at vektorisere dokumentkorpusset igen alene af den grund. Hold sammenlignede vektorer på samme dimensioner og i repræsentationer, som søgesystemet kan fortolke samlet.\n\n### Embeddingdesign med mixture of experts\n\nEt tæt feedforwardlag behandler hvert token gennem hele sit parametersæt. Den MoE-tilgang, som beskrives for voyage-4-large, bruger en router og ekspert-feedforwardnetværk og vælger de eksperter, som behandler hvert token. Det adskiller den samlede modelkapacitet fra de parametre, som er aktive for et bestemt token. Voyage angiver et aktiveringsforhold på 1/10 for modellens MoE-design med top-k-routing.\n\nUdviklerens tekniske forklaring beskriver også to udviklingsvalg. Ekspertkapacitet påvirker, om overskydende tokens springer et ekspertlag over gennem en residualsti; teamet valgte den størst mulige kapacitetsfaktor for at undgå tab af søgekvalitet. I sidste træningstrin fryses routerparametrene før sammenlægning af modeller, så interpolation af kildemodellerne ikke ændrer den indlærte routing til ekspertvalg. Det er egenskaber ved modelklargøringen, adskilt fra indstillinger for tekstlængde eller afkortning ved forberedelse af input.\n\n### Dimensioner og outputrepræsentation\n\nDen officielle modeltabel angiver et kontekstvindue på 32.000 tokens og valgbare embeddings med 256, 512, 1024 og 2048 dimensioner med 1024 som standard. Familien bruger Matryoshka learning til indlejrede repræsentationsstørrelser og understøtter kvantiseringsvalg: 32-bit-flydende tal, 8-bit-heltal med eller uden fortegn og pakket binært output.\n\nVed binært output er længden af den returnerede byteliste en ottendedel af den valgte dimension, fordi hver byte indeholder otte embeddingbits. Gem dimensions- og datatypevalgene sammen med indekset, og brug en sammenligningsmetode, som understøtter repræsentationen. En mindre eller komprimeret vektor ændrer repræsentationen til søgning; vurder de relevante passager, som returneres på faktiske spørgsmål, før den vælges til en samling.\n\n### Forbered dokument- og forespørgselsinput\n\nVoyage anbefaler rollen document til korpuspassager og rollen query til søgeformuleringer. Rolleindstillingen tilføjer den tilsvarende søgeinstruktion før embedding. Bevar passagens nyttige overskrift, betingelser og kildeplacering, og gem derefter den returnerede vektor sammen med originalteksten og en stabil identifikator.\n\nI en teknisk videnssamling bør et spørgsmål om en fejltilstand føre til den passage, der beskriver tilstanden og dens relevante betingelser. Ved en dokumentsamling på tværs af sprog bevares kildesproget, og de spørgsmål og den terminologi, brugerne vil søge med, vurderes. Udgaven dækker søgemateriale som tekniske dokumenter, samtaler, lange dokumenter, kode, jura, økonomi og webtekst. Embeddingen lokaliserer kandidatmateriale; et senere reranker- eller svartrin bruger originalteksten.\n\n### Grænser for kontekst, batching og afkortning\n\nUdviklerens aktuelle vejledning tillader op til 1.000 strenge og i alt 120.000 inputtokens i en voyage-4-large-anmodning. Dette adskiller sig fra den angivne batchgrænse for voyage-4, mens begge har et vindue på 32.000 tokens pr. tekst. Standardafkortning forkorter et for langt input, så det passer; deaktivering af afkortning returnerer en fejl ved en for lang tekst.\n\nVælg bevidst grænser for passager, som indeholder svaret, så en lang kilde ikke mister en relevant præcisering i en afkortet slutning. Bevar kildeforbindelsen ved returnering af søgeresultater, og undersøg den faktiske kandidattekst frem for at behandle vektornærhed som verificering af indholdet. Kompatibilitet i det fælles rum gælder den dokumenterede Voyage 4-tekstfamilie; behandling af kontekstualiserede tekststykker, billed- og videoembeddings samt senere modeludgaver forbliver egne modelspecifikke forløb.",
    "alias_of": null,
    "aliases": [],
    "author": "VoyageAI by MongoDB",
    "available": null,
    "canonical_model": "voyageai/voyage-4-large",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "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": "De fulde prisoplysninger for konfigurationen findes under detaljer."
      }
    ],
    "ctx": 32000,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "voyageai/voyage-4-large",
    "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": "Ugyldige obligatoriske felter, materialerepræsentation eller parameterværdi",
                "http_status": 400,
                "recovery": "Ret de angivne felter før en ny oprettelsesanmodning.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Der indføres intet endpoint til embedding-job."
            },
            "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": "Gem hver vektor med dens indeks. Antallet af vektorer skal svare til antallet af input; dimensionerne skal være ensartede.",
              "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": [
                  "voyageai/voyage-4-large"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 32000,
                  "text_unit": "UTF8-bytes",
                  "token_unit": "elementer i et tokenarray"
                },
                "conditions": "Ikke-tom batch med ensartede elementer. Token-ID’er er ikke-negative heltal.",
                "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": "Kilden tillader dette JSON-metadatafelt; den præcise betydning hos den bagvedliggende udbyder afhænger af modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Kilden tillader dette JSON-metadatafelt; den præcise betydning hos den bagvedliggende udbyder afhænger af modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Kilden tillader dette JSON-metadatafelt; den præcise betydning hos den bagvedliggende udbyder afhænger af modellen.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options afvist",
                "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": [
            "Gem hver vektors indeks og dimension.",
            "Et multimodalt modelnavn giver ikke adgang til at bruge billedobjekter på denne præcise sti."
          ],
          "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": 32000,
            "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": 32000,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Grundtakster for tokens",
            "units": [
              {
                "amount": "0.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "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\": \"voyageai/voyage-4-large\", \"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='voyageai/voyage-4-large',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.24,
        "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": "Hurtig tilstand",
            "value": "Standardpris",
            "when": "Når hurtig tilstand er valgt"
          },
          {
            "label": "flex-tilstand",
            "value": "Standardpris",
            "when": "Når flex-tilstanden er valgt"
          },
          {
            "label": "Maksimal ræsonneringsindsats",
            "value": "Standardpris",
            "when": "Når default-justeringen anvendes ved maksimal ræsonneringsindsats"
          }
        ],
        "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.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "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": "voyageai/voyage-4-large",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "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": "voyageai/voyage-4-large",
        "request_model_id": "voyageai/voyage-4-large",
        "route_label": "Ultra"
      }
    ],
    "name": "VoyageAI by MongoDB: voyage-4-large",
    "price": {
      "in": 0.24,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.24,
      "sort_out": 0,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Эмбеддинги · Base token rates",
        "units": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "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": "voyageai/voyage-4-large",
    "short": "voyage-4-large er Voyage AI’s mixture-of-experts-tekstembeddingmodel til generel og flersproget genfinding. Dens vektorer deler Voyage 4-familiens rum, så korpusembeddings fra Large kan gennemsøges med kompatible forespørgselsembeddings fra andre modeller i familien."
  },
  "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": "voyage-4-large er Voyage AI’s mixture-of-experts-tekstembeddingmodel til generel og flersproget genfinding. Dens vektorer deler Voyage 4-familiens rum, så korpusembeddings fra Large kan gennemsøges med kompatible forespørgselsembeddings fra andre modeller i familien.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "47f5142d7113e9448133d1394de36bd687c567f0195e5b60dc43fe98e15bc2f2",
    "renderer_sha256": "2bf9f26ea9bfd57ed53d867671d8f05b41a6ea85089f48039e3365dc2b92ec2c"
  },
  "sourceRevision": "7a4602d7cf7ef6773cfac588078efac9c8cfdd2f37838b5b4434e63e9daaeb79"
}
