{
  "aboutHtml": "<p>multi-qa-mpnet-base-dot-v1 ist ein Sentence-Transformers-Modell, das Textpassagen zu einer Frage oder Suchanfrage abruft. Für das Training wurden rund 215 Millionen Frage-Antwort-Paare verwendet. Jede Eingabe wird zu einem 768-dimensionalen dichten Vektor; CLS-Pooling und die Bewertung per Skalarprodukt definieren genau diese Edition.</p><h4>Frage und Kandidatenpassagen vorbereiten</h4><p>Formulieren Sie die Anfrage als Informationsbedarf und bereiten Sie die Korpuseinträge als lesbare Textpassagen vor. Beispielsweise lässt sich eine Frage zur Änderung einer Lieferadresse mit einzelnen Absätzen zu Adressänderungen, Bestellstornierung und Sendungsverfolgung vergleichen. Behalten Sie die relevanten Bedingungen in der Passage zur Adressänderung bei, einschliesslich der Angabe, ob die Bestellung bereits versandt wurde.</p><p>Kodieren Sie Anfrage und Passagen mit genau diesem Modell. Das veröffentlichte Beispiel tut dies direkt, ohne Query- oder Dokument-Präfix, und sortiert die Passagen nach ihren Skalarprodukt-Werten. Halten Sie jeden Vektor mit seiner ursprünglichen Passage und Dokumentkennung verbunden, damit das gerankte Ergebnis das tatsächlich indexierte Material anzeigen kann.</p><h4>CLS-Pooling und die Skalarprodukt-Edition</h4><p>Das Referenzrezept des Modells verwendet die Repräsentation des ersten Tokens, bekannt als CLS-Pooling. Die technische Tabelle gibt ausdrücklich an, dass die Embeddings nicht normalisiert sind, und nennt das Skalarprodukt als geeignete Bewertungsfunktion. Behalten Sie dieses Rezept bei der Einrichtung der Sammlung und auf der Anfrageseite bei.</p><p>Eine L2-Normalisierung dieser Vektoren verändert ihre Bewertungsgeometrie. Das normalisierte Profil all-mpnet-base-v2 folgt einem anderen Rezept und ist ein eigenständiger Checkpoint, obwohl es ebenfalls zur MPNet-Familie gehört und 768 Komponenten ausgibt. Bewahren Sie die genaue Edition und die Vergleichsfunktion zusammen mit der gespeicherten Sammlung auf, statt sie allein anhand der Vektorlänge zu wählen.</p><h4>Längenlimit und längere Passagen</h4><p>Das angegebene Eingabelimit beträgt 512 Wortteile; längerer Text wird abgeschnitten. Der Hersteller weist ausserdem darauf hin, dass die Trainingseingaben nur 250 Wortteile erreichten und längerer Text möglicherweise weniger gut funktioniert. Die vom Tokenizer akzeptierte Länge und der Hinweis zur Trainingslänge beschreiben somit unterschiedliche praktische Grenzen.</p><p>Bereiten Sie für einen umfangreichen Hilfeartikel kurze Abschnitte vor, die konkrete Fragen beantworten. Behalten Sie eine Überschrift bei, wenn sie das Thema kennzeichnet, und halten Sie eine Regel mit der Ausnahme zusammen, die für ihr richtiges Verständnis nötig ist. Eine einzelne Eingabe mit der gesamten Seite kann späteres Material durch Abschneiden verlieren, während ein zu kleines Fragment die Bedingung verlieren kann, die es nützlich macht.</p><h4>Das Ranking für Abruf und RAG nutzen</h4><p>Die dichten Vektoren unterstützen eine erste Abrufstufe. Geben Sie die am höchsten bewerteten Kandidatenpassagen mit ihren Quellenverweisen zurück und prüfen Sie dann, ob sie die eigentliche Frage beantworten. In einem RAG-Workflow übergeben Sie diese Passagen als Quellmaterial an die Stufe, die die Antwort formuliert; der Abruf selbst verfasst keine Antwort.</p><p>Verwenden Sie repräsentative Fragen mit bekannten relevanten Passagen, um die Anzahl der Ergebnisse festzulegen und das Ranking zu bewerten. Nehmen Sie Beispiele mit ähnlichem Vokabular, aber unterschiedlicher Absicht auf, etwa das Ändern einer Adresse gegenüber dem Anzeigen der aktuellen Adresse. Interpretieren Sie Werte relativ zu den Kandidaten unter demselben Modell und derselben Bewertungseinstellung, nicht als kalibrierte Wahrscheinlichkeiten für Korrektheit.</p><p>Das nützliche Ergebnis dieses Checkpoints ist ein Embedding-Raum für Fragen und Passagen zur semantischen Suche. Seine nicht normalisierten Vektoren, das CLS-Pooling, die Bewertung per Skalarprodukt und der veröffentlichte Hinweis zu langen Eingaben sind die Details, die bei der Vorbereitung und Nutzung der Ergebnisse zu bewahren sind.</p>",
  "aboutText": "multi-qa-mpnet-base-dot-v1 ist ein Sentence-Transformers-Modell, das Textpassagen zu einer Frage oder Suchanfrage abruft. Für das Training wurden rund 215 Millionen Frage-Antwort-Paare verwendet. Jede Eingabe wird zu einem 768-dimensionalen dichten Vektor; CLS-Pooling und die Bewertung per Skalarprodukt definieren genau diese Edition.\n\n### Frage und Kandidatenpassagen vorbereiten\n\nFormulieren Sie die Anfrage als Informationsbedarf und bereiten Sie die Korpuseinträge als lesbare Textpassagen vor. Beispielsweise lässt sich eine Frage zur Änderung einer Lieferadresse mit einzelnen Absätzen zu Adressänderungen, Bestellstornierung und Sendungsverfolgung vergleichen. Behalten Sie die relevanten Bedingungen in der Passage zur Adressänderung bei, einschliesslich der Angabe, ob die Bestellung bereits versandt wurde.\n\nKodieren Sie Anfrage und Passagen mit genau diesem Modell. Das veröffentlichte Beispiel tut dies direkt, ohne Query- oder Dokument-Präfix, und sortiert die Passagen nach ihren Skalarprodukt-Werten. Halten Sie jeden Vektor mit seiner ursprünglichen Passage und Dokumentkennung verbunden, damit das gerankte Ergebnis das tatsächlich indexierte Material anzeigen kann.\n\n### CLS-Pooling und die Skalarprodukt-Edition\n\nDas Referenzrezept des Modells verwendet die Repräsentation des ersten Tokens, bekannt als CLS-Pooling. Die technische Tabelle gibt ausdrücklich an, dass die Embeddings nicht normalisiert sind, und nennt das Skalarprodukt als geeignete Bewertungsfunktion. Behalten Sie dieses Rezept bei der Einrichtung der Sammlung und auf der Anfrageseite bei.\n\nEine L2-Normalisierung dieser Vektoren verändert ihre Bewertungsgeometrie. Das normalisierte Profil all-mpnet-base-v2 folgt einem anderen Rezept und ist ein eigenständiger Checkpoint, obwohl es ebenfalls zur MPNet-Familie gehört und 768 Komponenten ausgibt. Bewahren Sie die genaue Edition und die Vergleichsfunktion zusammen mit der gespeicherten Sammlung auf, statt sie allein anhand der Vektorlänge zu wählen.\n\n### Längenlimit und längere Passagen\n\nDas angegebene Eingabelimit beträgt 512 Wortteile; längerer Text wird abgeschnitten. Der Hersteller weist ausserdem darauf hin, dass die Trainingseingaben nur 250 Wortteile erreichten und längerer Text möglicherweise weniger gut funktioniert. Die vom Tokenizer akzeptierte Länge und der Hinweis zur Trainingslänge beschreiben somit unterschiedliche praktische Grenzen.\n\nBereiten Sie für einen umfangreichen Hilfeartikel kurze Abschnitte vor, die konkrete Fragen beantworten. Behalten Sie eine Überschrift bei, wenn sie das Thema kennzeichnet, und halten Sie eine Regel mit der Ausnahme zusammen, die für ihr richtiges Verständnis nötig ist. Eine einzelne Eingabe mit der gesamten Seite kann späteres Material durch Abschneiden verlieren, während ein zu kleines Fragment die Bedingung verlieren kann, die es nützlich macht.\n\n### Das Ranking für Abruf und RAG nutzen\n\nDie dichten Vektoren unterstützen eine erste Abrufstufe. Geben Sie die am höchsten bewerteten Kandidatenpassagen mit ihren Quellenverweisen zurück und prüfen Sie dann, ob sie die eigentliche Frage beantworten. In einem RAG-Workflow übergeben Sie diese Passagen als Quellmaterial an die Stufe, die die Antwort formuliert; der Abruf selbst verfasst keine Antwort.\n\nVerwenden Sie repräsentative Fragen mit bekannten relevanten Passagen, um die Anzahl der Ergebnisse festzulegen und das Ranking zu bewerten. Nehmen Sie Beispiele mit ähnlichem Vokabular, aber unterschiedlicher Absicht auf, etwa das Ändern einer Adresse gegenüber dem Anzeigen der aktuellen Adresse. Interpretieren Sie Werte relativ zu den Kandidaten unter demselben Modell und derselben Bewertungseinstellung, nicht als kalibrierte Wahrscheinlichkeiten für Korrektheit.\n\nDas nützliche Ergebnis dieses Checkpoints ist ein Embedding-Raum für Fragen und Passagen zur semantischen Suche. Seine nicht normalisierten Vektoren, das CLS-Pooling, die Bewertung per Skalarprodukt und der veröffentlichte Hinweis zu langen Eingaben sind die Details, die bei der Vorbereitung und Nutzung der Ergebnisse zu bewahren sind.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "d619549321dfd923e76f0e15ce1634466e6a12d61537cd05a595bb9944b1d87b",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de-ch",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Sentence Transformers: multi-qa-mpnet-base-dot-v1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Schliessen\">×</button></div><div class=\"idline\"><span>Sentence Transformers /</span><code>sentence-transformers/multi-qa-mpnet-base-dot-v1</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|sentence-transformers%2Fmulti-qa-mpnet-base-dot-v1\">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\">Sentence Transformers multi-qa-mpnet-base-dot-v1 kodiert Fragen und Passagen in 768-dimensionale Vektoren für die semantische Suche. Das Modell nutzt CLS-Pooling und nicht normalisierte Embeddings, die für die Bewertung per Skalarprodukt ausgelegt sind, bei einem Eingabelimit von 512 Wortteilen.</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>multi-qa-mpnet-base-dot-v1 ist ein Sentence-Transformers-Modell, das Textpassagen zu einer Frage oder Suchanfrage abruft. Für das Training wurden rund 215 Millionen Frage-Antwort-Paare verwendet. Jede Eingabe wird zu einem 768-dimensionalen dichten Vektor; CLS-Pooling und die Bewertung per Skalarprodukt definieren genau diese Edition.</p><h4>Frage und Kandidatenpassagen vorbereiten</h4><p>Formulieren Sie die Anfrage als Informationsbedarf und bereiten Sie die Korpuseinträge als lesbare Textpassagen vor. Beispielsweise lässt sich eine Frage zur Änderung einer Lieferadresse mit einzelnen Absätzen zu Adressänderungen, Bestellstornierung und Sendungsverfolgung vergleichen. Behalten Sie die relevanten Bedingungen in der Passage zur Adressänderung bei, einschliesslich der Angabe, ob die Bestellung bereits versandt wurde.</p><p>Kodieren Sie Anfrage und Passagen mit genau diesem Modell. Das veröffentlichte Beispiel tut dies direkt, ohne Query- oder Dokument-Präfix, und sortiert die Passagen nach ihren Skalarprodukt-Werten. Halten Sie jeden Vektor mit seiner ursprünglichen Passage und Dokumentkennung verbunden, damit das gerankte Ergebnis das tatsächlich indexierte Material anzeigen kann.</p><h4>CLS-Pooling und die Skalarprodukt-Edition</h4><p>Das Referenzrezept des Modells verwendet die Repräsentation des ersten Tokens, bekannt als CLS-Pooling. Die technische Tabelle gibt ausdrücklich an, dass die Embeddings nicht normalisiert sind, und nennt das Skalarprodukt als geeignete Bewertungsfunktion. Behalten Sie dieses Rezept bei der Einrichtung der Sammlung und auf der Anfrageseite bei.</p><p>Eine L2-Normalisierung dieser Vektoren verändert ihre Bewertungsgeometrie. Das normalisierte Profil all-mpnet-base-v2 folgt einem anderen Rezept und ist ein eigenständiger Checkpoint, obwohl es ebenfalls zur MPNet-Familie gehört und 768 Komponenten ausgibt. Bewahren Sie die genaue Edition und die Vergleichsfunktion zusammen mit der gespeicherten Sammlung auf, statt sie allein anhand der Vektorlänge zu wählen.</p><h4>Längenlimit und längere Passagen</h4><p>Das angegebene Eingabelimit beträgt 512 Wortteile; längerer Text wird abgeschnitten. Der Hersteller weist ausserdem darauf hin, dass die Trainingseingaben nur 250 Wortteile erreichten und längerer Text möglicherweise weniger gut funktioniert. Die vom Tokenizer akzeptierte Länge und der Hinweis zur Trainingslänge beschreiben somit unterschiedliche praktische Grenzen.</p><p>Bereiten Sie für einen umfangreichen Hilfeartikel kurze Abschnitte vor, die konkrete Fragen beantworten. Behalten Sie eine Überschrift bei, wenn sie das Thema kennzeichnet, und halten Sie eine Regel mit der Ausnahme zusammen, die für ihr richtiges Verständnis nötig ist. Eine einzelne Eingabe mit der gesamten Seite kann späteres Material durch Abschneiden verlieren, während ein zu kleines Fragment die Bedingung verlieren kann, die es nützlich macht.</p><h4>Das Ranking für Abruf und RAG nutzen</h4><p>Die dichten Vektoren unterstützen eine erste Abrufstufe. Geben Sie die am höchsten bewerteten Kandidatenpassagen mit ihren Quellenverweisen zurück und prüfen Sie dann, ob sie die eigentliche Frage beantworten. In einem RAG-Workflow übergeben Sie diese Passagen als Quellmaterial an die Stufe, die die Antwort formuliert; der Abruf selbst verfasst keine Antwort.</p><p>Verwenden Sie repräsentative Fragen mit bekannten relevanten Passagen, um die Anzahl der Ergebnisse festzulegen und das Ranking zu bewerten. Nehmen Sie Beispiele mit ähnlichem Vokabular, aber unterschiedlicher Absicht auf, etwa das Ändern einer Adresse gegenüber dem Anzeigen der aktuellen Adresse. Interpretieren Sie Werte relativ zu den Kandidaten unter demselben Modell und derselben Bewertungseinstellung, nicht als kalibrierte Wahrscheinlichkeiten für Korrektheit.</p><p>Das nützliche Ergebnis dieses Checkpoints ist ein Embedding-Raum für Fragen und Passagen zur semantischen Suche. Seine nicht normalisierten Vektoren, das CLS-Pooling, die Bewertung per Skalarprodukt und der veröffentlichte Hinweis zu langen Eingaben sind die Details, die bei der Vorbereitung und Nutzung der Ergebnisse zu bewahren sind.</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>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>sentence-transformers/multi-qa-mpnet-base-dot-v1</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: 512 · 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: Der Quellcode erlaubt dieses JSON-Metadatenfeld; die genaue Semantik beim vorgelagerten Anbieter 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: Der Quellcode erlaubt dieses JSON-Metadatenfeld; die genaue Semantik beim vorgelagerten Anbieter 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: Der Quellcode erlaubt dieses JSON-Metadatenfeld; die genaue Semantik beim vorgelagerten Anbieter 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>512</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>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.00001</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 · Cache schreiben</span> <b>—</b> <span class=\"price-unit\">/ 1K Tokens</span></div><div><span>Eingabe · 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 abschliessenden Verbrauchsdatensatzes. <a href=\"/docs/de-ch/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-2599-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2599-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-2599-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2599-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-2599-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2599-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;sentence-transformers/multi-qa-mpnet-base-dot-v1&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-2599-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2599-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;sentence-transformers/multi-qa-mpnet-base-dot-v1&#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=sentence-transformers%2Fmulti-qa-mpnet-base-dot-v1&amp;route=Ultra&amp;caller=sentence-transformers%2Fmulti-qa-mpnet-base-dot-v1&amp;fmt=embeddings\"><code>sentence-transformers/multi-qa-mpnet-base-dot-v1</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=sentence-transformers%2Fmulti-qa-mpnet-base-dot-v1&amp;route=Ultra&amp;caller=sentence-transformers%2Fmulti-qa-mpnet-base-dot-v1&amp;fmt=embeddings\"><code>sentence-transformers/multi-qa-mpnet-base-dot-v1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "sentence-transformers/multi-qa-mpnet-base-dot-v1",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "sentence-transformers/multi-qa-mpnet-base-dot-v1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|sentence-transformers%2Fmulti-qa-mpnet-base-dot-v1",
      "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": [
                  "sentence-transformers/multi-qa-mpnet-base-dot-v1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 512,
                  "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": "Der Quellcode erlaubt dieses JSON-Metadatenfeld; die genaue Semantik beim vorgelagerten Anbieter ist modellspezifisch.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Der Quellcode erlaubt dieses JSON-Metadatenfeld; die genaue Semantik beim vorgelagerten Anbieter 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": "Der Quellcode erlaubt dieses JSON-Metadatenfeld; die genaue Semantik beim vorgelagerten Anbieter 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": 512,
            "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": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Basistarife für Token",
            "units": [
              {
                "amount": "0.00001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000001",
                "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\": \"sentence-transformers/multi-qa-mpnet-base-dot-v1\", \"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='sentence-transformers/multi-qa-mpnet-base-dot-v1',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": null,
        "flex_multiplier": null,
        "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.01,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "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.00001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000001",
                "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": "sentence-transformers/multi-qa-mpnet-base-dot-v1",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000001",
            "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": "sentence-transformers/multi-qa-mpnet-base-dot-v1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "8781f43b1cde1b3d1ab6e582a7d8d3e00ac2f4f40c8a726b3505533666c6f6aa",
    "input_html_sha256": "2e7cc67a1c0266983a0b031cc3ab11fd6edab705d72b58d6b50ef1309471940c",
    "private_audit_sha256": "143a7889e717e0cd34581e6b235b103b64cd713e3c9fe2db6fa0701565303028",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de-ch/sentence-transformers-multi-qa-mpnet-base-dot-v1/",
    "description": "Sentence Transformers multi-qa-mpnet-base-dot-v1 kodiert Fragen und Passagen in 768-dimensionale Vektoren für die semantische Suche. Das Modell nutzt CLS-Pooling und nicht normalisierte Embeddings, die für die Bewertung per Skalarprodukt ausgelegt sind, bei einem Eingabelimit von 512 Wortteilen.",
    "locale": "de-ch",
    "md_url": "https://ailoot.ai/models/de-ch/sentence-transformers-multi-qa-mpnet-base-dot-v1/index.md",
    "title": "Sentence Transformers: multi-qa-mpnet-base-dot-v1 — Ailoot",
    "url": "https://ailoot.ai/models/de-ch/sentence-transformers-multi-qa-mpnet-base-dot-v1/"
  },
  "rawModel": {
    "about": "multi-qa-mpnet-base-dot-v1 ist ein Sentence-Transformers-Modell, das Textpassagen zu einer Frage oder Suchanfrage abruft. Für das Training wurden rund 215 Millionen Frage-Antwort-Paare verwendet. Jede Eingabe wird zu einem 768-dimensionalen dichten Vektor; CLS-Pooling und die Bewertung per Skalarprodukt definieren genau diese Edition.\n\n### Frage und Kandidatenpassagen vorbereiten\n\nFormulieren Sie die Anfrage als Informationsbedarf und bereiten Sie die Korpuseinträge als lesbare Textpassagen vor. Beispielsweise lässt sich eine Frage zur Änderung einer Lieferadresse mit einzelnen Absätzen zu Adressänderungen, Bestellstornierung und Sendungsverfolgung vergleichen. Behalten Sie die relevanten Bedingungen in der Passage zur Adressänderung bei, einschliesslich der Angabe, ob die Bestellung bereits versandt wurde.\n\nKodieren Sie Anfrage und Passagen mit genau diesem Modell. Das veröffentlichte Beispiel tut dies direkt, ohne Query- oder Dokument-Präfix, und sortiert die Passagen nach ihren Skalarprodukt-Werten. Halten Sie jeden Vektor mit seiner ursprünglichen Passage und Dokumentkennung verbunden, damit das gerankte Ergebnis das tatsächlich indexierte Material anzeigen kann.\n\n### CLS-Pooling und die Skalarprodukt-Edition\n\nDas Referenzrezept des Modells verwendet die Repräsentation des ersten Tokens, bekannt als CLS-Pooling. Die technische Tabelle gibt ausdrücklich an, dass die Embeddings nicht normalisiert sind, und nennt das Skalarprodukt als geeignete Bewertungsfunktion. Behalten Sie dieses Rezept bei der Einrichtung der Sammlung und auf der Anfrageseite bei.\n\nEine L2-Normalisierung dieser Vektoren verändert ihre Bewertungsgeometrie. Das normalisierte Profil all-mpnet-base-v2 folgt einem anderen Rezept und ist ein eigenständiger Checkpoint, obwohl es ebenfalls zur MPNet-Familie gehört und 768 Komponenten ausgibt. Bewahren Sie die genaue Edition und die Vergleichsfunktion zusammen mit der gespeicherten Sammlung auf, statt sie allein anhand der Vektorlänge zu wählen.\n\n### Längenlimit und längere Passagen\n\nDas angegebene Eingabelimit beträgt 512 Wortteile; längerer Text wird abgeschnitten. Der Hersteller weist ausserdem darauf hin, dass die Trainingseingaben nur 250 Wortteile erreichten und längerer Text möglicherweise weniger gut funktioniert. Die vom Tokenizer akzeptierte Länge und der Hinweis zur Trainingslänge beschreiben somit unterschiedliche praktische Grenzen.\n\nBereiten Sie für einen umfangreichen Hilfeartikel kurze Abschnitte vor, die konkrete Fragen beantworten. Behalten Sie eine Überschrift bei, wenn sie das Thema kennzeichnet, und halten Sie eine Regel mit der Ausnahme zusammen, die für ihr richtiges Verständnis nötig ist. Eine einzelne Eingabe mit der gesamten Seite kann späteres Material durch Abschneiden verlieren, während ein zu kleines Fragment die Bedingung verlieren kann, die es nützlich macht.\n\n### Das Ranking für Abruf und RAG nutzen\n\nDie dichten Vektoren unterstützen eine erste Abrufstufe. Geben Sie die am höchsten bewerteten Kandidatenpassagen mit ihren Quellenverweisen zurück und prüfen Sie dann, ob sie die eigentliche Frage beantworten. In einem RAG-Workflow übergeben Sie diese Passagen als Quellmaterial an die Stufe, die die Antwort formuliert; der Abruf selbst verfasst keine Antwort.\n\nVerwenden Sie repräsentative Fragen mit bekannten relevanten Passagen, um die Anzahl der Ergebnisse festzulegen und das Ranking zu bewerten. Nehmen Sie Beispiele mit ähnlichem Vokabular, aber unterschiedlicher Absicht auf, etwa das Ändern einer Adresse gegenüber dem Anzeigen der aktuellen Adresse. Interpretieren Sie Werte relativ zu den Kandidaten unter demselben Modell und derselben Bewertungseinstellung, nicht als kalibrierte Wahrscheinlichkeiten für Korrektheit.\n\nDas nützliche Ergebnis dieses Checkpoints ist ein Embedding-Raum für Fragen und Passagen zur semantischen Suche. Seine nicht normalisierten Vektoren, das CLS-Pooling, die Bewertung per Skalarprodukt und der veröffentlichte Hinweis zu langen Eingaben sind die Details, die bei der Vorbereitung und Nutzung der Ergebnisse zu bewahren sind.",
    "alias_of": null,
    "aliases": [],
    "author": "Sentence Transformers",
    "available": null,
    "canonical_model": "sentence-transformers/multi-qa-mpnet-base-dot-v1",
    "capabilities": {
      "context_length": 512,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000001",
            "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,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "sentence-transformers/multi-qa-mpnet-base-dot-v1",
    "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": [
                  "sentence-transformers/multi-qa-mpnet-base-dot-v1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 512,
                  "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": "Der Quellcode erlaubt dieses JSON-Metadatenfeld; die genaue Semantik beim vorgelagerten Anbieter ist modellspezifisch.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Der Quellcode erlaubt dieses JSON-Metadatenfeld; die genaue Semantik beim vorgelagerten Anbieter 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": "Der Quellcode erlaubt dieses JSON-Metadatenfeld; die genaue Semantik beim vorgelagerten Anbieter 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": 512,
            "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": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Basistarife für Token",
            "units": [
              {
                "amount": "0.00001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000001",
                "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\": \"sentence-transformers/multi-qa-mpnet-base-dot-v1\", \"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='sentence-transformers/multi-qa-mpnet-base-dot-v1',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": null,
        "flex_multiplier": null,
        "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.01,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "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.00001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000001",
                "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": "sentence-transformers/multi-qa-mpnet-base-dot-v1",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000001",
            "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": "sentence-transformers/multi-qa-mpnet-base-dot-v1",
        "request_model_id": "sentence-transformers/multi-qa-mpnet-base-dot-v1",
        "route_label": "Ultra"
      }
    ],
    "name": "Sentence Transformers: multi-qa-mpnet-base-dot-v1",
    "price": {
      "in": 0.01,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.01,
      "sort_out": 0,
      "varies": false
    },
    "public_id": "sentence-transformers/multi-qa-mpnet-base-dot-v1",
    "short": "Sentence Transformers multi-qa-mpnet-base-dot-v1 kodiert Fragen und Passagen in 768-dimensionale Vektoren für die semantische Suche. Das Modell nutzt CLS-Pooling und nicht normalisierte Embeddings, die für die Bewertung per Skalarprodukt ausgelegt sind, bei einem Eingabelimit von 512 Wortteilen."
  },
  "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": "Sentence Transformers multi-qa-mpnet-base-dot-v1 kodiert Fragen und Passagen in 768-dimensionale Vektoren für die semantische Suche. Das Modell nutzt CLS-Pooling und nicht normalisierte Embeddings, die für die Bewertung per Skalarprodukt ausgelegt sind, bei einem Eingabelimit von 512 Wortteilen.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "bc68ab51c3e76ffb34d5d434f61d0fd586a9f59ae7d8b88b186d01b34c966a5f",
    "renderer_sha256": "76caa42c097db2ddc47d1e1e6fe7ca45c8363d7211296daf28e4352971e6c0c8"
  },
  "sourceRevision": "33fe68b3b9639fb25dde69e221596a8dbc2115b78f1a8682bdab91befd089e1a"
}
