VoyageAI by MongoDB: voyage-4
voyage-4 encode du texte pour la recherche généraliste et multilingue, avec un espace vectoriel partagé dans la famille Voyage 4. Il prend en charge des entrées de 32 000 tokens, des sorties sélectionnables de 256 à 2048 dimensions et des rôles query/document pour la recherche et le RAG.
À propos du modèle
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.
voyage-4 est le modèle de plongement textuel de taille intermédiaire de Voyage AI dans la famille Voyage 4. Il convertit le texte des requêtes et des documents en vecteurs numériques pour la recherche généraliste et multilingue. La capacité caractéristique de la famille est un espace de plongement partagé : voyage-4, voyage-4-large, voyage-4-lite et voyage-4-nano produisent des représentations compatibles, permettant aux côtés requête et document d’une tâche de recherche d’utiliser des modèles différents de cette famille.
Espace partagé et recherche asymétrique
Le fabricant appelle recherche asymétrique l’utilisation de modèles différents pour les requêtes et le corpus. Un schéma documenté consiste à préparer le corpus avec voyage-4-large et à l’interroger au moyen de plongements de requêtes voyage-4. Le corpus est encodé une fois ou lorsque ses sources changent, tandis que les vecteurs de requêtes sont créés à l’arrivée des recherches. L’espace partagé permet de changer le modèle du côté des requêtes au sein de la famille sans devoir réencoder le corpus uniquement pour ce changement.
Gardez une dimension de sortie et une représentation compatibles entre les vecteurs comparés. La déclaration d’espace partagé concerne les modèles textuels nommés Voyage 4 ; elle n’est pas établie simplement parce que deux modèles sans rapport renvoient des tableaux de même longueur. Une tâche concrète peut donc utiliser voyage-4 des deux côtés de la recherche ou utiliser ses vecteurs de requêtes avec un index documentaire voyage-4-large existant lorsque leurs réglages de représentation correspondent.
Rôles de requête et de document
Pour la recherche, Voyage recommande d’identifier le texte d’entrée comme une requête ou un document. L’option de rôle d’entrée fournit l’instruction de recherche correspondante avant la vectorisation. Préparez les passages du corpus comme des documents et la formulation de recherche de l’utilisateur comme une requête, en conservant le texte source réel et les identifiants avec chaque vecteur stocké.
Par exemple, une collection de recherche de connaissances peut indexer des instructions techniques et des explications produit. Une requête sur ce qui se passe après un échec d’import doit renvoyer le passage source décrivant ce comportement. Préservez les titres, les conditions pertinentes et l’emplacement source avec le passage, afin que le résultat obtenu puisse être examiné ou utilisé par une étape ultérieure de réponse RAG. Le plongement est la représentation numérique de recherche ; le passage sous-jacent constitue les éléments utilisés à cette étape ultérieure.
Dimensions et types de données de sortie
La fenêtre de contexte documentée par texte est de 32 000 tokens. Les dimensions sélectionnables sont 256, 512, 1024 et 2048, avec 1024 par défaut. L’apprentissage Matryoshka fournit ces tailles de représentation imbriquées. La sortie peut utiliser des nombres à virgule flottante de 32 bits, des entiers signés ou non signés de 8 bits, ou des valeurs binaires compactées, grâce à la préparation de la famille tenant compte de la quantification.
Avec une sortie binaire compactée, chaque octet renvoyé stocke huit bits de plongement ; la longueur de la liste d’octets est donc égale au huitième de la dimension sélectionnée. Le nombre d’octets et la dimension du plongement ont des sens différents. Choisissez une représentation interprétable par votre index de recherche et examinez la pertinence des candidats pour les questions et les langues réellement utilisées par la collection avant de choisir une configuration compressée.
Longueur d’entrée, traitement par lots et troncature
Le guide actuel de plongement textuel du fabricant autorise jusqu’à 1000 chaînes et 320 000 tokens au total dans une requête voyage-4. Le budget par lot est distinct de la fenêtre de 32 000 tokens pour chaque entrée. La troncature est activée par défaut : un texte trop long est raccourci pour tenir dans la fenêtre. Si elle est désactivée, un élément trop long produit une erreur à la place.
Pour un long rapport ou une transcription, préparez délibérément des passages contenant des réponses, plutôt que de compter sur une coupure à la limite d’entrée. Gardez chaque passage lié à son document parent et à la version de la source. Les entrées ordinaires de plongement voyage-4 sont des textes individuels ; le traitement contextualisé de groupes de segments relève des modèles de plongement contextuel documentés séparément.
Utiliser le résultat de recherche
Stockez les vecteurs avec le texte des passages et des identifiants sources stables, comparez chaque vecteur de requête aux vecteurs documentaires compatibles et renvoyez des passages candidats. La publication de la famille évalue la recherche sur des matériaux comprenant des documents techniques, des conversations, de longs documents, du code, du droit, de la finance et du texte web. Un reclasseur distinct peut affiner les candidats et une étape ultérieure de réponse peut utiliser leur texte. Évaluez ces passages renvoyés au regard de la tâche ; la compatibilité d’espace partagé permet la combinaison de modèles, tandis que l’utilité d’un résultat dépend toujours des sources et de la question.
Ailoot Ultra · Embeddings POST /v1/embeddings voyageai/voyage-4
voyageai/voyage-4Premiers pas
voyage-4 encode du texte pour la recherche généraliste et multilingue, avec un espace vectoriel partagé dans la famille Voyage 4. Il prend en charge des entrées de 32 000 tokens, des sorties sélectionnables de 256 à 2048 dimensions et des rôles query/document pour la recherche et le RAG.
- Entrées acceptées
- Texte · token_ids
- Résultats
- embedding
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Embeddings POST /v1/embeddings
- Types d’entrée
text,token_ids- Types de sortie
embedding- Contexte
- 32 000 tokens
- Format de sortie
- json
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites voyageai/voyage-4 | Par défaut— |
Champinput | Typestring|string[]|integer[]|integer[][] | ExigenceObligatoire | Valeurs et limites Nombre minimal d’éléments: 1 Conditions: Lot homogène non vide. Les identifiants de jetons sont des entiers positifs ou nuls. Budget d’entrée : Maximum: 32 000 · Unité de texte: octets UTF8 · Unité de tokens: éléments du tableau de tokens | Par défaut— |
Champencoding_format | Typestring | ExigenceFacultatif | Valeurs et limites float | Par défautfloat |
Champdimensions | Typeinteger | ExigenceNon pris en charge | Valeurs et limites Minimum: 1 | Par défaut— |
Champuser | Typejson_value | ExigenceFacultatif | Valeurs et limites Conditions: Source autorise ce champ de métadonnées JSON ; sa sémantique exacte en amont dépend du modèle. | Par défaut— |
Champsession_id | Typejson_value | ExigenceFacultatif | Valeurs et limites Conditions: Source autorise ce champ de métadonnées JSON ; sa sémantique exacte en amont dépend du modèle. | Par défaut— |
Champtrace | Typejson_value | ExigenceFacultatif | Valeurs et limites Conditions: Source autorise ce champ de métadonnées JSON ; sa sémantique exacte en amont dépend du modèle. | Par défaut— |
Champprovider | Typeobject | ExigenceFacultatif | Valeurs et limites Conditions: provider.options est refusé | Par défaut— |
Combinaisons d’éléments d’entrée
text_to_embedding
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratmodel, input |
Paramètreinput_shapes | Contratstring, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
Paramètreencoding_format | Contratfloat |
Paramètredimensions_override | Contratfalse |
Paramètremax_input_budget_units | Contrat32000 |
Paramètremultimodal_objects | Contratfalse |
Paramètrematerial_types | Contrattext, token_ids |
Cycle de vie : synchronous_json
Conservez tous les indices et toutes les dimensions des vecteurs.
Un nom de modèle multimodal n’autorise pas les objets image sur ce chemin précis.
Tarifs
Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.
- Mode rapide
- Tarif standard Lorsque le mode rapide est sélectionné
- Mode Flex
- Tarif standard Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Tarif standard Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)
Tarifs Ailoot
Prix par configuration
| Configuration | Barème tarifaire | Coût |
|---|---|---|
| ConfigurationTarifs de base des tokens | Barème tarifaireTarif de base | Coût Entrée · Tokens en entrée $0.00012 / 1K tokens Sortie · Tokens en sortie $0 / 1K tokens Entrée · Lecture du cache — / 1K tokens Entrée · Écriture dans le cache — / 1K tokens Entrée · Écriture dans le cache, 1 h — / 1K tokens |
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. Fonctionnement de la réservation et du débit →
Exemples de requêtes
Ailoot Ultra · Embeddings
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "voyageai/voyage-4", "input": ["First document", "Second document"]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("data",[]): print(json.dumps({"index":x.get("index"),"embedding":x.get("embedding")}))
PY_RESULT
from openai import OpenAI
import os
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.embeddings.create(model='voyageai/voyage-4',input=["First document","Second document"])
print(result)
for item in result.data:print(item.index,item.embedding)
Recevoir et enregistrer les résultats
Ailoot Ultra · Embeddings
json
Conserver tous les résultats terminés
Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.
Conservez chaque vecteur avec son indice. Le nombre de vecteurs doit être égal au nombre d’entrées ; les dimensions doivent être cohérentes.
Si la réponse d’origine doit être vérifiée
Aucun point de terminaison dédié aux tâches d’embedding n’est ajouté.
Champs de la réponse
| Champ | Type |
|---|---|
Champobject | Typestring |
Champmodel | Typestring |
Champdata[].index | Typeinteger |
Champdata[].embedding | Typefinite float[] |
Champusage | Typeobject |
Erreurs et étapes suivantes
| Réponse | Condition | Étape suivante |
|---|---|---|
Réponse400 · invalid_request_error | ConditionChamps obligatoires, représentation des contenus ou valeur de paramètre non valides | Étape suivanteCorrigez les champs indiqués avant une nouvelle requête de création. |
Alias
Alias du modèle
Ailoot Ultra voyageai/voyage-4
Alias des chemins de méthode
Utilisez les chemins de méthode indiqués ci-dessus.
ID d’appel associés
FAQ · VoyageAI by MongoDB: voyage-4
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/embeddings·voyageai/voyage-4:text,token_ids→embedding- Quels champs la requête utilise-t-elle ?
POST /v1/embeddings·voyageai/voyage-4:model,input,encoding_format,provider- Quelles limites s’appliquent ?
POST /v1/embeddings·voyageai/voyage-4:ctx:32000;input.budget.maximum:32000(octets UTF8);input.min_items:1