{
  "aboutHtml": "<p>voyage-multimodal-3.5 ist das Embedding-Modell von Voyage AI für die Informationssuche über Text, Bilder und Video hinweg. Es verarbeitet abwechselnde textliche und visuelle Inhalte mit einem einzelnen Transformer-Encoder und repräsentiert eine vollständige multimodale Eingabe in einem gemeinsamen Vektorraum. Die Ausgabe 3.5 ergänzt die ausdrückliche Unterstützung von Videoeinzelbildern und flexible Embedding-Dimensionen.</p><h4>Den Zusammenhang zwischen Text und visuellen Inhalten erhalten</h4><p>Bereiten Sie eine Dokumentseite oder einen Abschnitt in einer Form vor, die die nützlichen visuellen Informationen bewahrt. Eine Folie mit einem Diagramm und einer kurzen Erklärung kann mit dem Folienbild und dem begleitenden Text in derselben geordneten Eingabe repräsentiert werden. Für eine PDF-basierte Sammlung ist die dokumentierte visuelle Eingabe ein Screenshot einer Seite oder eine andere Bildrepräsentation des Dokuments.</p><p>Bewahren Sie bei einem Berichtsdiagramm Titel, Achsenbeschriftungen und Legende im Bild. Fügen Sie erläuternden Text hinzu, wenn er den zum Verständnis der Darstellung nötigen Kontext liefert. Speichern Sie Seitenzahl und Quellkennung beim resultierenden Vektor, damit ein abgerufener Kandidat die relevante Seite öffnen kann, statt lediglich einen Dokumentnamen zurückzugeben.</p><p>Das Eingabeformat des Herstellers unterstützt Sequenzen aus Text, Bildern und Videos. Als Bildformate werden PNG, JPEG, WebP und GIF veröffentlicht, als Videoformat MP4. Visuelle Inhalte können im dokumentierten Rezept durch URLs oder Base64-Daten repräsentiert werden; verwenden Sie innerhalb einer Anfrage durchgehend denselben Repräsentationsstil.</p><h4>Eine Szene statt eines ganzen langen Videos abrufen</h4><p>Das Modell repräsentiert Video als geordnete Sequenz von Einzelbildern. Der Hersteller empfiehlt, lange Videos in zusammengehörige Szenen aufzuteilen, Szenengrenzen an verfügbaren Transkript-Zeitstempeln auszurichten und den zugehörigen Transkripttext zu bewahren. Eine geringere Auflösung oder Bildrate kann helfen, eine semantisch zusammenhängende Szene in ihr Kontextbudget einzupassen.</p><p>Bei einer Sammlung von Schulungsvideos könnte eine Anfrage nach der Szene suchen, in der die Einstellung eines bestimmten Bedienelements gezeigt wird. Verknüpfen Sie jede indizierte Szene mit ihrem Zeitbereich. Geben Sie die passende Szene zurück und prüfen Sie die Einzelbilder oder den Originalclip auf die tatsächliche Handlung, statt den abgerufenen Vektor als schriftliche Beschreibung sämtlicher Inhalte der Aufnahme zu behandeln.</p><p>Transkripttext kann beitragen, wenn er als Teil der multimodalen Eingabe vorbereitet wird. Das Embedding der Videoeinzelbilder selbst liefert kein Sprachtranskript.</p><h4>Kontext- und Vorbereitungsgrenzen</h4><p>Die angegebene Kontextlänge beträgt 32.000 Tokens pro Eingabe. Voyage zählt in seiner veröffentlichten Berechnung je 560 Bildpixel und je 1120 Videopixel als ein Token, sodass visuelle Inhalte dieses Budget mit Text teilen. Die dokumentierten Grenzen umfassen außerdem 16 Millionen Pixel und 20 MB pro Bild sowie 20 MB pro Video. Eine Liste enthält höchstens 1000 Eingaben und insgesamt 320.000 Tokens.</p><p>Die Standardeinstellung für das Kürzen schneidet überlange Eingaben ab; liegt die Grenze innerhalb eines Bildes, wird das gesamte Bild verworfen. Vollständige Seiten oder Szenen innerhalb des Budgets vorzubereiten sorgt daher für besser vorhersehbare Eingabeinhalte. Die alternativ dokumentierte Einstellung weist überlange Eingaben zurück, statt sie zu kürzen.</p><h4>Vektordimensionen und Rollen in der Informationssuche</h4><p>Die standardmäßige Ausgabedimension beträgt 1024; für diese Ausgabe sind auch 256, 512 und 2048 Dimensionen dokumentiert. Die Ankündigung beschreibt Matryoshka-Embeddings sowie Gleitkomma-, vorzeichenbehaftete oder vorzeichenlose 8-Bit- und binäre Repräsentationen. Speichern Sie die gewählte Dimension und Repräsentation zusammen mit dem Index.</p><p>Voyages Suchrezept unterscheidet Anfrage- und Dokumenteingaben. Eine Anfrage kann Text oder ein Bild sein, und indizierte Dokumente können Text und visuelle Inhalte kombinieren. Ein Vektor repräsentiert jede vollständige Eingabesequenz; speichern Sie seine Zuordnung zur Quellseite, zum Bild oder zur Szene, damit das sortierte Ergebnis überprüfbar bleibt.</p><h4>Die zurückgegebene visuelle Quelle nutzen</h4><p>Ein Suchschritt kann eine Berichtsseite, Tabelle, Folie oder Szene finden, die für die Anfrage relevant ist. Der Schritt zum Schreiben einer Antwort oder zur Analyse liest anschließend dieses Quellmaterial. Prüfen Sie bei einer Tabelle die tatsächlichen Überschriften und Werte, bevor Sie ein Ergebnis verwenden; prüfen Sie bei einer Szene die relevanten Einzelbilder und den zugehörigen Text.</p><p>Der wesentliche Unterschied zu voyage-multimodal-3 liegt in der ausdrücklichen Videounterstützung und den zusätzlichen Repräsentationsmöglichkeiten der Ausgabe 3.5. Dies sind Embedding-Fähigkeiten zum Auffinden von Quellmaterial, mit numerischen Vektoren als Ausgabe statt generierter Bilder, Videos oder einer erzählenden Antwort.</p>",
  "aboutText": "voyage-multimodal-3.5 ist das Embedding-Modell von Voyage AI für die Informationssuche über Text, Bilder und Video hinweg. Es verarbeitet abwechselnde textliche und visuelle Inhalte mit einem einzelnen Transformer-Encoder und repräsentiert eine vollständige multimodale Eingabe in einem gemeinsamen Vektorraum. Die Ausgabe 3.5 ergänzt die ausdrückliche Unterstützung von Videoeinzelbildern und flexible Embedding-Dimensionen.\n\n### Den Zusammenhang zwischen Text und visuellen Inhalten erhalten\n\nBereiten Sie eine Dokumentseite oder einen Abschnitt in einer Form vor, die die nützlichen visuellen Informationen bewahrt. Eine Folie mit einem Diagramm und einer kurzen Erklärung kann mit dem Folienbild und dem begleitenden Text in derselben geordneten Eingabe repräsentiert werden. Für eine PDF-basierte Sammlung ist die dokumentierte visuelle Eingabe ein Screenshot einer Seite oder eine andere Bildrepräsentation des Dokuments.\n\nBewahren Sie bei einem Berichtsdiagramm Titel, Achsenbeschriftungen und Legende im Bild. Fügen Sie erläuternden Text hinzu, wenn er den zum Verständnis der Darstellung nötigen Kontext liefert. Speichern Sie Seitenzahl und Quellkennung beim resultierenden Vektor, damit ein abgerufener Kandidat die relevante Seite öffnen kann, statt lediglich einen Dokumentnamen zurückzugeben.\n\nDas Eingabeformat des Herstellers unterstützt Sequenzen aus Text, Bildern und Videos. Als Bildformate werden PNG, JPEG, WebP und GIF veröffentlicht, als Videoformat MP4. Visuelle Inhalte können im dokumentierten Rezept durch URLs oder Base64-Daten repräsentiert werden; verwenden Sie innerhalb einer Anfrage durchgehend denselben Repräsentationsstil.\n\n### Eine Szene statt eines ganzen langen Videos abrufen\n\nDas Modell repräsentiert Video als geordnete Sequenz von Einzelbildern. Der Hersteller empfiehlt, lange Videos in zusammengehörige Szenen aufzuteilen, Szenengrenzen an verfügbaren Transkript-Zeitstempeln auszurichten und den zugehörigen Transkripttext zu bewahren. Eine geringere Auflösung oder Bildrate kann helfen, eine semantisch zusammenhängende Szene in ihr Kontextbudget einzupassen.\n\nBei einer Sammlung von Schulungsvideos könnte eine Anfrage nach der Szene suchen, in der die Einstellung eines bestimmten Bedienelements gezeigt wird. Verknüpfen Sie jede indizierte Szene mit ihrem Zeitbereich. Geben Sie die passende Szene zurück und prüfen Sie die Einzelbilder oder den Originalclip auf die tatsächliche Handlung, statt den abgerufenen Vektor als schriftliche Beschreibung sämtlicher Inhalte der Aufnahme zu behandeln.\n\nTranskripttext kann beitragen, wenn er als Teil der multimodalen Eingabe vorbereitet wird. Das Embedding der Videoeinzelbilder selbst liefert kein Sprachtranskript.\n\n### Kontext- und Vorbereitungsgrenzen\n\nDie angegebene Kontextlänge beträgt 32.000 Tokens pro Eingabe. Voyage zählt in seiner veröffentlichten Berechnung je 560 Bildpixel und je 1120 Videopixel als ein Token, sodass visuelle Inhalte dieses Budget mit Text teilen. Die dokumentierten Grenzen umfassen außerdem 16 Millionen Pixel und 20 MB pro Bild sowie 20 MB pro Video. Eine Liste enthält höchstens 1000 Eingaben und insgesamt 320.000 Tokens.\n\nDie Standardeinstellung für das Kürzen schneidet überlange Eingaben ab; liegt die Grenze innerhalb eines Bildes, wird das gesamte Bild verworfen. Vollständige Seiten oder Szenen innerhalb des Budgets vorzubereiten sorgt daher für besser vorhersehbare Eingabeinhalte. Die alternativ dokumentierte Einstellung weist überlange Eingaben zurück, statt sie zu kürzen.\n\n### Vektordimensionen und Rollen in der Informationssuche\n\nDie standardmäßige Ausgabedimension beträgt 1024; für diese Ausgabe sind auch 256, 512 und 2048 Dimensionen dokumentiert. Die Ankündigung beschreibt Matryoshka-Embeddings sowie Gleitkomma-, vorzeichenbehaftete oder vorzeichenlose 8-Bit- und binäre Repräsentationen. Speichern Sie die gewählte Dimension und Repräsentation zusammen mit dem Index.\n\nVoyages Suchrezept unterscheidet Anfrage- und Dokumenteingaben. Eine Anfrage kann Text oder ein Bild sein, und indizierte Dokumente können Text und visuelle Inhalte kombinieren. Ein Vektor repräsentiert jede vollständige Eingabesequenz; speichern Sie seine Zuordnung zur Quellseite, zum Bild oder zur Szene, damit das sortierte Ergebnis überprüfbar bleibt.\n\n### Die zurückgegebene visuelle Quelle nutzen\n\nEin Suchschritt kann eine Berichtsseite, Tabelle, Folie oder Szene finden, die für die Anfrage relevant ist. Der Schritt zum Schreiben einer Antwort oder zur Analyse liest anschließend dieses Quellmaterial. Prüfen Sie bei einer Tabelle die tatsächlichen Überschriften und Werte, bevor Sie ein Ergebnis verwenden; prüfen Sie bei einer Szene die relevanten Einzelbilder und den zugehörigen Text.\n\nDer wesentliche Unterschied zu voyage-multimodal-3 liegt in der ausdrücklichen Videounterstützung und den zusätzlichen Repräsentationsmöglichkeiten der Ausgabe 3.5. Dies sind Embedding-Fähigkeiten zum Auffinden von Quellmaterial, mit numerischen Vektoren als Ausgabe statt generierter Bilder, Videos oder einer erzählenden Antwort.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "786ed54f341f5f05645cb66436bf98506fea6c2959cc57bc822738576a3035e8",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de-at",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">VoyageAI by MongoDB: voyage-multimodal-3.5</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Schließen\">×</button></div><div class=\"idline\"><span>VoyageAI by MongoDB /</span><code>voyageai/voyage-multimodal-3.5</code><button type=\"button\" id=\"copy-id\">ID kopieren</button></div><nav class=\"card-jump-nav\" aria-label=\"Bereiche der Modellkarte\"><button type=\"button\" data-card-jump=\"overview\">Einstieg</button><button type=\"button\" data-card-jump=\"methods\">Eingaben und Methoden</button><button type=\"button\" data-card-jump=\"pricing\">Tarife</button><button type=\"button\" data-card-jump=\"examples\">Beispiele</button><button type=\"button\" data-card-jump=\"results\">Ergebnisse</button><button type=\"button\" data-card-jump=\"aliases\">Aliasnamen</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-Methoden\"><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-multimodal-3.5\">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\">Einstieg</h3><p class=\"mdesc-full\">Voyage AI voyage-multimodal-3.5 bettet Text, Bilder und Videoeinzelbilder in einen gemeinsamen Suchraum ein. Es verarbeitet abwechselnde Inhalte wie Dokument-Screenshots, Tabellen und Szenen mit Eingaben von 32.000 Tokens und einer standardmäßig 1024-dimensionalen Repräsentation.</p><dl class=\"card-io\" data-card-io><div><dt>Zulässige Eingaben</dt><dd>Text · token_ids</dd></div><div><dt>Ergebnisse</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>Über das Modell</summary><p class=\"note-s\" data-model-method-boundary>Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.</p><div class=\"mabout\" id=\"m-about\"><p>voyage-multimodal-3.5 ist das Embedding-Modell von Voyage AI für die Informationssuche über Text, Bilder und Video hinweg. Es verarbeitet abwechselnde textliche und visuelle Inhalte mit einem einzelnen Transformer-Encoder und repräsentiert eine vollständige multimodale Eingabe in einem gemeinsamen Vektorraum. Die Ausgabe 3.5 ergänzt die ausdrückliche Unterstützung von Videoeinzelbildern und flexible Embedding-Dimensionen.</p><h4>Den Zusammenhang zwischen Text und visuellen Inhalten erhalten</h4><p>Bereiten Sie eine Dokumentseite oder einen Abschnitt in einer Form vor, die die nützlichen visuellen Informationen bewahrt. Eine Folie mit einem Diagramm und einer kurzen Erklärung kann mit dem Folienbild und dem begleitenden Text in derselben geordneten Eingabe repräsentiert werden. Für eine PDF-basierte Sammlung ist die dokumentierte visuelle Eingabe ein Screenshot einer Seite oder eine andere Bildrepräsentation des Dokuments.</p><p>Bewahren Sie bei einem Berichtsdiagramm Titel, Achsenbeschriftungen und Legende im Bild. Fügen Sie erläuternden Text hinzu, wenn er den zum Verständnis der Darstellung nötigen Kontext liefert. Speichern Sie Seitenzahl und Quellkennung beim resultierenden Vektor, damit ein abgerufener Kandidat die relevante Seite öffnen kann, statt lediglich einen Dokumentnamen zurückzugeben.</p><p>Das Eingabeformat des Herstellers unterstützt Sequenzen aus Text, Bildern und Videos. Als Bildformate werden PNG, JPEG, WebP und GIF veröffentlicht, als Videoformat MP4. Visuelle Inhalte können im dokumentierten Rezept durch URLs oder Base64-Daten repräsentiert werden; verwenden Sie innerhalb einer Anfrage durchgehend denselben Repräsentationsstil.</p><h4>Eine Szene statt eines ganzen langen Videos abrufen</h4><p>Das Modell repräsentiert Video als geordnete Sequenz von Einzelbildern. Der Hersteller empfiehlt, lange Videos in zusammengehörige Szenen aufzuteilen, Szenengrenzen an verfügbaren Transkript-Zeitstempeln auszurichten und den zugehörigen Transkripttext zu bewahren. Eine geringere Auflösung oder Bildrate kann helfen, eine semantisch zusammenhängende Szene in ihr Kontextbudget einzupassen.</p><p>Bei einer Sammlung von Schulungsvideos könnte eine Anfrage nach der Szene suchen, in der die Einstellung eines bestimmten Bedienelements gezeigt wird. Verknüpfen Sie jede indizierte Szene mit ihrem Zeitbereich. Geben Sie die passende Szene zurück und prüfen Sie die Einzelbilder oder den Originalclip auf die tatsächliche Handlung, statt den abgerufenen Vektor als schriftliche Beschreibung sämtlicher Inhalte der Aufnahme zu behandeln.</p><p>Transkripttext kann beitragen, wenn er als Teil der multimodalen Eingabe vorbereitet wird. Das Embedding der Videoeinzelbilder selbst liefert kein Sprachtranskript.</p><h4>Kontext- und Vorbereitungsgrenzen</h4><p>Die angegebene Kontextlänge beträgt 32.000 Tokens pro Eingabe. Voyage zählt in seiner veröffentlichten Berechnung je 560 Bildpixel und je 1120 Videopixel als ein Token, sodass visuelle Inhalte dieses Budget mit Text teilen. Die dokumentierten Grenzen umfassen außerdem 16 Millionen Pixel und 20 MB pro Bild sowie 20 MB pro Video. Eine Liste enthält höchstens 1000 Eingaben und insgesamt 320.000 Tokens.</p><p>Die Standardeinstellung für das Kürzen schneidet überlange Eingaben ab; liegt die Grenze innerhalb eines Bildes, wird das gesamte Bild verworfen. Vollständige Seiten oder Szenen innerhalb des Budgets vorzubereiten sorgt daher für besser vorhersehbare Eingabeinhalte. Die alternativ dokumentierte Einstellung weist überlange Eingaben zurück, statt sie zu kürzen.</p><h4>Vektordimensionen und Rollen in der Informationssuche</h4><p>Die standardmäßige Ausgabedimension beträgt 1024; für diese Ausgabe sind auch 256, 512 und 2048 Dimensionen dokumentiert. Die Ankündigung beschreibt Matryoshka-Embeddings sowie Gleitkomma-, vorzeichenbehaftete oder vorzeichenlose 8-Bit- und binäre Repräsentationen. Speichern Sie die gewählte Dimension und Repräsentation zusammen mit dem Index.</p><p>Voyages Suchrezept unterscheidet Anfrage- und Dokumenteingaben. Eine Anfrage kann Text oder ein Bild sein, und indizierte Dokumente können Text und visuelle Inhalte kombinieren. Ein Vektor repräsentiert jede vollständige Eingabesequenz; speichern Sie seine Zuordnung zur Quellseite, zum Bild oder zur Szene, damit das sortierte Ergebnis überprüfbar bleibt.</p><h4>Die zurückgegebene visuelle Quelle nutzen</h4><p>Ein Suchschritt kann eine Berichtsseite, Tabelle, Folie oder Szene finden, die für die Anfrage relevant ist. Der Schritt zum Schreiben einer Antwort oder zur Analyse liest anschließend dieses Quellmaterial. Prüfen Sie bei einer Tabelle die tatsächlichen Überschriften und Werte, bevor Sie ein Ergebnis verwenden; prüfen Sie bei einer Szene die relevanten Einzelbilder und den zugehörigen Text.</p><p>Der wesentliche Unterschied zu voyage-multimodal-3 liegt in der ausdrücklichen Videounterstützung und den zusätzlichen Repräsentationsmöglichkeiten der Ausgabe 3.5. Dies sind Embedding-Fähigkeiten zum Auffinden von Quellmaterial, mit numerischen Vektoren als Ausgabe statt generierter Bilder, Videos oder einer erzählenden Antwort.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">In Ailoot verfügbar · Eingaben und Methoden</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Embeddings</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Eingabe</dt><dd><code>text</code>, <code>token_ids</code></dd></div><div><dt>Ausgabe</dt><dd><code>embedding</code></dd></div><div><dt>Kontext</dt><dd>32 000 tokens</dd></div><div><dt>Ausgabeformat</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Feld</th><th>Typ</th><th>Anforderung</th><th>Werte und Limits</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>voyageai/voyage-multimodal-3.5</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string|string[]|integer[]|integer[][]</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Mindestanzahl Elemente: 1</div><div>Bedingungen: Nicht leerer, homogener Batch. Token-IDs sind nichtnegative Ganzzahlen.</div><div>Eingabebudget: Maximum: 32 000 · Texteinheit: UTF8-Bytes · Tokeneinheit: Elemente des Token-Arrays</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>integer</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Nicht unterstützt</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>json_value</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Bedingungen: Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch.</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>json_value</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Bedingungen: Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch.</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>json_value</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Bedingungen: Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch.</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Bedingungen: provider.options abgelehnt</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>Kombinationen von Eingabematerialien</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Methodenparameter und Lebenszyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>text, token_ids</td></tr></tbody></table></div><p>Lebenszyklus: <code>synchronous_json</code></p><p class=\"note-s\">Jeden Vektorindex und jede Dimension beibehalten.</p><p class=\"note-s\">Ein multimodaler Modellname erlaubt auf genau diesem Pfad keine Bildobjekte.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarife</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.</p><dl data-price-conditions><dt>Schnellmodus</dt><dd>Standardtarif <span class=\"note-s\">Wenn der Schnellmodus ausgewählt ist</span></dd><dt>Flex-Modus</dt><dd>Standardtarif <span class=\"note-s\">Wenn der Modus flex ausgewählt ist</span></dd><dt>Maximaler Denkaufwand</dt><dd>Standardtarif <span class=\"note-s\">Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-Tarife</h4><h4>Preise nach Konfiguration</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Tarifstaffel</th><th>Gebühr</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Basistarife für Token</th><td data-cell-label=\"Tarifstaffel\"><span class=\"card-cell-label\">Tarifstaffel</span>Grundtarif</td><td data-cell-label=\"Gebühr\"><span class=\"card-cell-label\">Gebühr</span><div><span>Eingabe · Eingabetoken</span> <b>$0.00024</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Ausgabe · Ausgabetoken</span> <b>$0</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · Cache lesen</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · In Cache schreiben</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · In Cache schreiben, 1 Stunde</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. <a href=\"/docs/de-at/billing/reserve/\">So funktionieren Reservierung und Abrechnung →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Beispielanfragen</h3><h4>Ailoot Ultra · Embeddings</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><button class=\"cg-tab\" id=\"model-code-2705-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2705-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-2705-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2705-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=\"Code kopieren\"><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-2705-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2705-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-multimodal-3.5&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-2705-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2705-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-multimodal-3.5&#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\">Ergebnisse abrufen und speichern</h3><h4>Ailoot Ultra · Embeddings</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Alle fertiggestellten Ergebnisse aufbewahren</h5><p class=\"note-s\">Bewahren Sie jede vollständig zurückgegebene Antwort, Datei und jeden Inhaltsteil auf.</p><p class=\"note-s\">Jeden Vektor mit seinem Index beibehalten. Die Anzahl der Vektoren muss der Anzahl der Eingaben entsprechen; die Dimensionen müssen konsistent sein.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Wenn die ursprüngliche Antwort geprüft werden muss</h5><p class=\"note-s\">Es wird kein Endpunkt für Embedding-Aufträge eingeführt.</p></div><details class=\"card-about\" data-output-fields><summary>Antwortfelder</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Feld</th><th>Typ</th></tr></thead><tbody><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">object</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>finite float[]</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fehler und nächste Schritte</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Antwort</th><th>Bedingung</th><th>Nächster Schritt</th></tr></thead><tbody><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Pflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Die angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasnamen</h3><h4>Modellaliasnamen</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=voyageai%2Fvoyage-multimodal-3.5&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-multimodal-3.5&amp;fmt=embeddings\"><code>voyageai/voyage-multimodal-3.5</code></a></span></p><h4>Aliasnamen für Methodenpfade</h4><p class=\"note-s\">Verwenden Sie die oben angezeigten Methodenpfade.</p><h4>Zugehörige Aufrufer-IDs</h4><p class=\"note-s\"><a href=\"#m=voyageai%2Fvoyage-multimodal-3.5&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-multimodal-3.5&amp;fmt=embeddings\"><code>voyageai/voyage-multimodal-3.5</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyageai/voyage-multimodal-3.5",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyageai/voyage-multimodal-3.5",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyageai%2Fvoyage-multimodal-3.5",
      "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": "Pflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig",
                "http_status": 400,
                "recovery": "Die angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Es wird kein Endpunkt für Embedding-Aufträge eingeführt."
            },
            "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": "Jeden Vektor mit seinem Index beibehalten. Die Anzahl der Vektoren muss der Anzahl der Eingaben entsprechen; die Dimensionen müssen konsistent sein.",
              "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-multimodal-3.5"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 32000,
                  "text_unit": "UTF8-Bytes",
                  "token_unit": "Elemente des Token-Arrays"
                },
                "conditions": "Nicht leerer, homogener Batch. Token-IDs sind nichtnegative Ganzzahlen.",
                "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": "Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options abgelehnt",
                "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": [
            "Jeden Vektorindex und jede Dimension beibehalten.",
            "Ein multimodaler Modellname erlaubt auf genau diesem Pfad keine Bildobjekte."
          ],
          "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": "Basistarife für Token",
            "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-multimodal-3.5\", \"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-multimodal-3.5',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": "Schnellmodus",
            "value": "Standardtarif",
            "when": "Wenn der Schnellmodus ausgewählt ist"
          },
          {
            "label": "Flex-Modus",
            "value": "Standardtarif",
            "when": "Wenn der Modus flex ausgewählt ist"
          },
          {
            "label": "Maximaler Denkaufwand",
            "value": "Standardtarif",
            "when": "Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird"
          }
        ],
        "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-multimodal-3.5",
        "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-multimodal-3.5",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "b260704d56db20bc90417b695fae7e906fdc61688745645616c65460f0b879d2",
    "input_html_sha256": "0e8e13aae2d24a2d8da503f009f6e434ddcdada8410bcf2be41fd0c8df231647",
    "private_audit_sha256": "73658186b0936db86da8a0c3a599b8e15f8743994f6ffcf9cb6403c2a048ab06",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de-at/voyageai-voyage-multimodal-3-5/",
    "description": "Voyage AI voyage-multimodal-3.5 bettet Text, Bilder und Videoeinzelbilder in einen gemeinsamen Suchraum ein. Es verarbeitet abwechselnde Inhalte wie Dokument-Screenshots, Tabellen und Szenen mit Eingaben von 32.000 Tokens und einer standardmäßig 1024-dimensionalen Repräsentation.",
    "locale": "de-at",
    "md_url": "https://ailoot.ai/models/de-at/voyageai-voyage-multimodal-3-5/index.md",
    "title": "VoyageAI by MongoDB: voyage-multimodal-3.5 — Ailoot",
    "url": "https://ailoot.ai/models/de-at/voyageai-voyage-multimodal-3-5/"
  },
  "rawModel": {
    "about": "voyage-multimodal-3.5 ist das Embedding-Modell von Voyage AI für die Informationssuche über Text, Bilder und Video hinweg. Es verarbeitet abwechselnde textliche und visuelle Inhalte mit einem einzelnen Transformer-Encoder und repräsentiert eine vollständige multimodale Eingabe in einem gemeinsamen Vektorraum. Die Ausgabe 3.5 ergänzt die ausdrückliche Unterstützung von Videoeinzelbildern und flexible Embedding-Dimensionen.\n\n### Den Zusammenhang zwischen Text und visuellen Inhalten erhalten\n\nBereiten Sie eine Dokumentseite oder einen Abschnitt in einer Form vor, die die nützlichen visuellen Informationen bewahrt. Eine Folie mit einem Diagramm und einer kurzen Erklärung kann mit dem Folienbild und dem begleitenden Text in derselben geordneten Eingabe repräsentiert werden. Für eine PDF-basierte Sammlung ist die dokumentierte visuelle Eingabe ein Screenshot einer Seite oder eine andere Bildrepräsentation des Dokuments.\n\nBewahren Sie bei einem Berichtsdiagramm Titel, Achsenbeschriftungen und Legende im Bild. Fügen Sie erläuternden Text hinzu, wenn er den zum Verständnis der Darstellung nötigen Kontext liefert. Speichern Sie Seitenzahl und Quellkennung beim resultierenden Vektor, damit ein abgerufener Kandidat die relevante Seite öffnen kann, statt lediglich einen Dokumentnamen zurückzugeben.\n\nDas Eingabeformat des Herstellers unterstützt Sequenzen aus Text, Bildern und Videos. Als Bildformate werden PNG, JPEG, WebP und GIF veröffentlicht, als Videoformat MP4. Visuelle Inhalte können im dokumentierten Rezept durch URLs oder Base64-Daten repräsentiert werden; verwenden Sie innerhalb einer Anfrage durchgehend denselben Repräsentationsstil.\n\n### Eine Szene statt eines ganzen langen Videos abrufen\n\nDas Modell repräsentiert Video als geordnete Sequenz von Einzelbildern. Der Hersteller empfiehlt, lange Videos in zusammengehörige Szenen aufzuteilen, Szenengrenzen an verfügbaren Transkript-Zeitstempeln auszurichten und den zugehörigen Transkripttext zu bewahren. Eine geringere Auflösung oder Bildrate kann helfen, eine semantisch zusammenhängende Szene in ihr Kontextbudget einzupassen.\n\nBei einer Sammlung von Schulungsvideos könnte eine Anfrage nach der Szene suchen, in der die Einstellung eines bestimmten Bedienelements gezeigt wird. Verknüpfen Sie jede indizierte Szene mit ihrem Zeitbereich. Geben Sie die passende Szene zurück und prüfen Sie die Einzelbilder oder den Originalclip auf die tatsächliche Handlung, statt den abgerufenen Vektor als schriftliche Beschreibung sämtlicher Inhalte der Aufnahme zu behandeln.\n\nTranskripttext kann beitragen, wenn er als Teil der multimodalen Eingabe vorbereitet wird. Das Embedding der Videoeinzelbilder selbst liefert kein Sprachtranskript.\n\n### Kontext- und Vorbereitungsgrenzen\n\nDie angegebene Kontextlänge beträgt 32.000 Tokens pro Eingabe. Voyage zählt in seiner veröffentlichten Berechnung je 560 Bildpixel und je 1120 Videopixel als ein Token, sodass visuelle Inhalte dieses Budget mit Text teilen. Die dokumentierten Grenzen umfassen außerdem 16 Millionen Pixel und 20 MB pro Bild sowie 20 MB pro Video. Eine Liste enthält höchstens 1000 Eingaben und insgesamt 320.000 Tokens.\n\nDie Standardeinstellung für das Kürzen schneidet überlange Eingaben ab; liegt die Grenze innerhalb eines Bildes, wird das gesamte Bild verworfen. Vollständige Seiten oder Szenen innerhalb des Budgets vorzubereiten sorgt daher für besser vorhersehbare Eingabeinhalte. Die alternativ dokumentierte Einstellung weist überlange Eingaben zurück, statt sie zu kürzen.\n\n### Vektordimensionen und Rollen in der Informationssuche\n\nDie standardmäßige Ausgabedimension beträgt 1024; für diese Ausgabe sind auch 256, 512 und 2048 Dimensionen dokumentiert. Die Ankündigung beschreibt Matryoshka-Embeddings sowie Gleitkomma-, vorzeichenbehaftete oder vorzeichenlose 8-Bit- und binäre Repräsentationen. Speichern Sie die gewählte Dimension und Repräsentation zusammen mit dem Index.\n\nVoyages Suchrezept unterscheidet Anfrage- und Dokumenteingaben. Eine Anfrage kann Text oder ein Bild sein, und indizierte Dokumente können Text und visuelle Inhalte kombinieren. Ein Vektor repräsentiert jede vollständige Eingabesequenz; speichern Sie seine Zuordnung zur Quellseite, zum Bild oder zur Szene, damit das sortierte Ergebnis überprüfbar bleibt.\n\n### Die zurückgegebene visuelle Quelle nutzen\n\nEin Suchschritt kann eine Berichtsseite, Tabelle, Folie oder Szene finden, die für die Anfrage relevant ist. Der Schritt zum Schreiben einer Antwort oder zur Analyse liest anschließend dieses Quellmaterial. Prüfen Sie bei einer Tabelle die tatsächlichen Überschriften und Werte, bevor Sie ein Ergebnis verwenden; prüfen Sie bei einer Szene die relevanten Einzelbilder und den zugehörigen Text.\n\nDer wesentliche Unterschied zu voyage-multimodal-3 liegt in der ausdrücklichen Videounterstützung und den zusätzlichen Repräsentationsmöglichkeiten der Ausgabe 3.5. Dies sind Embedding-Fähigkeiten zum Auffinden von Quellmaterial, mit numerischen Vektoren als Ausgabe statt generierter Bilder, Videos oder einer erzählenden Antwort.",
    "alias_of": null,
    "aliases": [],
    "author": "VoyageAI by MongoDB",
    "available": null,
    "canonical_model": "voyageai/voyage-multimodal-3.5",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "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": "Die vollständigen Preisangaben zur Konfiguration finden Sie in den Details."
      }
    ],
    "ctx": 32000,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "voyageai/voyage-multimodal-3.5",
    "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": "Pflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig",
                "http_status": 400,
                "recovery": "Die angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Es wird kein Endpunkt für Embedding-Aufträge eingeführt."
            },
            "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": "Jeden Vektor mit seinem Index beibehalten. Die Anzahl der Vektoren muss der Anzahl der Eingaben entsprechen; die Dimensionen müssen konsistent sein.",
              "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-multimodal-3.5"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 32000,
                  "text_unit": "UTF8-Bytes",
                  "token_unit": "Elemente des Token-Arrays"
                },
                "conditions": "Nicht leerer, homogener Batch. Token-IDs sind nichtnegative Ganzzahlen.",
                "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": "Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options abgelehnt",
                "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": [
            "Jeden Vektorindex und jede Dimension beibehalten.",
            "Ein multimodaler Modellname erlaubt auf genau diesem Pfad keine Bildobjekte."
          ],
          "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": "Basistarife für Token",
            "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-multimodal-3.5\", \"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-multimodal-3.5',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": "Schnellmodus",
            "value": "Standardtarif",
            "when": "Wenn der Schnellmodus ausgewählt ist"
          },
          {
            "label": "Flex-Modus",
            "value": "Standardtarif",
            "when": "Wenn der Modus flex ausgewählt ist"
          },
          {
            "label": "Maximaler Denkaufwand",
            "value": "Standardtarif",
            "when": "Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird"
          }
        ],
        "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-multimodal-3.5",
        "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-multimodal-3.5",
        "request_model_id": "voyageai/voyage-multimodal-3.5",
        "route_label": "Ultra"
      }
    ],
    "name": "VoyageAI by MongoDB: voyage-multimodal-3.5",
    "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-multimodal-3.5",
    "short": "Voyage AI voyage-multimodal-3.5 bettet Text, Bilder und Videoeinzelbilder in einen gemeinsamen Suchraum ein. Es verarbeitet abwechselnde Inhalte wie Dokument-Screenshots, Tabellen und Szenen mit Eingaben von 32.000 Tokens und einer standardmäßig 1024-dimensionalen Repräsentation."
  },
  "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 AI voyage-multimodal-3.5 bettet Text, Bilder und Videoeinzelbilder in einen gemeinsamen Suchraum ein. Es verarbeitet abwechselnde Inhalte wie Dokument-Screenshots, Tabellen und Szenen mit Eingaben von 32.000 Tokens und einer standardmäßig 1024-dimensionalen Repräsentation.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "d41ab08566a4a5f96440a88c33edaca8a148b302cfe98ae0b6a941f56436ff94",
    "renderer_sha256": "4915581496a34d8a27d706c57a04aa12aa22b4b136560828b2e1b9b8437d1eb0"
  },
  "sourceRevision": "8f1470f110a129207830d71e2e82dfefb457e0b21804fbbc2127b910fb1ec4ea"
}
