{
  "aboutHtml": "<p>Voyage Code 3 ist ein auf das Finden von Quellcode spezialisiertes Embedding-Modell. Der Hersteller beschreibt die Suche nach Code anhand natürlicher Sprache, anderer Codeausschnitte oder Docstrings: Eine Frage kann eine Implementierung finden, ein Codeausschnitt verwandte Logik und eine Funktionsbeschreibung relevanten Code. Das Modell erzeugt Vektoren für die Suche statt einer bearbeiteten Datei oder eines fertigen Programms.</p><p>Bereiten Sie Repository-Material rund um sinnvolle Codeeinheiten vor. Bewahren Sie eine Funktion mit ihrem Namen, ihrer Signatur und den Kommentaren auf, die ihren Zweck erklären. Fügen Sie für eine größere Komponente die benachbarten Definitionen hinzu, die zum Verständnis des Vorgangs nötig sind. Speichern Sie Repository, Revision, Dateipfad und Zeilenposition getrennt, damit ein Suchergebnis genau die Quelle öffnet, aus der das Embedding erzeugt wurde.</p><p>Eine natürlichsprachliche Suche kann Verhalten beschreiben, etwa das Finden des Projektteils, der einen Upload vor dem Speichern validiert. Eine codebasierte Anfrage kann eine Funktion bereitstellen, deren Zweck andernorts abgeglichen werden soll. Wählen Sie repräsentative Suchen aus tatsächlichen Entwicklungsaufgaben, einschließlich unbekannter Benennungen, ähnlicher Implementierungen und Hilfsfunktionen, deren Bedeutung vom umgebenden Code abhängt.</p><p>Das Kontextfenster von 32.000 Token nimmt umfangreiche Codepassagen auf. Nutzen Sie diesen Raum bewusst: Eine vollständige Funktion und ihre relevanten Abhängigkeiten können aussagekräftiger sein als ein beliebiger Block, der mitten im Kontrollfluss abgeschnitten wird. Halten Sie die Quellformatierung lesbar und erhalten Sie bei der Extraktion die Sprachsyntax. Teilen Sie eine Quelldatei, die größer als das Eingabefenster ist, an sinnvollen strukturellen Grenzen und erhalten Sie die Beziehung zwischen Passagen und ihrer übergeordneten Datei.</p><p>Voyage Code 3 unterstützt Embeddings mit 2.048, 1.024, 512 oder 256 Dimensionen sowie Gleitkommadarstellungen, vorzeichenbehaftete oder vorzeichenlose Acht-Bit-Darstellungen und Binärdarstellungen. Diese Steuerungen unterstützen unterschiedliche Repository-Indexgrößen und Suchkonfigurationen. Bewerten Sie eine kompakte Darstellung anhand derselben realen Suchen wie die größere Vergleichsbasis und prüfen Sie, ob die richtige Funktion oder Datei weiterhin unter den hilfreichen Ergebnissen erscheint.</p><p>Rufen Sie für einen Programmierassistenten zuerst die relevanten Quellpassagen ab und geben Sie diese samt Dateiverweisen anschließend an die für Antwort oder Änderung zuständige Komponente weiter. Eine Ähnlichkeitsübereinstimmung hilft bei der Kontextwahl; sie belegt nicht die Austauschbarkeit zweier Implementierungen. Prüfen Sie Eingaben, Nebenwirkungen und umgebende Verträge im gefundenen Code, bevor Sie ihn für eine Bearbeitung heranziehen.</p><p>Trennen Sie unverbundene Repository-Versionen durch Metadaten und halten Sie indexierte Revisionen nachverfolgbar. Aktualisieren Sie bei einer verschobenen Funktion oder verändertem Verhalten sowohl ihren Vektor als auch ihre Quellposition. Dieselben Embedding-Einstellungen sollten die indexierte Quelle und ihre Anfragen beschreiben. Vergleichen Sie bei einer Indexmigration die Ergebnisse mit der bestehenden Fragensammlung, damit ein geändertes Modell oder eine andere Vektordarstellung nicht stillschweigend verändert, welchen Code ein Entwickler sieht.</p><p>Hilfreiche Prüfungen betreffen die Frage, ob eine Anfrage die tatsächliche Implementierung statt nur eines Testnamens findet, ob ein Docstring seine zugehörige Funktion findet und ob semantisch verwandter Code von einem nur äußerlich ähnlichen Ausschnitt unterschieden wird. Erhalten Sie zurückgegebenen Quelltext und Position im Suchergebnis, damit Entwickler die Belege prüfen können. So werden die auf Code ausgerichteten Embeddings des Modells zu einem praktischen Werkzeug für Navigation und Kontextwahl.</p>",
  "aboutText": "Voyage Code 3 ist ein auf das Finden von Quellcode spezialisiertes Embedding-Modell. Der Hersteller beschreibt die Suche nach Code anhand natürlicher Sprache, anderer Codeausschnitte oder Docstrings: Eine Frage kann eine Implementierung finden, ein Codeausschnitt verwandte Logik und eine Funktionsbeschreibung relevanten Code. Das Modell erzeugt Vektoren für die Suche statt einer bearbeiteten Datei oder eines fertigen Programms.\n\nBereiten Sie Repository-Material rund um sinnvolle Codeeinheiten vor. Bewahren Sie eine Funktion mit ihrem Namen, ihrer Signatur und den Kommentaren auf, die ihren Zweck erklären. Fügen Sie für eine größere Komponente die benachbarten Definitionen hinzu, die zum Verständnis des Vorgangs nötig sind. Speichern Sie Repository, Revision, Dateipfad und Zeilenposition getrennt, damit ein Suchergebnis genau die Quelle öffnet, aus der das Embedding erzeugt wurde.\n\nEine natürlichsprachliche Suche kann Verhalten beschreiben, etwa das Finden des Projektteils, der einen Upload vor dem Speichern validiert. Eine codebasierte Anfrage kann eine Funktion bereitstellen, deren Zweck andernorts abgeglichen werden soll. Wählen Sie repräsentative Suchen aus tatsächlichen Entwicklungsaufgaben, einschließlich unbekannter Benennungen, ähnlicher Implementierungen und Hilfsfunktionen, deren Bedeutung vom umgebenden Code abhängt.\n\nDas Kontextfenster von 32.000 Token nimmt umfangreiche Codepassagen auf. Nutzen Sie diesen Raum bewusst: Eine vollständige Funktion und ihre relevanten Abhängigkeiten können aussagekräftiger sein als ein beliebiger Block, der mitten im Kontrollfluss abgeschnitten wird. Halten Sie die Quellformatierung lesbar und erhalten Sie bei der Extraktion die Sprachsyntax. Teilen Sie eine Quelldatei, die größer als das Eingabefenster ist, an sinnvollen strukturellen Grenzen und erhalten Sie die Beziehung zwischen Passagen und ihrer übergeordneten Datei.\n\nVoyage Code 3 unterstützt Embeddings mit 2.048, 1.024, 512 oder 256 Dimensionen sowie Gleitkommadarstellungen, vorzeichenbehaftete oder vorzeichenlose Acht-Bit-Darstellungen und Binärdarstellungen. Diese Steuerungen unterstützen unterschiedliche Repository-Indexgrößen und Suchkonfigurationen. Bewerten Sie eine kompakte Darstellung anhand derselben realen Suchen wie die größere Vergleichsbasis und prüfen Sie, ob die richtige Funktion oder Datei weiterhin unter den hilfreichen Ergebnissen erscheint.\n\nRufen Sie für einen Programmierassistenten zuerst die relevanten Quellpassagen ab und geben Sie diese samt Dateiverweisen anschließend an die für Antwort oder Änderung zuständige Komponente weiter. Eine Ähnlichkeitsübereinstimmung hilft bei der Kontextwahl; sie belegt nicht die Austauschbarkeit zweier Implementierungen. Prüfen Sie Eingaben, Nebenwirkungen und umgebende Verträge im gefundenen Code, bevor Sie ihn für eine Bearbeitung heranziehen.\n\nTrennen Sie unverbundene Repository-Versionen durch Metadaten und halten Sie indexierte Revisionen nachverfolgbar. Aktualisieren Sie bei einer verschobenen Funktion oder verändertem Verhalten sowohl ihren Vektor als auch ihre Quellposition. Dieselben Embedding-Einstellungen sollten die indexierte Quelle und ihre Anfragen beschreiben. Vergleichen Sie bei einer Indexmigration die Ergebnisse mit der bestehenden Fragensammlung, damit ein geändertes Modell oder eine andere Vektordarstellung nicht stillschweigend verändert, welchen Code ein Entwickler sieht.\n\nHilfreiche Prüfungen betreffen die Frage, ob eine Anfrage die tatsächliche Implementierung statt nur eines Testnamens findet, ob ein Docstring seine zugehörige Funktion findet und ob semantisch verwandter Code von einem nur äußerlich ähnlichen Ausschnitt unterschieden wird. Erhalten Sie zurückgegebenen Quelltext und Position im Suchergebnis, damit Entwickler die Belege prüfen können. So werden die auf Code ausgerichteten Embeddings des Modells zu einem praktischen Werkzeug für Navigation und Kontextwahl.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "9de13ae5deaa9ca6a73901b0d7304bed31d079409037e1471d0cd49dd75b2e81",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Voyage AI: Voyage Code 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Schließen\">×</button></div><div class=\"idline\"><span>Voyage AI /</span><code>voyage-code-3</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\">Start</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|voyage-code-3\">Embeddings</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Start</h3><p class=\"mdesc-full\">Voyage Code 3 erzeugt Embeddings für die Suche von Text zu Code, von Code zu Code und von Docstrings zu Code. Ein Fenster von 32.000 Token, wählbare Vektordimensionen und quantisierte Ausgabe unterstützen Repository-Suche und die Auswahl von Codekontext für Programmierassistenten.</p><dl class=\"card-io\" data-card-io><div><dt>Zulässige Eingaben</dt><dd>Text</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 Code 3 ist ein auf das Finden von Quellcode spezialisiertes Embedding-Modell. Der Hersteller beschreibt die Suche nach Code anhand natürlicher Sprache, anderer Codeausschnitte oder Docstrings: Eine Frage kann eine Implementierung finden, ein Codeausschnitt verwandte Logik und eine Funktionsbeschreibung relevanten Code. Das Modell erzeugt Vektoren für die Suche statt einer bearbeiteten Datei oder eines fertigen Programms.</p><p>Bereiten Sie Repository-Material rund um sinnvolle Codeeinheiten vor. Bewahren Sie eine Funktion mit ihrem Namen, ihrer Signatur und den Kommentaren auf, die ihren Zweck erklären. Fügen Sie für eine größere Komponente die benachbarten Definitionen hinzu, die zum Verständnis des Vorgangs nötig sind. Speichern Sie Repository, Revision, Dateipfad und Zeilenposition getrennt, damit ein Suchergebnis genau die Quelle öffnet, aus der das Embedding erzeugt wurde.</p><p>Eine natürlichsprachliche Suche kann Verhalten beschreiben, etwa das Finden des Projektteils, der einen Upload vor dem Speichern validiert. Eine codebasierte Anfrage kann eine Funktion bereitstellen, deren Zweck andernorts abgeglichen werden soll. Wählen Sie repräsentative Suchen aus tatsächlichen Entwicklungsaufgaben, einschließlich unbekannter Benennungen, ähnlicher Implementierungen und Hilfsfunktionen, deren Bedeutung vom umgebenden Code abhängt.</p><p>Das Kontextfenster von 32.000 Token nimmt umfangreiche Codepassagen auf. Nutzen Sie diesen Raum bewusst: Eine vollständige Funktion und ihre relevanten Abhängigkeiten können aussagekräftiger sein als ein beliebiger Block, der mitten im Kontrollfluss abgeschnitten wird. Halten Sie die Quellformatierung lesbar und erhalten Sie bei der Extraktion die Sprachsyntax. Teilen Sie eine Quelldatei, die größer als das Eingabefenster ist, an sinnvollen strukturellen Grenzen und erhalten Sie die Beziehung zwischen Passagen und ihrer übergeordneten Datei.</p><p>Voyage Code 3 unterstützt Embeddings mit 2.048, 1.024, 512 oder 256 Dimensionen sowie Gleitkommadarstellungen, vorzeichenbehaftete oder vorzeichenlose Acht-Bit-Darstellungen und Binärdarstellungen. Diese Steuerungen unterstützen unterschiedliche Repository-Indexgrößen und Suchkonfigurationen. Bewerten Sie eine kompakte Darstellung anhand derselben realen Suchen wie die größere Vergleichsbasis und prüfen Sie, ob die richtige Funktion oder Datei weiterhin unter den hilfreichen Ergebnissen erscheint.</p><p>Rufen Sie für einen Programmierassistenten zuerst die relevanten Quellpassagen ab und geben Sie diese samt Dateiverweisen anschließend an die für Antwort oder Änderung zuständige Komponente weiter. Eine Ähnlichkeitsübereinstimmung hilft bei der Kontextwahl; sie belegt nicht die Austauschbarkeit zweier Implementierungen. Prüfen Sie Eingaben, Nebenwirkungen und umgebende Verträge im gefundenen Code, bevor Sie ihn für eine Bearbeitung heranziehen.</p><p>Trennen Sie unverbundene Repository-Versionen durch Metadaten und halten Sie indexierte Revisionen nachverfolgbar. Aktualisieren Sie bei einer verschobenen Funktion oder verändertem Verhalten sowohl ihren Vektor als auch ihre Quellposition. Dieselben Embedding-Einstellungen sollten die indexierte Quelle und ihre Anfragen beschreiben. Vergleichen Sie bei einer Indexmigration die Ergebnisse mit der bestehenden Fragensammlung, damit ein geändertes Modell oder eine andere Vektordarstellung nicht stillschweigend verändert, welchen Code ein Entwickler sieht.</p><p>Hilfreiche Prüfungen betreffen die Frage, ob eine Anfrage die tatsächliche Implementierung statt nur eines Testnamens findet, ob ein Docstring seine zugehörige Funktion findet und ob semantisch verwandter Code von einem nur äußerlich ähnlichen Ausschnitt unterschieden wird. Erhalten Sie zurückgegebenen Quelltext und Position im Suchergebnis, damit Entwickler die Belege prüfen können. So werden die auf Code ausgerichteten Embeddings des Modells zu einem praktischen Werkzeug für Navigation und Kontextwahl.</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 · Einbettungen</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Eingabetypen</dt><dd><code>text</code></dd></div><div><dt>Ausgabetypen</dt><dd><code>embedding</code></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><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>voyage-code-3</div><div>Bedingungen: Verwenden Sie die genaue Ailoot-Modellauswahl.</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr><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 or array&lt;string&gt;</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>Bedingungen: Ein Text oder eine Liste von Texten; bewahren Sie für jedes zurückgegebene Datenelement einen Vektor samt Index auf.</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><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>optional</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span></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</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>conditions</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>Senden Sie Text mit dem ausgewählten Modell; bewahren Sie jeden zurückgegebenen Vektor und seinen Index auf.</td></tr></tbody></table></div><p>Lebenszyklus: <code>synchronous</code></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>Nicht angegeben <span class=\"note-s\">Wenn der Schnellmodus ausgewählt ist</span></dd><dt>Flex-Modus</dt><dd>Nicht angegeben <span class=\"note-s\">Wenn der Modus flex ausgewählt ist</span></dd><dt>Maximaler Denkaufwand</dt><dd>Nicht angegeben <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.0004</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Ausgabe · Ausgabetoken</span> <b>$0</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Lesen</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Schreiben</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</span></div><div><span>Eingabe · Cache-Schreiben, 1 Stunde</span> <b>—</b> <span class=\"price-unit\">/ 1K Token</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/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 · Einbettungen</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-2790-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2790-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · alle Vektoren und Verbrauchsdaten speichern</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-2790-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2790-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON&#39;\n{\n  &quot;model&quot;: &quot;voyage-code-3&quot;,\n  &quot;input&quot;: &quot;The quick brown fox jumps over the lazy dog&quot;\n}\nJSON\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 embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Ergebnisse abrufen und speichern</h3></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=voyage-code-3&amp;route=Ultra&amp;caller=voyage-code-3&amp;fmt=embeddings\"><code>voyage-code-3</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=voyage-code-3&amp;route=Ultra&amp;caller=voyage-code-3&amp;fmt=embeddings\"><code>voyage-code-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyage-code-3",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyage-code-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyage-code-3",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "lifecycle": {
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "mode": "synchronous",
              "status": [],
              "unknown": "Bewahren Sie die ursprüngliche Antwort und X-Client-Request-ID für den Abgleich auf. Eine mehrdeutige Antwort ist keine Erlaubnis, dieselbe Erstellungsanfrage erneut zu senden.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Speichern Sie die vollständige JSON-Antwort, jeden Vektor mit seinem Index, alle Felder mit Nutzungsdaten und alle Anfrageheader.",
              "every_actual_output": true,
              "family": "embedding",
              "fields": [
                {
                  "name": "object",
                  "type": "string"
                },
                {
                  "name": "model",
                  "type": "string"
                },
                {
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "name": "data[].embedding",
                  "type": "array<number>"
                },
                {
                  "name": "usage",
                  "type": "object"
                },
                {
                  "name": "usage.prompt_tokens",
                  "type": "integer"
                },
                {
                  "name": "usage.total_tokens",
                  "type": "integer"
                }
              ]
            },
            "parameters": [
              {
                "conditions": "Verwenden Sie die genaue Ailoot-Modellauswahl.",
                "default_known": false,
                "enum": [
                  "voyage-code-3"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Ein Text oder eine Liste von Texten; bewahren Sie für jedes zurückgegebene Datenelement einen Vektor samt Index auf.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "input",
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  }
                ],
                "required": true,
                "type": "string or array<string>"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "input": {
                  "oneOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "voyage-code-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "The quick brown fox jumps over the lazy dog",
                "model": "voyage-code-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Senden Sie Text mit dem ausgewählten Modell; bewahren Sie jeden zurückgegebenen Vektor und seinen Index auf."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/embeddings"
            },
            "mode": "synchronous",
            "status": [],
            "unknown": "Keep the original response and X-Client-Request-ID for reconciliation. An ambiguous response is not permission to submit the same creation again.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "output": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "every_actual_output": true,
            "family": "embedding",
            "fields": [
              {
                "name": "object",
                "type": "string"
              },
              {
                "name": "model",
                "type": "string"
              },
              {
                "name": "data[].index",
                "type": "integer"
              },
              {
                "name": "data[].embedding",
                "type": "array<number>"
              },
              {
                "name": "usage",
                "type": "object"
              },
              {
                "name": "usage.prompt_tokens",
                "type": "integer"
              },
              {
                "name": "usage.total_tokens",
                "type": "integer"
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Basistarife für Token",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"voyage-code-3\",\n  \"input\": \"The quick brown fox jumps over the lazy dog\"\n}\nJSON\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 embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n",
            "label": "curl · save all vectors and usage",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Einbettungen",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "voyage-code-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "voyage-code-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "2bb2434ee354baf8aded2e337eadc6635c379eed7622815c453f7710f59119e7",
    "input_html_sha256": "2e76a138cf74a716679da69a716faf514faadae551ef59ee66b8c4efc1bd1248",
    "private_audit_sha256": "d20bb003fbf1ce6d4e23a570527017e4caefc72180d8424aa62a1c5706604d4a",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de/voyage-code-3/",
    "description": "Voyage Code 3 erzeugt Embeddings für die Suche von Text zu Code, von Code zu Code und von Docstrings zu Code. Ein Fenster von 32.000 Token, wählbare Vektordimensionen und quantisierte Ausgabe unterstützen Repository-Suche und die Auswahl von Codekontext für Programmierassistenten.",
    "locale": "de",
    "md_url": "https://ailoot.ai/models/de/voyage-code-3/index.md",
    "title": "Voyage AI: Voyage Code 3 — Ailoot",
    "url": "https://ailoot.ai/models/de/voyage-code-3/"
  },
  "rawModel": {
    "about": "Voyage Code 3 ist ein auf das Finden von Quellcode spezialisiertes Embedding-Modell. Der Hersteller beschreibt die Suche nach Code anhand natürlicher Sprache, anderer Codeausschnitte oder Docstrings: Eine Frage kann eine Implementierung finden, ein Codeausschnitt verwandte Logik und eine Funktionsbeschreibung relevanten Code. Das Modell erzeugt Vektoren für die Suche statt einer bearbeiteten Datei oder eines fertigen Programms.\n\nBereiten Sie Repository-Material rund um sinnvolle Codeeinheiten vor. Bewahren Sie eine Funktion mit ihrem Namen, ihrer Signatur und den Kommentaren auf, die ihren Zweck erklären. Fügen Sie für eine größere Komponente die benachbarten Definitionen hinzu, die zum Verständnis des Vorgangs nötig sind. Speichern Sie Repository, Revision, Dateipfad und Zeilenposition getrennt, damit ein Suchergebnis genau die Quelle öffnet, aus der das Embedding erzeugt wurde.\n\nEine natürlichsprachliche Suche kann Verhalten beschreiben, etwa das Finden des Projektteils, der einen Upload vor dem Speichern validiert. Eine codebasierte Anfrage kann eine Funktion bereitstellen, deren Zweck andernorts abgeglichen werden soll. Wählen Sie repräsentative Suchen aus tatsächlichen Entwicklungsaufgaben, einschließlich unbekannter Benennungen, ähnlicher Implementierungen und Hilfsfunktionen, deren Bedeutung vom umgebenden Code abhängt.\n\nDas Kontextfenster von 32.000 Token nimmt umfangreiche Codepassagen auf. Nutzen Sie diesen Raum bewusst: Eine vollständige Funktion und ihre relevanten Abhängigkeiten können aussagekräftiger sein als ein beliebiger Block, der mitten im Kontrollfluss abgeschnitten wird. Halten Sie die Quellformatierung lesbar und erhalten Sie bei der Extraktion die Sprachsyntax. Teilen Sie eine Quelldatei, die größer als das Eingabefenster ist, an sinnvollen strukturellen Grenzen und erhalten Sie die Beziehung zwischen Passagen und ihrer übergeordneten Datei.\n\nVoyage Code 3 unterstützt Embeddings mit 2.048, 1.024, 512 oder 256 Dimensionen sowie Gleitkommadarstellungen, vorzeichenbehaftete oder vorzeichenlose Acht-Bit-Darstellungen und Binärdarstellungen. Diese Steuerungen unterstützen unterschiedliche Repository-Indexgrößen und Suchkonfigurationen. Bewerten Sie eine kompakte Darstellung anhand derselben realen Suchen wie die größere Vergleichsbasis und prüfen Sie, ob die richtige Funktion oder Datei weiterhin unter den hilfreichen Ergebnissen erscheint.\n\nRufen Sie für einen Programmierassistenten zuerst die relevanten Quellpassagen ab und geben Sie diese samt Dateiverweisen anschließend an die für Antwort oder Änderung zuständige Komponente weiter. Eine Ähnlichkeitsübereinstimmung hilft bei der Kontextwahl; sie belegt nicht die Austauschbarkeit zweier Implementierungen. Prüfen Sie Eingaben, Nebenwirkungen und umgebende Verträge im gefundenen Code, bevor Sie ihn für eine Bearbeitung heranziehen.\n\nTrennen Sie unverbundene Repository-Versionen durch Metadaten und halten Sie indexierte Revisionen nachverfolgbar. Aktualisieren Sie bei einer verschobenen Funktion oder verändertem Verhalten sowohl ihren Vektor als auch ihre Quellposition. Dieselben Embedding-Einstellungen sollten die indexierte Quelle und ihre Anfragen beschreiben. Vergleichen Sie bei einer Indexmigration die Ergebnisse mit der bestehenden Fragensammlung, damit ein geändertes Modell oder eine andere Vektordarstellung nicht stillschweigend verändert, welchen Code ein Entwickler sieht.\n\nHilfreiche Prüfungen betreffen die Frage, ob eine Anfrage die tatsächliche Implementierung statt nur eines Testnamens findet, ob ein Docstring seine zugehörige Funktion findet und ob semantisch verwandter Code von einem nur äußerlich ähnlichen Ausschnitt unterschieden wird. Erhalten Sie zurückgegebenen Quelltext und Position im Suchergebnis, damit Entwickler die Belege prüfen können. So werden die auf Code ausgerichteten Embeddings des Modells zu einem praktischen Werkzeug für Navigation und Kontextwahl.",
    "about_sha256": "7a62faecaa1a469a228fb832e8fd51d0fb1ee7fc0232e975614f45428c1f130f",
    "alias_of": null,
    "aliases": [],
    "author": "Voyage AI",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "Die vollständigen Preisangaben zur Konfiguration finden Sie in den Details."
      }
    ],
    "ctx": null,
    "display_name": "Voyage AI: Voyage Code 3",
    "formats": [
      "embeddings"
    ],
    "id": "voyage-code-3",
    "input": [
      "text"
    ],
    "kind": "embedding",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "lifecycle": {
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "mode": "synchronous",
              "status": [],
              "unknown": "Bewahren Sie die ursprüngliche Antwort und X-Client-Request-ID für den Abgleich auf. Eine mehrdeutige Antwort ist keine Erlaubnis, dieselbe Erstellungsanfrage erneut zu senden.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Speichern Sie die vollständige JSON-Antwort, jeden Vektor mit seinem Index, alle Felder mit Nutzungsdaten und alle Anfrageheader.",
              "every_actual_output": true,
              "family": "embedding",
              "fields": [
                {
                  "name": "object",
                  "type": "string"
                },
                {
                  "name": "model",
                  "type": "string"
                },
                {
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "name": "data[].embedding",
                  "type": "array<number>"
                },
                {
                  "name": "usage",
                  "type": "object"
                },
                {
                  "name": "usage.prompt_tokens",
                  "type": "integer"
                },
                {
                  "name": "usage.total_tokens",
                  "type": "integer"
                }
              ]
            },
            "parameters": [
              {
                "conditions": "Verwenden Sie die genaue Ailoot-Modellauswahl.",
                "default_known": false,
                "enum": [
                  "voyage-code-3"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Ein Text oder eine Liste von Texten; bewahren Sie für jedes zurückgegebene Datenelement einen Vektor samt Index auf.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "input",
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  }
                ],
                "required": true,
                "type": "string or array<string>"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "input": {
                  "oneOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "voyage-code-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "The quick brown fox jumps over the lazy dog",
                "model": "voyage-code-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Senden Sie Text mit dem ausgewählten Modell; bewahren Sie jeden zurückgegebenen Vektor und seinen Index auf."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/embeddings"
            },
            "mode": "synchronous",
            "status": [],
            "unknown": "Keep the original response and X-Client-Request-ID for reconciliation. An ambiguous response is not permission to submit the same creation again.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "output": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "every_actual_output": true,
            "family": "embedding",
            "fields": [
              {
                "name": "object",
                "type": "string"
              },
              {
                "name": "model",
                "type": "string"
              },
              {
                "name": "data[].index",
                "type": "integer"
              },
              {
                "name": "data[].embedding",
                "type": "array<number>"
              },
              {
                "name": "usage",
                "type": "object"
              },
              {
                "name": "usage.prompt_tokens",
                "type": "integer"
              },
              {
                "name": "usage.total_tokens",
                "type": "integer"
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Basistarife für Token",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"voyage-code-3\",\n  \"input\": \"The quick brown fox jumps over the lazy dog\"\n}\nJSON\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 embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n",
            "label": "curl · save all vectors and usage",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Einbettungen",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "voyage-code-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "voyage-code-3",
        "request_model_id": "voyage-code-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Voyage AI: Voyage Code 3",
    "price": {
      "in": 0.4,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.4,
      "sort_out": 0,
      "varies": false
    },
    "short": "Voyage Code 3 erzeugt Embeddings für die Suche von Text zu Code, von Code zu Code und von Docstrings zu Code. Ein Fenster von 32.000 Token, wählbare Vektordimensionen und quantisierte Ausgabe unterstützen Repository-Suche und die Auswahl von Codekontext für Programmierassistenten.",
    "short_sha256": "d4d092b4a7555efe0f233ac899b7e43901dde1d9465c4a647af52200c6d5d963"
  },
  "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 Code 3 erzeugt Embeddings für die Suche von Text zu Code, von Code zu Code und von Docstrings zu Code. Ein Fenster von 32.000 Token, wählbare Vektordimensionen und quantisierte Ausgabe unterstützen Repository-Suche und die Auswahl von Codekontext für Programmierassistenten.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "87358e7ca4e6fa26256e4db9170b154320285b871d108b02abdc8316b9785816",
    "renderer_sha256": "8bd3076b303b7b3aa4d961032854071403a471ec26a4f50c64e3a32556ea2925"
  },
  "sourceRevision": "b88526abe9b5aadbedb039360629080a7359d2e464c7d6ffb36ee5b2c3f83273"
}
