Voyage AICompatible with Milvus 2.6.x
Cette rubrique décrit comment configurer et utiliser les fonctions d'intégration de Voyage AI dans Milvus.
Choisir un modèle d'intégration
Milvus prend en charge les modèles d'intégration fournis par Voyage AI. Vous trouverez ci-dessous les modèles d'intégration actuellement disponibles à titre de référence rapide :
Nom du modèle |
Dimensions |
Nombre maximal de jetons |
Description |
|---|---|---|---|
voyage-3-large |
1 024 (par défaut), 256, 512, 2 048 |
32,000 |
La meilleure qualité d'extraction générale et multilingue. |
voyage-3 |
1,024 |
32,000 |
Optimisé pour une qualité de recherche polyvalente et multilingue. Voir l'article de blog pour plus de détails. |
voyage-3-lite |
512 |
32,000 |
Optimisé pour la latence et le coût. Voir l'article de blog pour plus de détails. |
voyage-code-3 |
1 024 (par défaut), 256, 512, 2 048 |
32,000 |
Optimisé pour la récupération des codes. Voir l'article du blog pour plus de détails. |
voyage-finance-2 |
1,024 |
32,000 |
Optimisé pour la recherche de finances et le RAG. Voir l'article de blog pour plus de détails. |
voyage-law-2 |
1,024 |
16,000 |
Optimisé pour la recherche juridique et le RAG. Amélioration des performances dans tous les domaines. Voir l'article de blog pour plus de détails. |
voyage-code-2 |
1,536 |
16,000 |
Optimisé pour la recherche de code (17% de mieux que les alternatives) / Génération précédente de code embeddings. Voir l'article de blog pour plus de détails. |
Pour plus de détails, voir les modèles d'intégration de texte.
Configurer les informations d'identification
Milvus doit connaître votre clé API Voyage AI avant de pouvoir demander des incorporations. Milvus propose deux méthodes pour configurer les informations d'identification :
Fichier de configuration (recommandé) : Stockez la clé API à l'adresse
milvus.yamlpour que chaque redémarrage et chaque nœud la récupère automatiquement.Variables d'environnement : Injecter la clé au moment du déploiement - idéal pour Docker Compose.
Choisissez l'une des deux méthodes ci-dessous : le fichier de configuration est plus facile à maintenir sur les machines nues et les machines virtuelles, tandis que la méthode des variables d'environnement convient aux flux de travail des conteneurs.
Si une clé API pour le même fournisseur est présente à la fois dans le fichier de configuration et dans une variable d'environnement, Milvus utilise toujours la valeur dans milvus.yaml et ignore la variable d'environnement.
Option 1 : Fichier de configuration (recommandé et plus prioritaire)
Conservez vos clés API dans milvus.yaml; Milvus les lit au démarrage et remplace toute variable d'environnement pour le même fournisseur.
**Déclarez vos clés sous
credential:Vous pouvez lister une ou plusieurs clés API - donnez à chacune une étiquette que vous inventez et à laquelle vous ferez référence plus tard.
# milvus.yaml credential: apikey_dev: # dev environment apikey: <YOUR_DEV_KEY> apikey_prod: # production environment apikey: <YOUR_PROD_KEY>Le fait de placer les clés d'API ici les rend persistantes lors des redémarrages et vous permet de changer de clé en changeant simplement d'étiquette.
Indiquer à Milvus la clé à utiliser pour les appels de service
Dans le même fichier, indiquez au fournisseur Voyage AI l'étiquette que vous souhaitez qu'il utilise.
function: textEmbedding: providers: voyageai: credential: apikey_dev # ← choose any label you defined above # url: https://api.voyageai.com/v1/embeddings # (optional) custom urlCela permet de lier une clé spécifique à chaque demande que Milvus envoie au point de terminaison Voyage AI embeddings.
Option 2 : Variable d'environnement
Utilisez cette méthode lorsque vous exécutez Milvus avec Docker Compose et que vous préférez garder les secrets hors des fichiers et des images.
Milvus se rabat sur la variable d'environnement uniquement si aucune clé pour le fournisseur n'est trouvée dans milvus.yaml.
Variable |
Obligatoire |
Description de la variable |
|---|---|---|
|
Oui |
Votre clé API Voyage AI valide. |
Dans votre fichier docker-compose.yaml, définissez la variable d'environnement MILVUSAI_VOYAGEAI_API_KEY.
# docker-compose.yaml (standalone service section)
standalone:
# ... other configurations ...
environment:
# ... other environment variables ...
# Set the environment variable pointing to the Voyage AI API key inside the container
MILVUSAI_VOYAGEAI_API_KEY: <MILVUSAI_VOYAGEAI_API_KEY>
Le bloc environment: injecte la clé uniquement dans le conteneur Milvus, laissant votre système d'exploitation hôte intact. Pour plus de détails, voir Configurer Milvus avec Docker Compose.
Utiliser la fonction d'intégration
Une fois les informations d'identification configurées, suivez ces étapes pour définir et utiliser les fonctions d'intégration.
Étape 1 : Définir les champs du schéma
Pour utiliser une fonction d'intégration, créez une collection avec un schéma spécifique. Ce schéma doit comprendre au moins trois champs nécessaires :
Le champ primaire qui identifie de manière unique chaque entité d'une collection.
Un champ scalaire qui stocke les données brutes à intégrer.
Un champ vectoriel réservé au stockage des intégrations vectorielles que la fonction générera pour le champ scalaire.
L'exemple suivant définit un schéma avec un champ scalaire "document" pour stocker les données textuelles et un champ vectoriel "dense" pour stocker les embeddings qui seront générés par le module Function. N'oubliez pas de définir la dimension du vecteur (dim) pour qu'elle corresponde à la sortie du modèle d'intégration que vous avez choisi.
from pymilvus import MilvusClient, DataType, Function, FunctionType
# Initialize Milvus client
client = MilvusClient(
uri="http://localhost:19530",
)
# Create a new schema for the collection
schema = client.create_schema()
# Add primary field "id"
schema.add_field("id", DataType.INT64, is_primary=True, auto_id=False)
# Add scalar field "document" for storing textual data
schema.add_field("document", DataType.VARCHAR, max_length=9000)
# Add vector field "dense" for storing embeddings.
# IMPORTANT: Set dim to match the exact output dimension of the embedding model.
schema.add_field("dense", DataType.FLOAT_VECTOR, dim=1024)
Étape 2 : Ajouter la fonction d'intégration au schéma
Le module Function de Milvus convertit automatiquement les données brutes stockées dans un champ scalaire en embeddings et les stocke dans le champ vectoriel explicitement défini.
L'exemple ci-dessous ajoute un module Function (voya) qui convertit le champ scalaire "document" en embeddings, en stockant les vecteurs résultants dans le champ vectoriel "dense" défini précédemment.
Une fois que vous avez défini votre fonction d'intégration, ajoutez-la à votre schéma de collection. Cela indique à Milvus d'utiliser la fonction d'intégration spécifiée pour traiter et stocker les intégrations à partir de vos données textuelles.
# Define embedding function specifically for embedding model provider
text_embedding_function = Function(
name="voya", # Unique identifier for this embedding function
function_type=FunctionType.TEXTEMBEDDING, # Indicates a text embedding function
input_field_names=["document"], # Scalar field(s) containing text data to embed
output_field_names=["dense"], # Vector field(s) for storing embeddings
params={ # Provider-specific embedding parameters (function-level)
"provider": "voyageai", # Must be set to "voyageai"
"model_name": "voyage-3-large", # Specifies the embedding model to use
# Optional parameters:
# "credential": "apikey_dev", # Optional: Credential label specified in milvus.yaml
# "url": "https://api.voyageai.com/v1/embeddings", # Defaults to the official endpoint if omitted
# "dim": "1024" # Output dimension of the vector embeddings after truncation
# "truncation": "true" # Whether to truncate the input texts to fit within the context length. Defaults to true.
}
)
# Add the configured embedding function to your existing collection schema
schema.add_function(text_embedding_function)
Etapes suivantes
Après avoir configuré la fonction d'incorporation, reportez-vous à la vue d'ensemble des fonctions pour obtenir des conseils supplémentaires sur la configuration de l'index, des exemples d'insertion de données et des opérations de recherche sémantique.