{
  "aboutHtml": "<p>Voyage rerank-3 est un modèle de reclassement textuel conçu pour améliorer la qualité des éléments récupérés. Avec une requête et une liste de documents candidats, il examine conjointement chaque paire et retourne les candidats classés par pertinence. Les plongements et la recherche par mots-clés peuvent d’abord réduire une grande collection à une liste restreinte gérable; rerank-3 applique ensuite une évaluation plus détaillée de la pertinence à cette liste. Sa sortie est un ensemble d’éléments de recherche notés qu’une application peut afficher ou transmettre à une étape distincte de génération de réponse.</p><p>Rerank 3 axé sur la qualité Le fabricant positionne rerank-3 comme l’édition axée sur l’exactitude et rerank-3-lite comme celle destinée à la recherche sensible à la latence. La troisième génération met à jour l’architecture de base et le mélange d’entraînement, avec des améliorations particulières de récupération des longs documents et du code source par rapport aux prédécesseurs 2.5 correspondants. Le fournisseur l’évalue sur la documentation technique, le code, le contenu multilingue et d’autres domaines documentaires. Ces résultats appuient son rôle de récupération; choisissez l’édition à partir des questions et des documents candidats qui comptent pour votre collection.</p><p>De longs documents avec assez de contexte Un long candidat peut contenir du contexte utile bien au-delà de son premier paragraphe. Fournissez une section ou un document cohérent avec son titre et le contenu environnant pertinent, pour que le modèle puisse évaluer le lien entre la question réelle et le contenu. Pour une recherche de politique de produit, conservez les titres et les exceptions autour du passage d’intérêt. Si plusieurs sections récupérées proviennent de la même source, conservez leurs identifiants de document et de section; l’application pourra alors montrer d’où viennent les éléments sélectionnés.</p><p>La fenêtre de contexte est partagée par la requête et chaque candidat. Le guide actuel du fabricant précise 32 000 jetons pour cette paire, y compris une requête d’au plus 8 000 jetons. Une requête de 3 000 jetons laisse donc au plus 29 000 jetons pour chaque document. Préparez l’entrée pour que son contenu essentiel tienne, surtout lorsqu’un long préambule ou du texte passe-partout répété consommerait autrement la fenêtre. L’option de troncature documentée est activée par défaut et peut raccourcir le texte trop long d’une requête ou d’un document avant la notation. Examinez ce qui est conservé lorsque l’emplacement d’un passage compte.</p><p>Récupération de code et de contenu technique Pour l’étape de récupération d’un assistant de code, les candidats peuvent contenir des implémentations de fonctions, de la documentation d’API ou des explications techniques sous forme de texte. Incluez les symboles, les signatures et le contexte nécessaires pour distinguer les candidats semblables. Une requête comme « Trouver la fonction qui normalise les chemins tout en conservant un séparateur de fin » donne un comportement concret à faire correspondre. Joignez toute contrainte pertinente de langue de programmation, de plateforme ou de version. Après le classement, examinez le code sélectionné et ses dépendances avant de l’utiliser comme contexte; un score de pertinence ne prouve pas qu’une implémentation satisfait à toutes les exigences énoncées.</p><p>Les consignes définissent la pertinence Le modèle conserve la capacité de reclassement guidé par consignes introduite dans Rerank 2.5. Ajoutez une courte consigne avant ou après la requête lorsque l’intention de l’utilisateur doit être clarifiée. Pour une recherche documentaire, expliquez si l’accent porte sur le titre, une méthode particulière ou un domaine d’application. Pour un catalogue interne, précisez si la demande concerne l’installation, le dépannage ou la compatibilité. Gardez cette consigne cohérente avec la question; des préférences supplémentaires qui contredisent la demande principale peuvent changer ce que le classement cherche à optimiser.</p><p>Préparer les documents candidats et les budgets L’entrée est une liste de chaînes textuelles. Extrayez du texte utilisable des documents sources, conservez les limites de sections significatives et gardez une table ordonnée de correspondance des enregistrements avec la liste. Le fabricant permet jusqu’à 1 000 documents dans une requête. Il précise aussi un plafond global d’entrée de 600 000 jetons : les jetons de la requête multipliés par le nombre de documents, plus la somme de tous les jetons des documents. Cela diffère de la limite de contexte par paire. Réduire le texte redondant de la requête peut préserver la capacité des paires et le budget total de requête.</p><p>Comptez les jetons pour le modèle pertinent, plutôt que de supposer qu’un nombre de mots ou de caractères équivaut à un nombre de jetons. Pour les grands candidats, sélectionnez des passages cohérents ou divisez le contenu selon des titres utiles en conservant l’information de source parente. Le reclassement est surtout utile une fois que la première recherche a déjà fait ressortir des candidats plausibles : il ne peut pas classer une source manquante qui n’est jamais entrée dans la liste.</p><p>Résultats classés et utilisation en aval Le résultat contient des scores de pertinence et des indices renvoyant aux documents d’entrée originaux, triés par pertinence décroissante. L’option top_k limite le nombre de résultats classés retournés; sinon, tous les candidats d’entrée sont retournés. L’interface REST du fabricant permet aussi d’inclure le texte des documents. Utilisez chaque indice d’origine pour retrouver le titre, l’identifiant de source et les métadonnées nécessaires à votre application, puis présentez les éléments sélectionnés ou regroupez le texte pertinent dans le contexte de preuves d’une réponse.</p><p>Examinez les premiers résultats par rapport à la question et gardez l’identité de la source visible. Un rang relatif élevé ne vérifie pas l’exactitude factuelle d’un document, et une liste restreinte composée seulement de mauvais candidats aura toujours un premier élément. Séparez la sélection par pertinence de la décision à savoir si les éléments sélectionnés suffisent pour répondre à l’utilisateur.</p><p>Migration d’édition Le fabricant décrit rerank-3 comme un successeur de rerank-2.5 compatible sans adaptation, avec la même sémantique d’API et des scores calibrés selon la distribution de son prédécesseur correspondant. Cette compatibilité permet de conserver une étape de récupération et une correspondance d’enregistrements existantes. Comparez des ordres de résultats significatifs et tout seuil de score sur le corpus actuel avant de vous fier à la migration. Gardez rerank-3 et rerank-3-lite comme choix distincts : des limites et un suivi des consignes communs ne rendent pas leurs priorités de qualité et de latence identiques.</p>",
  "aboutText": "Voyage rerank-3 est un modèle de reclassement textuel conçu pour améliorer la qualité des éléments récupérés. Avec une requête et une liste de documents candidats, il examine conjointement chaque paire et retourne les candidats classés par pertinence. Les plongements et la recherche par mots-clés peuvent d’abord réduire une grande collection à une liste restreinte gérable; rerank-3 applique ensuite une évaluation plus détaillée de la pertinence à cette liste. Sa sortie est un ensemble d’éléments de recherche notés qu’une application peut afficher ou transmettre à une étape distincte de génération de réponse.\n\nRerank 3 axé sur la qualité\nLe fabricant positionne rerank-3 comme l’édition axée sur l’exactitude et rerank-3-lite comme celle destinée à la recherche sensible à la latence. La troisième génération met à jour l’architecture de base et le mélange d’entraînement, avec des améliorations particulières de récupération des longs documents et du code source par rapport aux prédécesseurs 2.5 correspondants. Le fournisseur l’évalue sur la documentation technique, le code, le contenu multilingue et d’autres domaines documentaires. Ces résultats appuient son rôle de récupération; choisissez l’édition à partir des questions et des documents candidats qui comptent pour votre collection.\n\nDe longs documents avec assez de contexte\nUn long candidat peut contenir du contexte utile bien au-delà de son premier paragraphe. Fournissez une section ou un document cohérent avec son titre et le contenu environnant pertinent, pour que le modèle puisse évaluer le lien entre la question réelle et le contenu. Pour une recherche de politique de produit, conservez les titres et les exceptions autour du passage d’intérêt. Si plusieurs sections récupérées proviennent de la même source, conservez leurs identifiants de document et de section; l’application pourra alors montrer d’où viennent les éléments sélectionnés.\n\nLa fenêtre de contexte est partagée par la requête et chaque candidat. Le guide actuel du fabricant précise 32 000 jetons pour cette paire, y compris une requête d’au plus 8 000 jetons. Une requête de 3 000 jetons laisse donc au plus 29 000 jetons pour chaque document. Préparez l’entrée pour que son contenu essentiel tienne, surtout lorsqu’un long préambule ou du texte passe-partout répété consommerait autrement la fenêtre. L’option de troncature documentée est activée par défaut et peut raccourcir le texte trop long d’une requête ou d’un document avant la notation. Examinez ce qui est conservé lorsque l’emplacement d’un passage compte.\n\nRécupération de code et de contenu technique\nPour l’étape de récupération d’un assistant de code, les candidats peuvent contenir des implémentations de fonctions, de la documentation d’API ou des explications techniques sous forme de texte. Incluez les symboles, les signatures et le contexte nécessaires pour distinguer les candidats semblables. Une requête comme « Trouver la fonction qui normalise les chemins tout en conservant un séparateur de fin » donne un comportement concret à faire correspondre. Joignez toute contrainte pertinente de langue de programmation, de plateforme ou de version. Après le classement, examinez le code sélectionné et ses dépendances avant de l’utiliser comme contexte; un score de pertinence ne prouve pas qu’une implémentation satisfait à toutes les exigences énoncées.\n\nLes consignes définissent la pertinence\nLe modèle conserve la capacité de reclassement guidé par consignes introduite dans Rerank 2.5. Ajoutez une courte consigne avant ou après la requête lorsque l’intention de l’utilisateur doit être clarifiée. Pour une recherche documentaire, expliquez si l’accent porte sur le titre, une méthode particulière ou un domaine d’application. Pour un catalogue interne, précisez si la demande concerne l’installation, le dépannage ou la compatibilité. Gardez cette consigne cohérente avec la question; des préférences supplémentaires qui contredisent la demande principale peuvent changer ce que le classement cherche à optimiser.\n\nPréparer les documents candidats et les budgets\nL’entrée est une liste de chaînes textuelles. Extrayez du texte utilisable des documents sources, conservez les limites de sections significatives et gardez une table ordonnée de correspondance des enregistrements avec la liste. Le fabricant permet jusqu’à 1 000 documents dans une requête. Il précise aussi un plafond global d’entrée de 600 000 jetons : les jetons de la requête multipliés par le nombre de documents, plus la somme de tous les jetons des documents. Cela diffère de la limite de contexte par paire. Réduire le texte redondant de la requête peut préserver la capacité des paires et le budget total de requête.\n\nComptez les jetons pour le modèle pertinent, plutôt que de supposer qu’un nombre de mots ou de caractères équivaut à un nombre de jetons. Pour les grands candidats, sélectionnez des passages cohérents ou divisez le contenu selon des titres utiles en conservant l’information de source parente. Le reclassement est surtout utile une fois que la première recherche a déjà fait ressortir des candidats plausibles : il ne peut pas classer une source manquante qui n’est jamais entrée dans la liste.\n\nRésultats classés et utilisation en aval\nLe résultat contient des scores de pertinence et des indices renvoyant aux documents d’entrée originaux, triés par pertinence décroissante. L’option top_k limite le nombre de résultats classés retournés; sinon, tous les candidats d’entrée sont retournés. L’interface REST du fabricant permet aussi d’inclure le texte des documents. Utilisez chaque indice d’origine pour retrouver le titre, l’identifiant de source et les métadonnées nécessaires à votre application, puis présentez les éléments sélectionnés ou regroupez le texte pertinent dans le contexte de preuves d’une réponse.\n\nExaminez les premiers résultats par rapport à la question et gardez l’identité de la source visible. Un rang relatif élevé ne vérifie pas l’exactitude factuelle d’un document, et une liste restreinte composée seulement de mauvais candidats aura toujours un premier élément. Séparez la sélection par pertinence de la décision à savoir si les éléments sélectionnés suffisent pour répondre à l’utilisateur.\n\nMigration d’édition\nLe fabricant décrit rerank-3 comme un successeur de rerank-2.5 compatible sans adaptation, avec la même sémantique d’API et des scores calibrés selon la distribution de son prédécesseur correspondant. Cette compatibilité permet de conserver une étape de récupération et une correspondance d’enregistrements existantes. Comparez des ordres de résultats significatifs et tout seuil de score sur le corpus actuel avant de vous fier à la migration. Gardez rerank-3 et rerank-3-lite comme choix distincts : des limites et un suivi des consignes communs ne rendent pas leurs priorités de qualité et de latence identiques.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "f3ccaf9151a547562f15f3f6a705f3d83425f733cf6e684ba22e4841e37d43d2",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fr-ca",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">VoyageAI by MongoDB: rerank-3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fermer\">×</button></div><div class=\"idline\"><span>VoyageAI by MongoDB /</span><code>voyageai/rerank-3</code><button type=\"button\" id=\"copy-id\">Copier l’ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Rubriques de la fiche modèle\"><button type=\"button\" data-card-jump=\"overview\">Pour commencer</button><button type=\"button\" data-card-jump=\"methods\">Entrées et méthodes</button><button type=\"button\" data-card-jump=\"pricing\">Tarifs</button><button type=\"button\" data-card-jump=\"examples\">Exemples</button><button type=\"button\" data-card-jump=\"results\">Résultats</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Méthodes API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|rerank|/v1/rerank|voyageai%2Frerank-3\">Reclassement</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\">Pour commencer</h3><p class=\"mdesc-full\">Voyage rerank-3 est l’édition Rerank 3 axée sur la qualité pour noter la pertinence des paires requête-document. Il reclasse les candidats textuels récupérés, accepte les consignes de pertinence en langage naturel et traite des paires de 32 000 jetons pour la recherche de longs documents, de code et de bases de connaissances.</p><dl class=\"card-io\" data-card-io><div><dt>Entrées acceptées</dt><dd>Texte</dd></div><div><dt>Résultats</dt><dd>Résultats classés</dd></div></dl><details class=\"card-about\"><summary>À propos du modèle</summary><p class=\"note-s\" data-model-method-boundary>Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.</p><div class=\"mabout\" id=\"m-about\"><p>Voyage rerank-3 est un modèle de reclassement textuel conçu pour améliorer la qualité des éléments récupérés. Avec une requête et une liste de documents candidats, il examine conjointement chaque paire et retourne les candidats classés par pertinence. Les plongements et la recherche par mots-clés peuvent d’abord réduire une grande collection à une liste restreinte gérable; rerank-3 applique ensuite une évaluation plus détaillée de la pertinence à cette liste. Sa sortie est un ensemble d’éléments de recherche notés qu’une application peut afficher ou transmettre à une étape distincte de génération de réponse.</p><p>Rerank 3 axé sur la qualité Le fabricant positionne rerank-3 comme l’édition axée sur l’exactitude et rerank-3-lite comme celle destinée à la recherche sensible à la latence. La troisième génération met à jour l’architecture de base et le mélange d’entraînement, avec des améliorations particulières de récupération des longs documents et du code source par rapport aux prédécesseurs 2.5 correspondants. Le fournisseur l’évalue sur la documentation technique, le code, le contenu multilingue et d’autres domaines documentaires. Ces résultats appuient son rôle de récupération; choisissez l’édition à partir des questions et des documents candidats qui comptent pour votre collection.</p><p>De longs documents avec assez de contexte Un long candidat peut contenir du contexte utile bien au-delà de son premier paragraphe. Fournissez une section ou un document cohérent avec son titre et le contenu environnant pertinent, pour que le modèle puisse évaluer le lien entre la question réelle et le contenu. Pour une recherche de politique de produit, conservez les titres et les exceptions autour du passage d’intérêt. Si plusieurs sections récupérées proviennent de la même source, conservez leurs identifiants de document et de section; l’application pourra alors montrer d’où viennent les éléments sélectionnés.</p><p>La fenêtre de contexte est partagée par la requête et chaque candidat. Le guide actuel du fabricant précise 32 000 jetons pour cette paire, y compris une requête d’au plus 8 000 jetons. Une requête de 3 000 jetons laisse donc au plus 29 000 jetons pour chaque document. Préparez l’entrée pour que son contenu essentiel tienne, surtout lorsqu’un long préambule ou du texte passe-partout répété consommerait autrement la fenêtre. L’option de troncature documentée est activée par défaut et peut raccourcir le texte trop long d’une requête ou d’un document avant la notation. Examinez ce qui est conservé lorsque l’emplacement d’un passage compte.</p><p>Récupération de code et de contenu technique Pour l’étape de récupération d’un assistant de code, les candidats peuvent contenir des implémentations de fonctions, de la documentation d’API ou des explications techniques sous forme de texte. Incluez les symboles, les signatures et le contexte nécessaires pour distinguer les candidats semblables. Une requête comme « Trouver la fonction qui normalise les chemins tout en conservant un séparateur de fin » donne un comportement concret à faire correspondre. Joignez toute contrainte pertinente de langue de programmation, de plateforme ou de version. Après le classement, examinez le code sélectionné et ses dépendances avant de l’utiliser comme contexte; un score de pertinence ne prouve pas qu’une implémentation satisfait à toutes les exigences énoncées.</p><p>Les consignes définissent la pertinence Le modèle conserve la capacité de reclassement guidé par consignes introduite dans Rerank 2.5. Ajoutez une courte consigne avant ou après la requête lorsque l’intention de l’utilisateur doit être clarifiée. Pour une recherche documentaire, expliquez si l’accent porte sur le titre, une méthode particulière ou un domaine d’application. Pour un catalogue interne, précisez si la demande concerne l’installation, le dépannage ou la compatibilité. Gardez cette consigne cohérente avec la question; des préférences supplémentaires qui contredisent la demande principale peuvent changer ce que le classement cherche à optimiser.</p><p>Préparer les documents candidats et les budgets L’entrée est une liste de chaînes textuelles. Extrayez du texte utilisable des documents sources, conservez les limites de sections significatives et gardez une table ordonnée de correspondance des enregistrements avec la liste. Le fabricant permet jusqu’à 1 000 documents dans une requête. Il précise aussi un plafond global d’entrée de 600 000 jetons : les jetons de la requête multipliés par le nombre de documents, plus la somme de tous les jetons des documents. Cela diffère de la limite de contexte par paire. Réduire le texte redondant de la requête peut préserver la capacité des paires et le budget total de requête.</p><p>Comptez les jetons pour le modèle pertinent, plutôt que de supposer qu’un nombre de mots ou de caractères équivaut à un nombre de jetons. Pour les grands candidats, sélectionnez des passages cohérents ou divisez le contenu selon des titres utiles en conservant l’information de source parente. Le reclassement est surtout utile une fois que la première recherche a déjà fait ressortir des candidats plausibles : il ne peut pas classer une source manquante qui n’est jamais entrée dans la liste.</p><p>Résultats classés et utilisation en aval Le résultat contient des scores de pertinence et des indices renvoyant aux documents d’entrée originaux, triés par pertinence décroissante. L’option top_k limite le nombre de résultats classés retournés; sinon, tous les candidats d’entrée sont retournés. L’interface REST du fabricant permet aussi d’inclure le texte des documents. Utilisez chaque indice d’origine pour retrouver le titre, l’identifiant de source et les métadonnées nécessaires à votre application, puis présentez les éléments sélectionnés ou regroupez le texte pertinent dans le contexte de preuves d’une réponse.</p><p>Examinez les premiers résultats par rapport à la question et gardez l’identité de la source visible. Un rang relatif élevé ne vérifie pas l’exactitude factuelle d’un document, et une liste restreinte composée seulement de mauvais candidats aura toujours un premier élément. Séparez la sélection par pertinence de la décision à savoir si les éléments sélectionnés suffisent pour répondre à l’utilisateur.</p><p>Migration d’édition Le fabricant décrit rerank-3 comme un successeur de rerank-2.5 compatible sans adaptation, avec la même sémantique d’API et des scores calibrés selon la distribution de son prédécesseur correspondant. Cette compatibilité permet de conserver une étape de récupération et une correspondance d’enregistrements existantes. Comparez des ordres de résultats significatifs et tout seuil de score sur le corpus actuel avant de vous fier à la migration. Gardez rerank-3 et rerank-3-lite comme choix distincts : des limites et un suivi des consignes communs ne rendent pas leurs priorités de qualité et de latence identiques.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponible dans Ailoot · entrées et méthodes</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Reclassement</b> <code>POST /v1/rerank</code></summary><dl class=\"method-capabilities\"><div><dt>Entrée</dt><dd><code>text</code></dd></div><div><dt>Sortie</dt><dd><code>rerank</code></dd></div><div><dt>Format de sortie</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Champ</th><th>Type</th><th>Exigence</th><th>Valeurs et limites</th><th>Par défaut</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">documents</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>array</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Obligatoire</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Obligatoire</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>voyageai/rerank-3</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>schema</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">query</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Obligatoire</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">top_n</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>integer</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>Minimum: 1</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>schema</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">documents[].text</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">documents[].image</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Combinaisons d’éléments d’entrée</summary><p class=\"note-s\"><b>text_rerank</b> · Obligatoire : query, documents array with minItems1</p></details><details class=\"note-s\" data-method-contract><summary>Paramètres et cycle de vie de la méthode</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Paramètre</th><th>Contrat</th></tr></thead><tbody><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>content_type</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>application/json</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>required</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>model, query, documents</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>material_types</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>text</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>optional_controls</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>provider, session_id, top_n, trace, user</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>multimodal_input_binding</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>null</td></tr></tbody></table></div><p>Cycle de vie : <code>synchronous</code></p><p class=\"note-s\">Envoyez l’identifiant exact du modèle et conservez la réponse native complète.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifs</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.</p><dl data-price-conditions><dt>Mode rapide</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode rapide est sélectionné</span></dd><dt>Mode Flex</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode flex est sélectionné</span></dd><dt>Effort de raisonnement maximal</dt><dd>Non précisé <span class=\"note-s\">Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifs Ailoot</h4><h4>Prix par configuration</h4><p class=\"note-s\">Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuration</th><th>Barème tarifaire</th><th>Unité de facturation</th><th>Coût</th></tr></thead><tbody><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>Tarifs de base des jetons</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>Tarif de base</td><td data-cell-label=\"Unité de facturation\"><span class=\"card-cell-label\">Unité de facturation</span>—</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Entrée · Jetons en entrée</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Sortie · Jetons en sortie</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Entrée · Lecture du cache</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Entrée · Écriture dans le cache</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div><div><span>Entrée · Écriture dans le cache, 1 h</span> <b>—</b> <span class=\"price-unit\">/ 1K jetons</span></div></td></tr><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>Ultra</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>—</td><td data-cell-label=\"Unité de facturation\"><span class=\"card-cell-label\">Unité de facturation</span>/ 1K jetons</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Entrée</span> <b>$0.0001</b> <span class=\"price-unit\">/ 1K jetons</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. <a href=\"/docs/fr-ca/billing/reserve/\">Fonctionnement de la réservation et du débit →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exemples de requêtes</h3><h4>Ailoot Ultra · Reclassement</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes du code\"><button class=\"cg-tab\" id=\"model-code-2699-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2699-panel-0\" aria-selected=\"true\" tabindex=\"0\">Structure officielle de la requête conservée ; exemple de documentation</button><button class=\"cg-tab\" id=\"model-code-2699-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2699-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Utilisez les éléments réels de votre requête et conservez le résultat complet</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copier le code\"><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-2699-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2699-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;documents&quot;: [\n    &quot;Paris is the capital of France.&quot;,\n    &quot;Berlin is the capital of Germany.&quot;\n  ],\n  &quot;model&quot;: &quot;voyageai/rerank-3&quot;,\n  &quot;query&quot;: &quot;What is the capital of France?&quot;,\n  &quot;top_n&quot;: 3\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-2699-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2699-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_REQUEST_FILE:?Set your actual JSON request file}&quot;\nexport AILOOT_REQUEST_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(Path(os.environ[&#39;AILOOT_REQUEST_FILE&#39;]).read_text(encoding=&#39;utf-8&#39;))\nif not isinstance(p,dict): raise SystemExit(&#39;Request must be a JSON object&#39;)\np[&#39;model&#39;]=&#39;voyageai/rerank-3&#39;\nPath(&#39;request.json&#39;).write_text(json.dumps(p,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/rerank \\\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\nprint(json.dumps(json.loads(Path(&#39;result.json&#39;).read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Recevoir et enregistrer les résultats</h3><h4>Ailoot Ultra · Reclassement</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Conserver tous les résultats terminés</h5><p class=\"note-s\">Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.</p><p class=\"note-s\">Chaque indice de résultat réel, chaque relevance_score fini et l’objet de document d’origine sont conservés. Les indices correspondent au tableau des documents d’origine. Le JSON d’origine complet est stocké et retourné uniquement après le règlement.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Si la réponse d’origine doit être vérifiée</h5><p class=\"note-s\">Conservez l’opération d’origine et la réponse complète ou partielle; ne rejouez pas la demande POST.</p></div><details class=\"card-about\" data-output-fields><summary>Champs de la réponse</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Champ</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">results[].index</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">results[].relevance_score</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>number</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">results[].document.text</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">results[].document.image</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">usage.search_units</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">usage.total_tokens</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>integer</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">usage.cost</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>number</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Erreurs et étapes suivantes</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Réponse</th><th>Condition</th><th>Étape suivante</th></tr></thead><tbody><tr><th data-cell-label=\"Réponse\" scope=\"row\"><span class=\"card-cell-label\">Réponse</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Condition\"><span class=\"card-cell-label\">Condition</span>Champ requis, représentation ou valeur invalide</td><td data-cell-label=\"Étape suivante\"><span class=\"card-cell-label\">Étape suivante</span>Corrigez le champ de demande indiqué.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias du modèle</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=voyageai%2Frerank-3&amp;route=Ultra&amp;caller=voyageai%2Frerank-3&amp;fmt=rerank\"><code>voyageai/rerank-3</code></a></span></p><h4>Alias des chemins de méthode</h4><p class=\"note-s\">Utilisez les chemins de méthode indiqués ci-dessus.</p><h4>ID d’appel associés</h4><p class=\"note-s\"><a href=\"#m=voyageai%2Frerank-3&amp;route=Ultra&amp;caller=voyageai%2Frerank-3&amp;fmt=rerank\"><code>voyageai/rerank-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyageai/rerank-3",
        "fmt": "rerank",
        "http": "POST",
        "path": "/v1/rerank",
        "request_model_id": "voyageai/rerank-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|rerank|/v1/rerank|voyageai%2Frerank-3",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Every actual result index, finite relevance_score and original document object is retained. Indices bind the original document array. Entire original JSON is stored and returned only after settlement.",
            "errors": [
              {
                "code": null,
                "condition": "Champ requis, représentation ou valeur invalide",
                "http_status": 400,
                "recovery": "Corrigez le champ de demande indiqué.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "cancel": null,
              "idempotency_header": null,
              "job_retrieve": null,
              "mode": "synchronous",
              "streaming": false,
              "unknown": "Conservez l’opération d’origine et la réponse complète ou partielle; ne rejouez pas la demande POST."
            },
            "material_combinations": [
              {
                "accepted": [
                  "string documents",
                  "objects with text; image only for separately exact-supported multimodal model"
                ],
                "mode": "text_rerank",
                "required": [
                  "query",
                  "documents array with minItems1"
                ]
              }
            ],
            "operation_modes": [
              "rerank"
            ],
            "outputs": {
              "all_results": "Chaque indice de résultat réel, chaque relevance_score fini et l’objet de document d’origine sont conservés. Les indices correspondent au tableau des documents d’origine. Le JSON d’origine complet est stocké et retourné uniquement après le règlement.",
              "family": "rerank",
              "fields": [
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "results[].relevance_score",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "results[].document.text",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].document.image",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage.search_units",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "usage.total_tokens",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "usage.cost",
                  "type": "number"
                }
              ],
              "format": "json",
              "schema": {
                "description": "Rerank response containing ranked results",
                "example": {
                  "id": "gen-rerank-1234567890-abc",
                  "model": "cohere/rerank-v3.5",
                  "results": [
                    {
                      "document": {
                        "text": "Paris is the capital of France."
                      },
                      "index": 0,
                      "relevance_score": 0.98
                    }
                  ],
                  "usage": {
                    "search_units": 1,
                    "total_tokens": 150
                  }
                },
                "properties": {
                  "id": {
                    "description": "Unique identifier for the rerank response (ORID format)",
                    "example": "gen-rerank-1234567890-abc",
                    "type": "string"
                  },
                  "model": {
                    "description": "The model used for reranking",
                    "example": "cohere/rerank-v3.5",
                    "type": "string"
                  },
                  "provider": {
                    "description": "The provider that served the rerank request",
                    "example": "Cohere",
                    "type": "string"
                  },
                  "results": {
                    "description": "List of rerank results sorted by relevance",
                    "example": [
                      {
                        "document": {
                          "text": "Paris is the capital of France."
                        },
                        "index": 0,
                        "relevance_score": 0.98
                      }
                    ],
                    "items": {
                      "description": "A single rerank result",
                      "example": {
                        "document": {
                          "text": "Paris is the capital of France."
                        },
                        "index": 0,
                        "relevance_score": 0.98
                      },
                      "properties": {
                        "document": {
                          "description": "The document object echoing the original input (text and/or image)",
                          "properties": {
                            "image": {
                              "description": "The image (URL or data URI) from the original document",
                              "example": "https://example.com/image.png",
                              "type": "string"
                            },
                            "text": {
                              "description": "The document text",
                              "example": "Paris is the capital of France.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "index": {
                          "description": "Index of the document in the original input list",
                          "example": 0,
                          "type": "integer"
                        },
                        "relevance_score": {
                          "description": "Relevance score of the document to the query",
                          "example": 0.98,
                          "format": "double",
                          "type": "number"
                        }
                      },
                      "required": [
                        "index",
                        "relevance_score",
                        "document"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "usage": {
                    "description": "Usage statistics",
                    "example": {
                      "search_units": 1,
                      "total_tokens": 150
                    },
                    "properties": {
                      "cost": {
                        "description": "Cost of the request in credits",
                        "example": 0.001,
                        "format": "double",
                        "type": "number"
                      },
                      "search_units": {
                        "description": "Number of search units consumed (Cohere billing)",
                        "example": 1,
                        "type": "integer"
                      },
                      "total_tokens": {
                        "description": "Total number of tokens used",
                        "example": 150,
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "model",
                  "results"
                ],
                "type": "object"
              }
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "The list of documents to rerank. Documents may be plain strings, or structured objects with `text` and/or `image` for multimodal models.",
                "enum": null,
                "enum_known": false,
                "minItems": 1,
                "name": "documents",
                "required": true,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "voyageai/rerank-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "schema"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "The search query to rerank documents against",
                "enum": null,
                "enum_known": false,
                "name": "query",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.",
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "Number of most relevant documents to return",
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "top_n",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "schema"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "A unique identifier representing your end-user. Forwarded to Broadcast and private logging as the end-user id; never sent to the provider.",
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "documents[].text",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "Official family image carrier is remote http/https URL or data:image URI; only for exact multimodal-model bindings.",
                "enum": null,
                "enum_known": false,
                "name": "documents[].image",
                "required": false,
                "type": "string"
              }
            ],
            "unsupported": [
              "stream=true"
            ]
          },
          "hints": [
            "Envoyez l’identifiant exact du modèle et conservez la réponse native complète."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "multimodal_input_binding": null,
            "optional_controls": [
              "provider",
              "session_id",
              "top_n",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "query",
              "documents"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "idempotency_header": null,
            "job_retrieve": null,
            "mode": "synchronous",
            "streaming": false,
            "unknown": "Preserve original operation and full/partial reply; do not replay POST."
          },
          "manufacturer_capability": {
            "context_length": 32000,
            "manufacturer_input": [
              "text"
            ],
            "manufacturer_output": [
              "rerank"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/rerank"
          },
          "method_aliases": [],
          "operation_modes": [
            "rerank"
          ],
          "output": {
            "all_results": "Every actual result index, finite relevance_score and original document object is retained. Indices bind the original document array. Entire original JSON is stored and returned only after settlement.",
            "family": "rerank",
            "fields": [
              {
                "description": null,
                "name": "model",
                "type": "string"
              },
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider",
                "type": "string"
              },
              {
                "description": null,
                "name": "results[].index",
                "type": "integer"
              },
              {
                "description": null,
                "name": "results[].relevance_score",
                "type": "number"
              },
              {
                "description": null,
                "name": "results[].document.text",
                "type": "string"
              },
              {
                "description": null,
                "name": "results[].document.image",
                "type": "string"
              },
              {
                "description": null,
                "name": "usage.search_units",
                "type": "integer"
              },
              {
                "description": null,
                "name": "usage.total_tokens",
                "type": "integer"
              },
              {
                "description": null,
                "name": "usage.cost",
                "type": "number"
              }
            ],
            "format": "json",
            "schema": {
              "description": "Rerank response containing ranked results",
              "example": {
                "id": "gen-rerank-1234567890-abc",
                "model": "cohere/rerank-v3.5",
                "results": [
                  {
                    "document": {
                      "text": "Paris is the capital of France."
                    },
                    "index": 0,
                    "relevance_score": 0.98
                  }
                ],
                "usage": {
                  "search_units": 1,
                  "total_tokens": 150
                }
              },
              "properties": {
                "id": {
                  "description": "Unique identifier for the rerank response (ORID format)",
                  "example": "gen-rerank-1234567890-abc",
                  "type": "string"
                },
                "model": {
                  "description": "The model used for reranking",
                  "example": "cohere/rerank-v3.5",
                  "type": "string"
                },
                "provider": {
                  "description": "The provider that served the rerank request",
                  "example": "Cohere",
                  "type": "string"
                },
                "results": {
                  "description": "List of rerank results sorted by relevance",
                  "example": [
                    {
                      "document": {
                        "text": "Paris is the capital of France."
                      },
                      "index": 0,
                      "relevance_score": 0.98
                    }
                  ],
                  "items": {
                    "description": "A single rerank result",
                    "example": {
                      "document": {
                        "text": "Paris is the capital of France."
                      },
                      "index": 0,
                      "relevance_score": 0.98
                    },
                    "properties": {
                      "document": {
                        "description": "The document object echoing the original input (text and/or image)",
                        "properties": {
                          "image": {
                            "description": "The image (URL or data URI) from the original document",
                            "example": "https://example.com/image.png",
                            "type": "string"
                          },
                          "text": {
                            "description": "The document text",
                            "example": "Paris is the capital of France.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "index": {
                        "description": "Index of the document in the original input list",
                        "example": 0,
                        "type": "integer"
                      },
                      "relevance_score": {
                        "description": "Relevance score of the document to the query",
                        "example": 0.98,
                        "format": "double",
                        "type": "number"
                      }
                    },
                    "required": [
                      "index",
                      "relevance_score",
                      "document"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "usage": {
                  "description": "Usage statistics",
                  "example": {
                    "search_units": 1,
                    "total_tokens": 150
                  },
                  "properties": {
                    "cost": {
                      "description": "Cost of the request in credits",
                      "example": 0.001,
                      "format": "double",
                      "type": "number"
                    },
                    "search_units": {
                      "description": "Number of search units consumed (Cohere billing)",
                      "example": 1,
                      "type": "integer"
                    },
                    "total_tokens": {
                      "description": "Total number of tokens used",
                      "example": 150,
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "model",
                "results"
              ],
              "type": "object"
            }
          },
          "schema": {
            "request": {
              "description": "Rerank request input",
              "example": {
                "documents": [
                  "Paris is the capital of France.",
                  "Berlin is the capital of Germany."
                ],
                "model": "cohere/rerank-v3.5",
                "query": "What is the capital of France?",
                "top_n": 3
              },
              "properties": {
                "documents": {
                  "description": "The list of documents to rerank. Documents may be plain strings, or structured objects with `text` and/or `image` for multimodal models.",
                  "example": [
                    "Paris is the capital of France.",
                    "Berlin is the capital of Germany."
                  ],
                  "items": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "description": "A structured document with optional text and/or image content. At least one of `text` or `image` must be provided.",
                        "properties": {
                          "image": {
                            "description": "An image associated with the document, as a remote URL (http/https) or a base64-encoded data URI (data:image/...).",
                            "example": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Phytogenic.png",
                            "type": "string"
                          },
                          "text": {
                            "description": "The document text",
                            "example": "AI enables robots to perceive, plan, and act autonomously.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    ],
                    "description": "A document to rerank. Either a plain string, or a structured object with optional `text` and/or `image`."
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "voyageai/rerank-3"
                  ],
                  "type": "string"
                },
                "provider": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ProviderPreferences"
                    },
                    {
                      "description": "Provider routing preferences for the request."
                    }
                  ]
                },
                "query": {
                  "description": "The search query to rerank documents against",
                  "example": "What is the capital of France?",
                  "type": "string"
                },
                "session_id": {
                  "description": "A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.",
                  "example": "session-1234",
                  "maxLength": 256,
                  "type": "string"
                },
                "top_n": {
                  "description": "Number of most relevant documents to return",
                  "example": 3,
                  "minimum": 1,
                  "type": "integer"
                },
                "trace": {
                  "$ref": "#/components/schemas/TraceConfig"
                },
                "user": {
                  "description": "A unique identifier representing your end-user. Forwarded to Broadcast and private logging as the end-user id; never sent to the provider.",
                  "example": "user-1234",
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "query",
                "documents"
              ],
              "type": "object"
            },
            "response": {
              "description": "Rerank response containing ranked results",
              "example": {
                "id": "gen-rerank-1234567890-abc",
                "model": "cohere/rerank-v3.5",
                "results": [
                  {
                    "document": {
                      "text": "Paris is the capital of France."
                    },
                    "index": 0,
                    "relevance_score": 0.98
                  }
                ],
                "usage": {
                  "search_units": 1,
                  "total_tokens": 150
                }
              },
              "properties": {
                "id": {
                  "description": "Unique identifier for the rerank response (ORID format)",
                  "example": "gen-rerank-1234567890-abc",
                  "type": "string"
                },
                "model": {
                  "description": "The model used for reranking",
                  "example": "cohere/rerank-v3.5",
                  "type": "string"
                },
                "provider": {
                  "description": "The provider that served the rerank request",
                  "example": "Cohere",
                  "type": "string"
                },
                "results": {
                  "description": "List of rerank results sorted by relevance",
                  "example": [
                    {
                      "document": {
                        "text": "Paris is the capital of France."
                      },
                      "index": 0,
                      "relevance_score": 0.98
                    }
                  ],
                  "items": {
                    "description": "A single rerank result",
                    "example": {
                      "document": {
                        "text": "Paris is the capital of France."
                      },
                      "index": 0,
                      "relevance_score": 0.98
                    },
                    "properties": {
                      "document": {
                        "description": "The document object echoing the original input (text and/or image)",
                        "properties": {
                          "image": {
                            "description": "The image (URL or data URI) from the original document",
                            "example": "https://example.com/image.png",
                            "type": "string"
                          },
                          "text": {
                            "description": "The document text",
                            "example": "Paris is the capital of France.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "index": {
                        "description": "Index of the document in the original input list",
                        "example": 0,
                        "type": "integer"
                      },
                      "relevance_score": {
                        "description": "Relevance score of the document to the query",
                        "example": 0.98,
                        "format": "double",
                        "type": "number"
                      }
                    },
                    "required": [
                      "index",
                      "relevance_score",
                      "document"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "usage": {
                  "description": "Usage statistics",
                  "example": {
                    "search_units": 1,
                    "total_tokens": 150
                  },
                  "properties": {
                    "cost": {
                      "description": "Cost of the request in credits",
                      "example": 0.001,
                      "format": "double",
                      "type": "number"
                    },
                    "search_units": {
                      "description": "Number of search units consumed (Cohere billing)",
                      "example": 1,
                      "type": "integer"
                    },
                    "total_tokens": {
                      "description": "Total number of tokens used",
                      "example": 150,
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "model",
                "results"
              ],
              "type": "object"
            }
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "native_endpoint": "rerank",
              "quoted_unit": "/ 1K tokens"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_token",
                "label": "input token",
                "native_amount_usd_per_unit": "0.0000001",
                "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"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"documents\": [\n    \"Paris is the capital of France.\",\n    \"Berlin is the capital of Germany.\"\n  ],\n  \"model\": \"voyageai/rerank-3\",\n  \"query\": \"What is the capital of France?\",\n  \"top_n\": 3\n}",
            "label": "Retained official request structure; documentary example",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_REQUEST_FILE:?Set your actual JSON request file}\"\nexport AILOOT_REQUEST_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads(Path(os.environ['AILOOT_REQUEST_FILE']).read_text(encoding='utf-8'))\nif not isinstance(p,dict): raise SystemExit('Request must be a JSON object')\np['model']='voyageai/rerank-3'\nPath('request.json').write_text(json.dumps(p,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/rerank \\\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\nprint(json.dumps(json.loads(Path('result.json').read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Use your actual request material and retain the complete result",
            "language": "bash",
            "material_policy": "Use real owner-supplied state/questions or query/documents. No invented file ID, document, image URL, job ID or returned result."
          }
        ],
        "family": "rerank",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "rerank",
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Reclassement",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "rerank",
        "out": null,
        "output": [
          "rerank"
        ],
        "path": "/v1/rerank",
        "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": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "input_token": 1e-07
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "native_endpoint": "rerank",
              "quoted_unit": "/ 1K tokens"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_token",
                "label": "input token",
                "native_amount_usd_per_unit": "0.0000001",
                "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"
              }
            ]
          }
        ],
        "request_model_id": "voyageai/rerank-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "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"
          },
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_token",
            "label": "input token",
            "native_amount_usd_per_unit": "0.0000001",
            "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"
          }
        ]
      }
    }
  ],
  "model_id": "voyageai/rerank-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "4783c4d14cf5a2c0fedf6cdfb4c2f3bf0806651fa941ea08ac908b411d99ba84",
    "input_html_sha256": "090b7480a218868efcbc5c16f2ca3354fb21bb1d5976fa8cb6ba67d6d86ec3e6",
    "private_audit_sha256": "8fe7b0950b674405acc855bb7fab0a7465e94c9022b6ee15d8e32256d65833dc",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fr-ca/voyageai-rerank-3/",
    "description": "Voyage rerank-3 est l’édition Rerank 3 axée sur la qualité pour noter la pertinence des paires requête-document. Il reclasse les candidats textuels récupérés, accepte les consignes de pertinence en langage naturel et traite des paires de 32 000 jetons pour la recherche de longs documents, de code et de bases de connaissances.",
    "locale": "fr-ca",
    "md_url": "https://ailoot.ai/models/fr-ca/voyageai-rerank-3/index.md",
    "title": "VoyageAI by MongoDB: rerank-3 — Ailoot",
    "url": "https://ailoot.ai/models/fr-ca/voyageai-rerank-3/"
  },
  "rawModel": {
    "about": "Voyage rerank-3 est un modèle de reclassement textuel conçu pour améliorer la qualité des éléments récupérés. Avec une requête et une liste de documents candidats, il examine conjointement chaque paire et retourne les candidats classés par pertinence. Les plongements et la recherche par mots-clés peuvent d’abord réduire une grande collection à une liste restreinte gérable; rerank-3 applique ensuite une évaluation plus détaillée de la pertinence à cette liste. Sa sortie est un ensemble d’éléments de recherche notés qu’une application peut afficher ou transmettre à une étape distincte de génération de réponse.\n\nRerank 3 axé sur la qualité\nLe fabricant positionne rerank-3 comme l’édition axée sur l’exactitude et rerank-3-lite comme celle destinée à la recherche sensible à la latence. La troisième génération met à jour l’architecture de base et le mélange d’entraînement, avec des améliorations particulières de récupération des longs documents et du code source par rapport aux prédécesseurs 2.5 correspondants. Le fournisseur l’évalue sur la documentation technique, le code, le contenu multilingue et d’autres domaines documentaires. Ces résultats appuient son rôle de récupération; choisissez l’édition à partir des questions et des documents candidats qui comptent pour votre collection.\n\nDe longs documents avec assez de contexte\nUn long candidat peut contenir du contexte utile bien au-delà de son premier paragraphe. Fournissez une section ou un document cohérent avec son titre et le contenu environnant pertinent, pour que le modèle puisse évaluer le lien entre la question réelle et le contenu. Pour une recherche de politique de produit, conservez les titres et les exceptions autour du passage d’intérêt. Si plusieurs sections récupérées proviennent de la même source, conservez leurs identifiants de document et de section; l’application pourra alors montrer d’où viennent les éléments sélectionnés.\n\nLa fenêtre de contexte est partagée par la requête et chaque candidat. Le guide actuel du fabricant précise 32 000 jetons pour cette paire, y compris une requête d’au plus 8 000 jetons. Une requête de 3 000 jetons laisse donc au plus 29 000 jetons pour chaque document. Préparez l’entrée pour que son contenu essentiel tienne, surtout lorsqu’un long préambule ou du texte passe-partout répété consommerait autrement la fenêtre. L’option de troncature documentée est activée par défaut et peut raccourcir le texte trop long d’une requête ou d’un document avant la notation. Examinez ce qui est conservé lorsque l’emplacement d’un passage compte.\n\nRécupération de code et de contenu technique\nPour l’étape de récupération d’un assistant de code, les candidats peuvent contenir des implémentations de fonctions, de la documentation d’API ou des explications techniques sous forme de texte. Incluez les symboles, les signatures et le contexte nécessaires pour distinguer les candidats semblables. Une requête comme « Trouver la fonction qui normalise les chemins tout en conservant un séparateur de fin » donne un comportement concret à faire correspondre. Joignez toute contrainte pertinente de langue de programmation, de plateforme ou de version. Après le classement, examinez le code sélectionné et ses dépendances avant de l’utiliser comme contexte; un score de pertinence ne prouve pas qu’une implémentation satisfait à toutes les exigences énoncées.\n\nLes consignes définissent la pertinence\nLe modèle conserve la capacité de reclassement guidé par consignes introduite dans Rerank 2.5. Ajoutez une courte consigne avant ou après la requête lorsque l’intention de l’utilisateur doit être clarifiée. Pour une recherche documentaire, expliquez si l’accent porte sur le titre, une méthode particulière ou un domaine d’application. Pour un catalogue interne, précisez si la demande concerne l’installation, le dépannage ou la compatibilité. Gardez cette consigne cohérente avec la question; des préférences supplémentaires qui contredisent la demande principale peuvent changer ce que le classement cherche à optimiser.\n\nPréparer les documents candidats et les budgets\nL’entrée est une liste de chaînes textuelles. Extrayez du texte utilisable des documents sources, conservez les limites de sections significatives et gardez une table ordonnée de correspondance des enregistrements avec la liste. Le fabricant permet jusqu’à 1 000 documents dans une requête. Il précise aussi un plafond global d’entrée de 600 000 jetons : les jetons de la requête multipliés par le nombre de documents, plus la somme de tous les jetons des documents. Cela diffère de la limite de contexte par paire. Réduire le texte redondant de la requête peut préserver la capacité des paires et le budget total de requête.\n\nComptez les jetons pour le modèle pertinent, plutôt que de supposer qu’un nombre de mots ou de caractères équivaut à un nombre de jetons. Pour les grands candidats, sélectionnez des passages cohérents ou divisez le contenu selon des titres utiles en conservant l’information de source parente. Le reclassement est surtout utile une fois que la première recherche a déjà fait ressortir des candidats plausibles : il ne peut pas classer une source manquante qui n’est jamais entrée dans la liste.\n\nRésultats classés et utilisation en aval\nLe résultat contient des scores de pertinence et des indices renvoyant aux documents d’entrée originaux, triés par pertinence décroissante. L’option top_k limite le nombre de résultats classés retournés; sinon, tous les candidats d’entrée sont retournés. L’interface REST du fabricant permet aussi d’inclure le texte des documents. Utilisez chaque indice d’origine pour retrouver le titre, l’identifiant de source et les métadonnées nécessaires à votre application, puis présentez les éléments sélectionnés ou regroupez le texte pertinent dans le contexte de preuves d’une réponse.\n\nExaminez les premiers résultats par rapport à la question et gardez l’identité de la source visible. Un rang relatif élevé ne vérifie pas l’exactitude factuelle d’un document, et une liste restreinte composée seulement de mauvais candidats aura toujours un premier élément. Séparez la sélection par pertinence de la décision à savoir si les éléments sélectionnés suffisent pour répondre à l’utilisateur.\n\nMigration d’édition\nLe fabricant décrit rerank-3 comme un successeur de rerank-2.5 compatible sans adaptation, avec la même sémantique d’API et des scores calibrés selon la distribution de son prédécesseur correspondant. Cette compatibilité permet de conserver une étape de récupération et une correspondance d’enregistrements existantes. Comparez des ordres de résultats significatifs et tout seuil de score sur le corpus actuel avant de vous fier à la migration. Gardez rerank-3 et rerank-3-lite comme choix distincts : des limites et un suivi des consignes communs ne rendent pas leurs priorités de qualité et de latence identiques.",
    "alias_of": null,
    "aliases": [],
    "author": "VoyageAI by MongoDB",
    "available": null,
    "canonical_model": "voyageai/rerank-3",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "rerank"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_token",
            "label": "input token",
            "native_amount_usd_per_unit": "0.0000001",
            "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"
          }
        ],
        "summary": "La tarification complète de la configuration figure dans les détails."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "rerank"
    ],
    "id": "voyageai/rerank-3",
    "input": [
      "text"
    ],
    "kind": "rerank",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Every actual result index, finite relevance_score and original document object is retained. Indices bind the original document array. Entire original JSON is stored and returned only after settlement.",
            "errors": [
              {
                "code": null,
                "condition": "Champ requis, représentation ou valeur invalide",
                "http_status": 400,
                "recovery": "Corrigez le champ de demande indiqué.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "cancel": null,
              "idempotency_header": null,
              "job_retrieve": null,
              "mode": "synchronous",
              "streaming": false,
              "unknown": "Conservez l’opération d’origine et la réponse complète ou partielle; ne rejouez pas la demande POST."
            },
            "material_combinations": [
              {
                "accepted": [
                  "string documents",
                  "objects with text; image only for separately exact-supported multimodal model"
                ],
                "mode": "text_rerank",
                "required": [
                  "query",
                  "documents array with minItems1"
                ]
              }
            ],
            "operation_modes": [
              "rerank"
            ],
            "outputs": {
              "all_results": "Chaque indice de résultat réel, chaque relevance_score fini et l’objet de document d’origine sont conservés. Les indices correspondent au tableau des documents d’origine. Le JSON d’origine complet est stocké et retourné uniquement après le règlement.",
              "family": "rerank",
              "fields": [
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "results[].relevance_score",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "results[].document.text",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "results[].document.image",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "usage.search_units",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "usage.total_tokens",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "usage.cost",
                  "type": "number"
                }
              ],
              "format": "json",
              "schema": {
                "description": "Rerank response containing ranked results",
                "example": {
                  "id": "gen-rerank-1234567890-abc",
                  "model": "cohere/rerank-v3.5",
                  "results": [
                    {
                      "document": {
                        "text": "Paris is the capital of France."
                      },
                      "index": 0,
                      "relevance_score": 0.98
                    }
                  ],
                  "usage": {
                    "search_units": 1,
                    "total_tokens": 150
                  }
                },
                "properties": {
                  "id": {
                    "description": "Unique identifier for the rerank response (ORID format)",
                    "example": "gen-rerank-1234567890-abc",
                    "type": "string"
                  },
                  "model": {
                    "description": "The model used for reranking",
                    "example": "cohere/rerank-v3.5",
                    "type": "string"
                  },
                  "provider": {
                    "description": "The provider that served the rerank request",
                    "example": "Cohere",
                    "type": "string"
                  },
                  "results": {
                    "description": "List of rerank results sorted by relevance",
                    "example": [
                      {
                        "document": {
                          "text": "Paris is the capital of France."
                        },
                        "index": 0,
                        "relevance_score": 0.98
                      }
                    ],
                    "items": {
                      "description": "A single rerank result",
                      "example": {
                        "document": {
                          "text": "Paris is the capital of France."
                        },
                        "index": 0,
                        "relevance_score": 0.98
                      },
                      "properties": {
                        "document": {
                          "description": "The document object echoing the original input (text and/or image)",
                          "properties": {
                            "image": {
                              "description": "The image (URL or data URI) from the original document",
                              "example": "https://example.com/image.png",
                              "type": "string"
                            },
                            "text": {
                              "description": "The document text",
                              "example": "Paris is the capital of France.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "index": {
                          "description": "Index of the document in the original input list",
                          "example": 0,
                          "type": "integer"
                        },
                        "relevance_score": {
                          "description": "Relevance score of the document to the query",
                          "example": 0.98,
                          "format": "double",
                          "type": "number"
                        }
                      },
                      "required": [
                        "index",
                        "relevance_score",
                        "document"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "usage": {
                    "description": "Usage statistics",
                    "example": {
                      "search_units": 1,
                      "total_tokens": 150
                    },
                    "properties": {
                      "cost": {
                        "description": "Cost of the request in credits",
                        "example": 0.001,
                        "format": "double",
                        "type": "number"
                      },
                      "search_units": {
                        "description": "Number of search units consumed (Cohere billing)",
                        "example": 1,
                        "type": "integer"
                      },
                      "total_tokens": {
                        "description": "Total number of tokens used",
                        "example": 150,
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "model",
                  "results"
                ],
                "type": "object"
              }
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "The list of documents to rerank. Documents may be plain strings, or structured objects with `text` and/or `image` for multimodal models.",
                "enum": null,
                "enum_known": false,
                "minItems": 1,
                "name": "documents",
                "required": true,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "voyageai/rerank-3"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "schema"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "The search query to rerank documents against",
                "enum": null,
                "enum_known": false,
                "name": "query",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.",
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "Number of most relevant documents to return",
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "top_n",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "schema"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "A unique identifier representing your end-user. Forwarded to Broadcast and private logging as the end-user id; never sent to the provider.",
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "documents[].text",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "description": "Official family image carrier is remote http/https URL or data:image URI; only for exact multimodal-model bindings.",
                "enum": null,
                "enum_known": false,
                "name": "documents[].image",
                "required": false,
                "type": "string"
              }
            ],
            "unsupported": [
              "stream=true"
            ]
          },
          "hints": [
            "Envoyez l’identifiant exact du modèle et conservez la réponse native complète."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "multimodal_input_binding": null,
            "optional_controls": [
              "provider",
              "session_id",
              "top_n",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "query",
              "documents"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "idempotency_header": null,
            "job_retrieve": null,
            "mode": "synchronous",
            "streaming": false,
            "unknown": "Preserve original operation and full/partial reply; do not replay POST."
          },
          "manufacturer_capability": {
            "context_length": 32000,
            "manufacturer_input": [
              "text"
            ],
            "manufacturer_output": [
              "rerank"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/rerank"
          },
          "method_aliases": [],
          "operation_modes": [
            "rerank"
          ],
          "output": {
            "all_results": "Every actual result index, finite relevance_score and original document object is retained. Indices bind the original document array. Entire original JSON is stored and returned only after settlement.",
            "family": "rerank",
            "fields": [
              {
                "description": null,
                "name": "model",
                "type": "string"
              },
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider",
                "type": "string"
              },
              {
                "description": null,
                "name": "results[].index",
                "type": "integer"
              },
              {
                "description": null,
                "name": "results[].relevance_score",
                "type": "number"
              },
              {
                "description": null,
                "name": "results[].document.text",
                "type": "string"
              },
              {
                "description": null,
                "name": "results[].document.image",
                "type": "string"
              },
              {
                "description": null,
                "name": "usage.search_units",
                "type": "integer"
              },
              {
                "description": null,
                "name": "usage.total_tokens",
                "type": "integer"
              },
              {
                "description": null,
                "name": "usage.cost",
                "type": "number"
              }
            ],
            "format": "json",
            "schema": {
              "description": "Rerank response containing ranked results",
              "example": {
                "id": "gen-rerank-1234567890-abc",
                "model": "cohere/rerank-v3.5",
                "results": [
                  {
                    "document": {
                      "text": "Paris is the capital of France."
                    },
                    "index": 0,
                    "relevance_score": 0.98
                  }
                ],
                "usage": {
                  "search_units": 1,
                  "total_tokens": 150
                }
              },
              "properties": {
                "id": {
                  "description": "Unique identifier for the rerank response (ORID format)",
                  "example": "gen-rerank-1234567890-abc",
                  "type": "string"
                },
                "model": {
                  "description": "The model used for reranking",
                  "example": "cohere/rerank-v3.5",
                  "type": "string"
                },
                "provider": {
                  "description": "The provider that served the rerank request",
                  "example": "Cohere",
                  "type": "string"
                },
                "results": {
                  "description": "List of rerank results sorted by relevance",
                  "example": [
                    {
                      "document": {
                        "text": "Paris is the capital of France."
                      },
                      "index": 0,
                      "relevance_score": 0.98
                    }
                  ],
                  "items": {
                    "description": "A single rerank result",
                    "example": {
                      "document": {
                        "text": "Paris is the capital of France."
                      },
                      "index": 0,
                      "relevance_score": 0.98
                    },
                    "properties": {
                      "document": {
                        "description": "The document object echoing the original input (text and/or image)",
                        "properties": {
                          "image": {
                            "description": "The image (URL or data URI) from the original document",
                            "example": "https://example.com/image.png",
                            "type": "string"
                          },
                          "text": {
                            "description": "The document text",
                            "example": "Paris is the capital of France.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "index": {
                        "description": "Index of the document in the original input list",
                        "example": 0,
                        "type": "integer"
                      },
                      "relevance_score": {
                        "description": "Relevance score of the document to the query",
                        "example": 0.98,
                        "format": "double",
                        "type": "number"
                      }
                    },
                    "required": [
                      "index",
                      "relevance_score",
                      "document"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "usage": {
                  "description": "Usage statistics",
                  "example": {
                    "search_units": 1,
                    "total_tokens": 150
                  },
                  "properties": {
                    "cost": {
                      "description": "Cost of the request in credits",
                      "example": 0.001,
                      "format": "double",
                      "type": "number"
                    },
                    "search_units": {
                      "description": "Number of search units consumed (Cohere billing)",
                      "example": 1,
                      "type": "integer"
                    },
                    "total_tokens": {
                      "description": "Total number of tokens used",
                      "example": 150,
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "model",
                "results"
              ],
              "type": "object"
            }
          },
          "schema": {
            "request": {
              "description": "Rerank request input",
              "example": {
                "documents": [
                  "Paris is the capital of France.",
                  "Berlin is the capital of Germany."
                ],
                "model": "cohere/rerank-v3.5",
                "query": "What is the capital of France?",
                "top_n": 3
              },
              "properties": {
                "documents": {
                  "description": "The list of documents to rerank. Documents may be plain strings, or structured objects with `text` and/or `image` for multimodal models.",
                  "example": [
                    "Paris is the capital of France.",
                    "Berlin is the capital of Germany."
                  ],
                  "items": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "description": "A structured document with optional text and/or image content. At least one of `text` or `image` must be provided.",
                        "properties": {
                          "image": {
                            "description": "An image associated with the document, as a remote URL (http/https) or a base64-encoded data URI (data:image/...).",
                            "example": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Phytogenic.png",
                            "type": "string"
                          },
                          "text": {
                            "description": "The document text",
                            "example": "AI enables robots to perceive, plan, and act autonomously.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    ],
                    "description": "A document to rerank. Either a plain string, or a structured object with optional `text` and/or `image`."
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "voyageai/rerank-3"
                  ],
                  "type": "string"
                },
                "provider": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ProviderPreferences"
                    },
                    {
                      "description": "Provider routing preferences for the request."
                    }
                  ]
                },
                "query": {
                  "description": "The search query to rerank documents against",
                  "example": "What is the capital of France?",
                  "type": "string"
                },
                "session_id": {
                  "description": "A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.",
                  "example": "session-1234",
                  "maxLength": 256,
                  "type": "string"
                },
                "top_n": {
                  "description": "Number of most relevant documents to return",
                  "example": 3,
                  "minimum": 1,
                  "type": "integer"
                },
                "trace": {
                  "$ref": "#/components/schemas/TraceConfig"
                },
                "user": {
                  "description": "A unique identifier representing your end-user. Forwarded to Broadcast and private logging as the end-user id; never sent to the provider.",
                  "example": "user-1234",
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "query",
                "documents"
              ],
              "type": "object"
            },
            "response": {
              "description": "Rerank response containing ranked results",
              "example": {
                "id": "gen-rerank-1234567890-abc",
                "model": "cohere/rerank-v3.5",
                "results": [
                  {
                    "document": {
                      "text": "Paris is the capital of France."
                    },
                    "index": 0,
                    "relevance_score": 0.98
                  }
                ],
                "usage": {
                  "search_units": 1,
                  "total_tokens": 150
                }
              },
              "properties": {
                "id": {
                  "description": "Unique identifier for the rerank response (ORID format)",
                  "example": "gen-rerank-1234567890-abc",
                  "type": "string"
                },
                "model": {
                  "description": "The model used for reranking",
                  "example": "cohere/rerank-v3.5",
                  "type": "string"
                },
                "provider": {
                  "description": "The provider that served the rerank request",
                  "example": "Cohere",
                  "type": "string"
                },
                "results": {
                  "description": "List of rerank results sorted by relevance",
                  "example": [
                    {
                      "document": {
                        "text": "Paris is the capital of France."
                      },
                      "index": 0,
                      "relevance_score": 0.98
                    }
                  ],
                  "items": {
                    "description": "A single rerank result",
                    "example": {
                      "document": {
                        "text": "Paris is the capital of France."
                      },
                      "index": 0,
                      "relevance_score": 0.98
                    },
                    "properties": {
                      "document": {
                        "description": "The document object echoing the original input (text and/or image)",
                        "properties": {
                          "image": {
                            "description": "The image (URL or data URI) from the original document",
                            "example": "https://example.com/image.png",
                            "type": "string"
                          },
                          "text": {
                            "description": "The document text",
                            "example": "Paris is the capital of France.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "index": {
                        "description": "Index of the document in the original input list",
                        "example": 0,
                        "type": "integer"
                      },
                      "relevance_score": {
                        "description": "Relevance score of the document to the query",
                        "example": 0.98,
                        "format": "double",
                        "type": "number"
                      }
                    },
                    "required": [
                      "index",
                      "relevance_score",
                      "document"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "usage": {
                  "description": "Usage statistics",
                  "example": {
                    "search_units": 1,
                    "total_tokens": 150
                  },
                  "properties": {
                    "cost": {
                      "description": "Cost of the request in credits",
                      "example": 0.001,
                      "format": "double",
                      "type": "number"
                    },
                    "search_units": {
                      "description": "Number of search units consumed (Cohere billing)",
                      "example": 1,
                      "type": "integer"
                    },
                    "total_tokens": {
                      "description": "Total number of tokens used",
                      "example": 150,
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              },
              "required": [
                "model",
                "results"
              ],
              "type": "object"
            }
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "native_endpoint": "rerank",
              "quoted_unit": "/ 1K tokens"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_token",
                "label": "input token",
                "native_amount_usd_per_unit": "0.0000001",
                "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"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"documents\": [\n    \"Paris is the capital of France.\",\n    \"Berlin is the capital of Germany.\"\n  ],\n  \"model\": \"voyageai/rerank-3\",\n  \"query\": \"What is the capital of France?\",\n  \"top_n\": 3\n}",
            "label": "Retained official request structure; documentary example",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_REQUEST_FILE:?Set your actual JSON request file}\"\nexport AILOOT_REQUEST_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads(Path(os.environ['AILOOT_REQUEST_FILE']).read_text(encoding='utf-8'))\nif not isinstance(p,dict): raise SystemExit('Request must be a JSON object')\np['model']='voyageai/rerank-3'\nPath('request.json').write_text(json.dumps(p,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/rerank \\\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\nprint(json.dumps(json.loads(Path('result.json').read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Use your actual request material and retain the complete result",
            "language": "bash",
            "material_policy": "Use real owner-supplied state/questions or query/documents. No invented file ID, document, image URL, job ID or returned result."
          }
        ],
        "family": "rerank",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "rerank",
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Reclassement",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "rerank",
        "out": null,
        "output": [
          "rerank"
        ],
        "path": "/v1/rerank",
        "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": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "input_token": 1e-07
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "native_endpoint": "rerank",
              "quoted_unit": "/ 1K tokens"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_token",
                "label": "input token",
                "native_amount_usd_per_unit": "0.0000001",
                "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"
              }
            ]
          }
        ],
        "request_model_id": "voyageai/rerank-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "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"
          },
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_token",
            "label": "input token",
            "native_amount_usd_per_unit": "0.0000001",
            "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"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "voyageai/rerank-3",
        "request_model_id": "voyageai/rerank-3",
        "route_label": "Ultra"
      }
    ],
    "name": "VoyageAI by MongoDB: rerank-3",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "public_id": "voyageai/rerank-3",
    "short": "Voyage rerank-3 est l’édition Rerank 3 axée sur la qualité pour noter la pertinence des paires requête-document. Il reclasse les candidats textuels récupérés, accepte les consignes de pertinence en langage naturel et traite des paires de 32 000 jetons pour la recherche de longs documents, de code et de bases de connaissances."
  },
  "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 rerank-3 est l’édition Rerank 3 axée sur la qualité pour noter la pertinence des paires requête-document. Il reclasse les candidats textuels récupérés, accepte les consignes de pertinence en langage naturel et traite des paires de 32 000 jetons pour la recherche de longs documents, de code et de bases de connaissances.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "1c67b08fb5a3e599439d40f5bc243d500cba61aef6b8f5dbd2f057d57d65004a",
    "renderer_sha256": "98cb81b9c4ef4923c22e586170e7cdf67056351148a1666fb03dd6a4a26716a3"
  },
  "sourceRevision": "1350107c6b7cf3a6826e7985f7c1ac7c9b995fae53b4042d20395edcc9d2daad"
}
