{
  "aboutHtml": "<p>voyage-4 ist das mittelgroße Text-Embedding-Modell von Voyage AI in der Voyage-4-Familie. Es wandelt Anfrage- und Dokumenttext in numerische Vektoren für allgemeine und mehrsprachige Informationssuche um. Die prägende Fähigkeit der Familie ist ein gemeinsamer Embedding-Raum: voyage-4, voyage-4-large, voyage-4-lite und voyage-4-nano erzeugen kompatible Repräsentationen, sodass Anfrage- und Dokumentseite einer Suchaufgabe unterschiedliche Modelle dieser Familie verwenden können.</p><h4>Gemeinsamer Raum und asymmetrische Informationssuche</h4><p>Der Hersteller bezeichnet die Verwendung verschiedener Anfrage- und Korpusmodelle als asymmetrische Informationssuche. Ein dokumentiertes Muster besteht darin, den Korpus mit voyage-4-large vorzubereiten und ihn mit Anfrage-Embeddings von voyage-4 zu durchsuchen. Der Korpus wird einmal oder bei Änderungen seines Quellmaterials eingebettet, während Anfragevektoren beim Eintreffen von Suchen erzeugt werden. Der gemeinsame Raum erlaubt, das Modell auf der Anfrageseite innerhalb der Familie zu wechseln, ohne den Korpus allein aufgrund dieses Wechsels erneut einbetten zu müssen.</p><p>Halten Sie Ausgabedimension und Repräsentation der verglichenen Vektoren kompatibel. Die Aussage zum gemeinsamen Raum betrifft die benannten Voyage-4-Textmodelle; sie wird nicht dadurch belegt, dass zwei nicht verwandte Modelle Arrays derselben Länge zurückgeben. Eine praktische Aufgabe kann daher voyage-4 auf beiden Seiten der Suche verwenden oder seine Anfragevektoren mit einem vorhandenen voyage-4-large-Dokumentindex kombinieren, wenn die Repräsentationseinstellungen übereinstimmen.</p><h4>Rollen von Anfrage und Dokument</h4><p>Für die Informationssuche empfiehlt Voyage, Eingabetext als Anfrage oder Dokument zu kennzeichnen. Die Eingaberollenoption liefert vor der Vektorisierung die entsprechende Suchinstruktion. Bereiten Sie Korpuspassagen als Dokumente und die Suchformulierung des Nutzers als Anfrage vor und speichern Sie tatsächlichen Quelltext und Kennungen bei jedem gespeicherten Vektor.</p><p>Eine Wissenssuchsammlung kann beispielsweise technische Anweisungen und Produkterklärungen indizieren. Eine Frage dazu, was nach einem fehlgeschlagenen Import geschieht, sollte die Quellpassage zurückgeben, die dieses Verhalten beschreibt. Bewahren Sie Überschriften, relevante Bedingungen und die Quellposition bei der Passage, damit der resultierende Suchtreffer geprüft oder von einem späteren RAG-Antwortschritt verwendet werden kann. Das Embedding ist die numerische Suchrepräsentation; die zugrunde liegende Passage ist der Beleg, der in diesem späteren Schritt verwendet wird.</p><h4>Dimensionen und Ausgabedatentypen</h4><p>Das dokumentierte Kontextfenster pro Text beträgt 32.000 Tokens. Wählbare Dimensionen sind 256, 512, 1024 und 2048, mit 1024 als Standard. Matryoshka-Lernen ermöglicht diese ineinander verschachtelten Repräsentationsgrößen. Die Ausgabe kann 32-Bit-Gleitkommazahlen, vorzeichenbehaftete oder vorzeichenlose 8-Bit-Ganzzahlen oder gepackte Binärwerte verwenden, ermöglicht durch die quantisierungsbewusste Vorbereitung der Familie.</p><p>Bei gepackter Binärausgabe speichert jedes zurückgegebene Byte acht Embedding-Bits, sodass die Bytelistenlänge ein Achtel der gewählten Dimension beträgt. Byteanzahl und Embedding-Dimension haben unterschiedliche Bedeutungen. Wählen Sie eine Repräsentation, die Ihr Suchindex interpretieren kann, und prüfen Sie die Kandidatenrelevanz anhand der tatsächlich in der Sammlung verwendeten Fragen und Sprachen, bevor Sie eine komprimierte Konfiguration wählen.</p><h4>Eingabelänge, Batches und Kürzung</h4><p>Der aktuelle Text-Embedding-Leitfaden des Herstellers erlaubt bis zu 1.000 Zeichenfolgen und insgesamt 320.000 Tokens in einer voyage-4-Anfrage. Das Batch-Kontingent ist vom Fenster von 32.000 Tokens für jede Eingabe getrennt. Die Kürzung ist standardmäßig aktiviert: Überlanger Text wird passend gekürzt. Ist die Kürzung deaktiviert, führt ein überlanges Element stattdessen zu einem Fehler.</p><p>Bereiten Sie bei einem langen Bericht oder Transkript antwortrelevante Passagen bewusst vor, statt sich auf einen Schnitt an der Eingabegrenze zu verlassen. Verknüpfen Sie jede Passage mit ihrem übergeordneten Dokument und der Quellversion. Gewöhnliche voyage-4-Embedding-Eingaben sind einzelne Texte; die kontextualisierte Verarbeitung von Abschnittsgruppen gehört zu den separat dokumentierten kontextuellen Embedding-Modellen.</p><h4>Das Suchergebnis nutzen</h4><p>Speichern Sie die Vektoren zusammen mit Passagentext und stabilen Quellkennungen, vergleichen Sie jeden Anfragevektor mit den kompatiblen Dokumentvektoren und geben Sie mögliche Passagen zurück. Die Familienveröffentlichung bewertet die Informationssuche unter anderem anhand technischer Dokumente, Gespräche, langer Dokumente, Code, Recht, Finanzen und Webtext. Ein separater Reranker kann Kandidaten verfeinern, und ein späterer Antwortschritt kann ihren Text verwenden. Bewerten Sie diese zurückgegebenen Passagen anhand der Aufgabe; die Kompatibilität im gemeinsamen Raum ermöglicht die Modellkombination, während der Nutzen eines Ergebnisses weiterhin vom Quellmaterial und der Frage abhängt.</p>",
  "aboutText": "voyage-4 ist das mittelgroße Text-Embedding-Modell von Voyage AI in der Voyage-4-Familie. Es wandelt Anfrage- und Dokumenttext in numerische Vektoren für allgemeine und mehrsprachige Informationssuche um. Die prägende Fähigkeit der Familie ist ein gemeinsamer Embedding-Raum: voyage-4, voyage-4-large, voyage-4-lite und voyage-4-nano erzeugen kompatible Repräsentationen, sodass Anfrage- und Dokumentseite einer Suchaufgabe unterschiedliche Modelle dieser Familie verwenden können.\n\n### Gemeinsamer Raum und asymmetrische Informationssuche\n\nDer Hersteller bezeichnet die Verwendung verschiedener Anfrage- und Korpusmodelle als asymmetrische Informationssuche. Ein dokumentiertes Muster besteht darin, den Korpus mit voyage-4-large vorzubereiten und ihn mit Anfrage-Embeddings von voyage-4 zu durchsuchen. Der Korpus wird einmal oder bei Änderungen seines Quellmaterials eingebettet, während Anfragevektoren beim Eintreffen von Suchen erzeugt werden. Der gemeinsame Raum erlaubt, das Modell auf der Anfrageseite innerhalb der Familie zu wechseln, ohne den Korpus allein aufgrund dieses Wechsels erneut einbetten zu müssen.\n\nHalten Sie Ausgabedimension und Repräsentation der verglichenen Vektoren kompatibel. Die Aussage zum gemeinsamen Raum betrifft die benannten Voyage-4-Textmodelle; sie wird nicht dadurch belegt, dass zwei nicht verwandte Modelle Arrays derselben Länge zurückgeben. Eine praktische Aufgabe kann daher voyage-4 auf beiden Seiten der Suche verwenden oder seine Anfragevektoren mit einem vorhandenen voyage-4-large-Dokumentindex kombinieren, wenn die Repräsentationseinstellungen übereinstimmen.\n\n### Rollen von Anfrage und Dokument\n\nFür die Informationssuche empfiehlt Voyage, Eingabetext als Anfrage oder Dokument zu kennzeichnen. Die Eingaberollenoption liefert vor der Vektorisierung die entsprechende Suchinstruktion. Bereiten Sie Korpuspassagen als Dokumente und die Suchformulierung des Nutzers als Anfrage vor und speichern Sie tatsächlichen Quelltext und Kennungen bei jedem gespeicherten Vektor.\n\nEine Wissenssuchsammlung kann beispielsweise technische Anweisungen und Produkterklärungen indizieren. Eine Frage dazu, was nach einem fehlgeschlagenen Import geschieht, sollte die Quellpassage zurückgeben, die dieses Verhalten beschreibt. Bewahren Sie Überschriften, relevante Bedingungen und die Quellposition bei der Passage, damit der resultierende Suchtreffer geprüft oder von einem späteren RAG-Antwortschritt verwendet werden kann. Das Embedding ist die numerische Suchrepräsentation; die zugrunde liegende Passage ist der Beleg, der in diesem späteren Schritt verwendet wird.\n\n### Dimensionen und Ausgabedatentypen\n\nDas dokumentierte Kontextfenster pro Text beträgt 32.000 Tokens. Wählbare Dimensionen sind 256, 512, 1024 und 2048, mit 1024 als Standard. Matryoshka-Lernen ermöglicht diese ineinander verschachtelten Repräsentationsgrößen. Die Ausgabe kann 32-Bit-Gleitkommazahlen, vorzeichenbehaftete oder vorzeichenlose 8-Bit-Ganzzahlen oder gepackte Binärwerte verwenden, ermöglicht durch die quantisierungsbewusste Vorbereitung der Familie.\n\nBei gepackter Binärausgabe speichert jedes zurückgegebene Byte acht Embedding-Bits, sodass die Bytelistenlänge ein Achtel der gewählten Dimension beträgt. Byteanzahl und Embedding-Dimension haben unterschiedliche Bedeutungen. Wählen Sie eine Repräsentation, die Ihr Suchindex interpretieren kann, und prüfen Sie die Kandidatenrelevanz anhand der tatsächlich in der Sammlung verwendeten Fragen und Sprachen, bevor Sie eine komprimierte Konfiguration wählen.\n\n### Eingabelänge, Batches und Kürzung\n\nDer aktuelle Text-Embedding-Leitfaden des Herstellers erlaubt bis zu 1.000 Zeichenfolgen und insgesamt 320.000 Tokens in einer voyage-4-Anfrage. Das Batch-Kontingent ist vom Fenster von 32.000 Tokens für jede Eingabe getrennt. Die Kürzung ist standardmäßig aktiviert: Überlanger Text wird passend gekürzt. Ist die Kürzung deaktiviert, führt ein überlanges Element stattdessen zu einem Fehler.\n\nBereiten Sie bei einem langen Bericht oder Transkript antwortrelevante Passagen bewusst vor, statt sich auf einen Schnitt an der Eingabegrenze zu verlassen. Verknüpfen Sie jede Passage mit ihrem übergeordneten Dokument und der Quellversion. Gewöhnliche voyage-4-Embedding-Eingaben sind einzelne Texte; die kontextualisierte Verarbeitung von Abschnittsgruppen gehört zu den separat dokumentierten kontextuellen Embedding-Modellen.\n\n### Das Suchergebnis nutzen\n\nSpeichern Sie die Vektoren zusammen mit Passagentext und stabilen Quellkennungen, vergleichen Sie jeden Anfragevektor mit den kompatiblen Dokumentvektoren und geben Sie mögliche Passagen zurück. Die Familienveröffentlichung bewertet die Informationssuche unter anderem anhand technischer Dokumente, Gespräche, langer Dokumente, Code, Recht, Finanzen und Webtext. Ein separater Reranker kann Kandidaten verfeinern, und ein späterer Antwortschritt kann ihren Text verwenden. Bewerten Sie diese zurückgegebenen Passagen anhand der Aufgabe; die Kompatibilität im gemeinsamen Raum ermöglicht die Modellkombination, während der Nutzen eines Ergebnisses weiterhin vom Quellmaterial und der Frage abhängt.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "37d2f8c4c8e05f53613353465e044124b8afa82a69939e458b0b109afaab0265",
    "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-4</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-4</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-4\">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-4 bettet Text für allgemeine und mehrsprachige Informationssuche in einen gemeinsamen Vektorraum der Voyage-4-Familie ein. Es unterstützt Eingaben mit 32.000 Tokens, wählbare Ausgaben mit 256–2048 Dimensionen und query/document-Rollen für Suche und RAG.</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-4 ist das mittelgroße Text-Embedding-Modell von Voyage AI in der Voyage-4-Familie. Es wandelt Anfrage- und Dokumenttext in numerische Vektoren für allgemeine und mehrsprachige Informationssuche um. Die prägende Fähigkeit der Familie ist ein gemeinsamer Embedding-Raum: voyage-4, voyage-4-large, voyage-4-lite und voyage-4-nano erzeugen kompatible Repräsentationen, sodass Anfrage- und Dokumentseite einer Suchaufgabe unterschiedliche Modelle dieser Familie verwenden können.</p><h4>Gemeinsamer Raum und asymmetrische Informationssuche</h4><p>Der Hersteller bezeichnet die Verwendung verschiedener Anfrage- und Korpusmodelle als asymmetrische Informationssuche. Ein dokumentiertes Muster besteht darin, den Korpus mit voyage-4-large vorzubereiten und ihn mit Anfrage-Embeddings von voyage-4 zu durchsuchen. Der Korpus wird einmal oder bei Änderungen seines Quellmaterials eingebettet, während Anfragevektoren beim Eintreffen von Suchen erzeugt werden. Der gemeinsame Raum erlaubt, das Modell auf der Anfrageseite innerhalb der Familie zu wechseln, ohne den Korpus allein aufgrund dieses Wechsels erneut einbetten zu müssen.</p><p>Halten Sie Ausgabedimension und Repräsentation der verglichenen Vektoren kompatibel. Die Aussage zum gemeinsamen Raum betrifft die benannten Voyage-4-Textmodelle; sie wird nicht dadurch belegt, dass zwei nicht verwandte Modelle Arrays derselben Länge zurückgeben. Eine praktische Aufgabe kann daher voyage-4 auf beiden Seiten der Suche verwenden oder seine Anfragevektoren mit einem vorhandenen voyage-4-large-Dokumentindex kombinieren, wenn die Repräsentationseinstellungen übereinstimmen.</p><h4>Rollen von Anfrage und Dokument</h4><p>Für die Informationssuche empfiehlt Voyage, Eingabetext als Anfrage oder Dokument zu kennzeichnen. Die Eingaberollenoption liefert vor der Vektorisierung die entsprechende Suchinstruktion. Bereiten Sie Korpuspassagen als Dokumente und die Suchformulierung des Nutzers als Anfrage vor und speichern Sie tatsächlichen Quelltext und Kennungen bei jedem gespeicherten Vektor.</p><p>Eine Wissenssuchsammlung kann beispielsweise technische Anweisungen und Produkterklärungen indizieren. Eine Frage dazu, was nach einem fehlgeschlagenen Import geschieht, sollte die Quellpassage zurückgeben, die dieses Verhalten beschreibt. Bewahren Sie Überschriften, relevante Bedingungen und die Quellposition bei der Passage, damit der resultierende Suchtreffer geprüft oder von einem späteren RAG-Antwortschritt verwendet werden kann. Das Embedding ist die numerische Suchrepräsentation; die zugrunde liegende Passage ist der Beleg, der in diesem späteren Schritt verwendet wird.</p><h4>Dimensionen und Ausgabedatentypen</h4><p>Das dokumentierte Kontextfenster pro Text beträgt 32.000 Tokens. Wählbare Dimensionen sind 256, 512, 1024 und 2048, mit 1024 als Standard. Matryoshka-Lernen ermöglicht diese ineinander verschachtelten Repräsentationsgrößen. Die Ausgabe kann 32-Bit-Gleitkommazahlen, vorzeichenbehaftete oder vorzeichenlose 8-Bit-Ganzzahlen oder gepackte Binärwerte verwenden, ermöglicht durch die quantisierungsbewusste Vorbereitung der Familie.</p><p>Bei gepackter Binärausgabe speichert jedes zurückgegebene Byte acht Embedding-Bits, sodass die Bytelistenlänge ein Achtel der gewählten Dimension beträgt. Byteanzahl und Embedding-Dimension haben unterschiedliche Bedeutungen. Wählen Sie eine Repräsentation, die Ihr Suchindex interpretieren kann, und prüfen Sie die Kandidatenrelevanz anhand der tatsächlich in der Sammlung verwendeten Fragen und Sprachen, bevor Sie eine komprimierte Konfiguration wählen.</p><h4>Eingabelänge, Batches und Kürzung</h4><p>Der aktuelle Text-Embedding-Leitfaden des Herstellers erlaubt bis zu 1.000 Zeichenfolgen und insgesamt 320.000 Tokens in einer voyage-4-Anfrage. Das Batch-Kontingent ist vom Fenster von 32.000 Tokens für jede Eingabe getrennt. Die Kürzung ist standardmäßig aktiviert: Überlanger Text wird passend gekürzt. Ist die Kürzung deaktiviert, führt ein überlanges Element stattdessen zu einem Fehler.</p><p>Bereiten Sie bei einem langen Bericht oder Transkript antwortrelevante Passagen bewusst vor, statt sich auf einen Schnitt an der Eingabegrenze zu verlassen. Verknüpfen Sie jede Passage mit ihrem übergeordneten Dokument und der Quellversion. Gewöhnliche voyage-4-Embedding-Eingaben sind einzelne Texte; die kontextualisierte Verarbeitung von Abschnittsgruppen gehört zu den separat dokumentierten kontextuellen Embedding-Modellen.</p><h4>Das Suchergebnis nutzen</h4><p>Speichern Sie die Vektoren zusammen mit Passagentext und stabilen Quellkennungen, vergleichen Sie jeden Anfragevektor mit den kompatiblen Dokumentvektoren und geben Sie mögliche Passagen zurück. Die Familienveröffentlichung bewertet die Informationssuche unter anderem anhand technischer Dokumente, Gespräche, langer Dokumente, Code, Recht, Finanzen und Webtext. Ein separater Reranker kann Kandidaten verfeinern, und ein späterer Antwortschritt kann ihren Text verwenden. Bewerten Sie diese zurückgegebenen Passagen anhand der Aufgabe; die Kompatibilität im gemeinsamen Raum ermöglicht die Modellkombination, während der Nutzen eines Ergebnisses weiterhin vom Quellmaterial und der Frage abhängt.</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-4</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.00012</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-2701-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2701-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-2701-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2701-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-2701-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2701-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;voyageai/voyage-4&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-2701-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2701-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.embeddings.create(model=&#39;voyageai/voyage-4&#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-4&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-4&amp;fmt=embeddings\"><code>voyageai/voyage-4</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-4&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-4&amp;fmt=embeddings\"><code>voyageai/voyage-4</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyageai/voyage-4",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyageai/voyage-4",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyageai%2Fvoyage-4",
      "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-4"
                ],
                "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.00012000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000012",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"voyageai/voyage-4\", \"input\": [\"First document\", \"Second document\"]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='voyageai/voyage-4',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.12,
        "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.00012000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000012",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "voyageai/voyage-4",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00012000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000012",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "voyageai/voyage-4",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "faddecc5903d05884bc4fda386e3840886591e32f8dce99d20ac2fe2d6dce0d3",
    "input_html_sha256": "94cb7064d288ecae0b1a7a744c4da0d8d7e3f8fe7f7b84c89b06ad40455d2cc8",
    "private_audit_sha256": "5d47bfd7a5e2c0dc7f972a93a65d644c74715becf9f57c44e6f8e17951abec64",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de-at/voyageai-voyage-4/",
    "description": "voyage-4 bettet Text für allgemeine und mehrsprachige Informationssuche in einen gemeinsamen Vektorraum der Voyage-4-Familie ein. Es unterstützt Eingaben mit 32.000 Tokens, wählbare Ausgaben mit 256–2048 Dimensionen und query/document-Rollen für Suche und RAG.",
    "locale": "de-at",
    "md_url": "https://ailoot.ai/models/de-at/voyageai-voyage-4/index.md",
    "title": "VoyageAI by MongoDB: voyage-4 — Ailoot",
    "url": "https://ailoot.ai/models/de-at/voyageai-voyage-4/"
  },
  "rawModel": {
    "about": "voyage-4 ist das mittelgroße Text-Embedding-Modell von Voyage AI in der Voyage-4-Familie. Es wandelt Anfrage- und Dokumenttext in numerische Vektoren für allgemeine und mehrsprachige Informationssuche um. Die prägende Fähigkeit der Familie ist ein gemeinsamer Embedding-Raum: voyage-4, voyage-4-large, voyage-4-lite und voyage-4-nano erzeugen kompatible Repräsentationen, sodass Anfrage- und Dokumentseite einer Suchaufgabe unterschiedliche Modelle dieser Familie verwenden können.\n\n### Gemeinsamer Raum und asymmetrische Informationssuche\n\nDer Hersteller bezeichnet die Verwendung verschiedener Anfrage- und Korpusmodelle als asymmetrische Informationssuche. Ein dokumentiertes Muster besteht darin, den Korpus mit voyage-4-large vorzubereiten und ihn mit Anfrage-Embeddings von voyage-4 zu durchsuchen. Der Korpus wird einmal oder bei Änderungen seines Quellmaterials eingebettet, während Anfragevektoren beim Eintreffen von Suchen erzeugt werden. Der gemeinsame Raum erlaubt, das Modell auf der Anfrageseite innerhalb der Familie zu wechseln, ohne den Korpus allein aufgrund dieses Wechsels erneut einbetten zu müssen.\n\nHalten Sie Ausgabedimension und Repräsentation der verglichenen Vektoren kompatibel. Die Aussage zum gemeinsamen Raum betrifft die benannten Voyage-4-Textmodelle; sie wird nicht dadurch belegt, dass zwei nicht verwandte Modelle Arrays derselben Länge zurückgeben. Eine praktische Aufgabe kann daher voyage-4 auf beiden Seiten der Suche verwenden oder seine Anfragevektoren mit einem vorhandenen voyage-4-large-Dokumentindex kombinieren, wenn die Repräsentationseinstellungen übereinstimmen.\n\n### Rollen von Anfrage und Dokument\n\nFür die Informationssuche empfiehlt Voyage, Eingabetext als Anfrage oder Dokument zu kennzeichnen. Die Eingaberollenoption liefert vor der Vektorisierung die entsprechende Suchinstruktion. Bereiten Sie Korpuspassagen als Dokumente und die Suchformulierung des Nutzers als Anfrage vor und speichern Sie tatsächlichen Quelltext und Kennungen bei jedem gespeicherten Vektor.\n\nEine Wissenssuchsammlung kann beispielsweise technische Anweisungen und Produkterklärungen indizieren. Eine Frage dazu, was nach einem fehlgeschlagenen Import geschieht, sollte die Quellpassage zurückgeben, die dieses Verhalten beschreibt. Bewahren Sie Überschriften, relevante Bedingungen und die Quellposition bei der Passage, damit der resultierende Suchtreffer geprüft oder von einem späteren RAG-Antwortschritt verwendet werden kann. Das Embedding ist die numerische Suchrepräsentation; die zugrunde liegende Passage ist der Beleg, der in diesem späteren Schritt verwendet wird.\n\n### Dimensionen und Ausgabedatentypen\n\nDas dokumentierte Kontextfenster pro Text beträgt 32.000 Tokens. Wählbare Dimensionen sind 256, 512, 1024 und 2048, mit 1024 als Standard. Matryoshka-Lernen ermöglicht diese ineinander verschachtelten Repräsentationsgrößen. Die Ausgabe kann 32-Bit-Gleitkommazahlen, vorzeichenbehaftete oder vorzeichenlose 8-Bit-Ganzzahlen oder gepackte Binärwerte verwenden, ermöglicht durch die quantisierungsbewusste Vorbereitung der Familie.\n\nBei gepackter Binärausgabe speichert jedes zurückgegebene Byte acht Embedding-Bits, sodass die Bytelistenlänge ein Achtel der gewählten Dimension beträgt. Byteanzahl und Embedding-Dimension haben unterschiedliche Bedeutungen. Wählen Sie eine Repräsentation, die Ihr Suchindex interpretieren kann, und prüfen Sie die Kandidatenrelevanz anhand der tatsächlich in der Sammlung verwendeten Fragen und Sprachen, bevor Sie eine komprimierte Konfiguration wählen.\n\n### Eingabelänge, Batches und Kürzung\n\nDer aktuelle Text-Embedding-Leitfaden des Herstellers erlaubt bis zu 1.000 Zeichenfolgen und insgesamt 320.000 Tokens in einer voyage-4-Anfrage. Das Batch-Kontingent ist vom Fenster von 32.000 Tokens für jede Eingabe getrennt. Die Kürzung ist standardmäßig aktiviert: Überlanger Text wird passend gekürzt. Ist die Kürzung deaktiviert, führt ein überlanges Element stattdessen zu einem Fehler.\n\nBereiten Sie bei einem langen Bericht oder Transkript antwortrelevante Passagen bewusst vor, statt sich auf einen Schnitt an der Eingabegrenze zu verlassen. Verknüpfen Sie jede Passage mit ihrem übergeordneten Dokument und der Quellversion. Gewöhnliche voyage-4-Embedding-Eingaben sind einzelne Texte; die kontextualisierte Verarbeitung von Abschnittsgruppen gehört zu den separat dokumentierten kontextuellen Embedding-Modellen.\n\n### Das Suchergebnis nutzen\n\nSpeichern Sie die Vektoren zusammen mit Passagentext und stabilen Quellkennungen, vergleichen Sie jeden Anfragevektor mit den kompatiblen Dokumentvektoren und geben Sie mögliche Passagen zurück. Die Familienveröffentlichung bewertet die Informationssuche unter anderem anhand technischer Dokumente, Gespräche, langer Dokumente, Code, Recht, Finanzen und Webtext. Ein separater Reranker kann Kandidaten verfeinern, und ein späterer Antwortschritt kann ihren Text verwenden. Bewerten Sie diese zurückgegebenen Passagen anhand der Aufgabe; die Kompatibilität im gemeinsamen Raum ermöglicht die Modellkombination, während der Nutzen eines Ergebnisses weiterhin vom Quellmaterial und der Frage abhängt.",
    "alias_of": null,
    "aliases": [],
    "author": "VoyageAI by MongoDB",
    "available": null,
    "canonical_model": "voyageai/voyage-4",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00012000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000012",
            "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-4",
    "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-4"
                ],
                "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.00012000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000012",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"voyageai/voyage-4\", \"input\": [\"First document\", \"Second document\"]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='voyageai/voyage-4',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.12,
        "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.00012000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000012",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "voyageai/voyage-4",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00012000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000012",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "voyageai/voyage-4",
        "request_model_id": "voyageai/voyage-4",
        "route_label": "Ultra"
      }
    ],
    "name": "VoyageAI by MongoDB: voyage-4",
    "price": {
      "in": 0.12,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.12,
      "sort_out": 0,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Эмбеддинги · Base token rates",
        "units": [
          {
            "amount": "0.00012000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000012",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "public_id": "voyageai/voyage-4",
    "short": "voyage-4 bettet Text für allgemeine und mehrsprachige Informationssuche in einen gemeinsamen Vektorraum der Voyage-4-Familie ein. Es unterstützt Eingaben mit 32.000 Tokens, wählbare Ausgaben mit 256–2048 Dimensionen und query/document-Rollen für Suche und RAG."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "voyage-4 bettet Text für allgemeine und mehrsprachige Informationssuche in einen gemeinsamen Vektorraum der Voyage-4-Familie ein. Es unterstützt Eingaben mit 32.000 Tokens, wählbare Ausgaben mit 256–2048 Dimensionen und query/document-Rollen für Suche und RAG.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "068a42bde124657573af2c3189a9926d53727f631467ba580df3e3fa373e2d75",
    "renderer_sha256": "4915581496a34d8a27d706c57a04aa12aa22b4b136560828b2e1b9b8437d1eb0"
  },
  "sourceRevision": "98b58a5516cc603d6e4e02e2795237338b53f64a7e97e90305753ee9ff0beb69"
}
