Voyage AI and Zilliz Cloud Integration
Voyage AI and Zilliz Cloud integrate to power semantic search and multimodal retrieval, combining Voyage AI's cutting-edge embedding models built on contrastive learning research with Zilliz Cloud's high-performance vector database for efficient similarity search across text and images.
Utilisez cette intégration gratuitementQu’est-ce que Voyage AI
Voyage AI est une équipe de chercheurs de premier plan en IA axée sur l’avancement de la technologie RAG, avec une expertise issue de plus de cinq ans de recherche de pointe au Stanford AI Lab et au groupe MIT NLP. Ils fournissent des modèles d’embedding qui exploitent des approches d’apprentissage contrastif pour créer des représentations vectorielles de haute qualité de textes et d’images. Leur modèle phare
voyage-2surpasse les benchmarks concurrents avec une précision de récupération plus élevée, des fenêtres de contexte étendues et une inférence efficace, avec des modèles spécifiques à certains domaines disponibles pour le code, le droit, la finance et les cas d’usage multilingues.En s’intégrant à Zilliz Cloud (Milvus entièrement géré), les modèles d’embedding de Voyage AI peuvent être utilisés directement dans Zilliz Cloud Pipelines pour convertir des données non structurées en embeddings vectoriels interrogeables, permettant une recherche sémantique évolutive, une récupération multimodale et des applications RAG — le tout fonctionnant dans un environnement clé en main entièrement géré.
Avantages de l’intégration Voyage AI + Zilliz Cloud
- Précision de récupération à la pointe de la technologie : Les modèles d’embeddings de Voyage AI surpassent les benchmarks concurrents, y compris les modèles d’embeddings textuels d’OpenAI, offrant une précision de récupération supérieure lorsqu’ils sont associés à la recherche de similarité efficace de Zilliz Cloud.
- Prise en charge de la recherche multimodale : Le modèle
voyage-multimodal-3prend en charge les embeddings de texte et d’image, permettant des applications de recherche intermodale où les utilisateurs peuvent effectuer une requête avec du texte pour trouver des images, ou inversement, le tout stocké et récupéré via Zilliz Cloud. - Modèles spécifiques à un domaine : Voyage AI propose des modèles spécialisés comme
voyage-code-2etvoyage-law-2pour les domaines du code et du juridique, Zilliz Cloud fournissant la couche de stockage et de récupération évolutive pour ces embeddings optimisés par domaine. - Intégration de pipeline clé en main : Les modèles Voyage AI sont disponibles directement dans Zilliz Cloud Pipelines, sans nécessiter d’authentification séparée ni de configuration de compte externe, pour une expérience fluide d’embedding et de récupération.
Fonctionnement de l’intégration
Voyage AI sert de couche d’embedding, convertissant le texte et les images en représentations vectorielles de haute dimension à l’aide de modèles comme
voyage-law-2pour le texte etvoyage-multimodal-3pour le contenu multimodal. Il fournit des types d’entrée distincts pour les documents et les requêtes afin d’optimiser la précision de la récupération grâce à son approche basée sur l’apprentissage contrastif.Zilliz Cloud sert de couche de base de données vectorielle, stockant et indexant les embeddings générés par Voyage AI pour une recherche de similarité rapide. Il prend en charge à la fois les déploiements locaux Milvus Lite et le service cloud entièrement géré, permettant une récupération efficace dans de grandes collections d’embeddings de texte et d’image.
Ensemble, Voyage AI et Zilliz Cloud créent une solution de recherche sémantique de bout en bout : les documents et les images sont intégrés à l’aide des modèles de Voyage AI et stockés dans Zilliz Cloud. Lorsqu’un utilisateur soumet une requête — qu’il s’agisse de texte ou d’image — Voyage AI l’intègre et Zilliz Cloud effectue une recherche de similarité pour trouver les résultats les plus pertinents, permettant des applications telles que la récupération de documents, la recherche multimodale et les réponses aux questions propulsées par RAG.
Guide étape par étape
1. Installer les packages requis
$ pip install --upgrade voyageai pymilvus2. Recherche textuelle — Générer des embeddings et les stocker dans Milvus
Utilisez le modèle d’embedding de Voyage AI pour générer des représentations vectorielles et les stocker dans Milvus :
import voyageai from pymilvus import MilvusClient MODEL_NAME = "voyage-law-2" DIMENSION = 1024 voyage_client = voyageai.Client(api_key="<YOUR_VOYAGEAI_API_KEY>") docs = [ "Artificial intelligence was founded as an academic discipline in 1956.", "Alan Turing was the first person to conduct substantial research in AI.", "Born in Maida Vale, London, Turing was raised in southern England.", ] vectors = voyage_client.embed(texts=docs, model=MODEL_NAME, truncation=False).embeddings data = [ {"id": i, "vector": vectors[i], "text": docs[i], "subject": "history"} for i in range(len(docs)) ] milvus_client = MilvusClient(uri="milvus_voyage_demo.db") COLLECTION_NAME = "demo_collection" if milvus_client.has_collection(collection_name=COLLECTION_NAME): milvus_client.drop_collection(collection_name=COLLECTION_NAME) milvus_client.create_collection(collection_name=COLLECTION_NAME, dimension=DIMENSION) res = milvus_client.insert(collection_name="demo_collection", data=data) print(res["insert_count"])Concernant l’argument de
MilvusClient: définir l’uricomme un fichier local, par exemple./milvus.db, est la méthode la plus pratique, car elle utilise automatiquement Milvus Lite pour stocker toutes les données dans ce fichier. Si vous avez un grand volume de données, vous pouvez configurer un serveur Milvus plus performant sur Docker ou Kubernetes. Si vous souhaitez utiliser Zilliz Cloud, le service cloud entièrement géré pour Milvus, ajustez l’uriet letoken, qui correspondent au Public Endpoint et à l’API Key dans Zilliz Cloud.3. Recherche textuelle — Effectuer une recherche sémantique
Générez l’embedding vectoriel de la requête et effectuez une recherche vectorielle :
queries = ["When was artificial intelligence founded?"] query_vectors = voyage_client.embed( texts=queries, model=MODEL_NAME, truncation=False ).embeddings res = milvus_client.search( collection_name=COLLECTION_NAME, data=query_vectors, limit=2, output_fields=["text", "subject"], ) for q in queries: print("Query:", q) for result in res: print(result) print("\n")4. Recherche d’images — Préparer des données multimodales
Convertissez les pages PDF en images et générez des embeddings multimodaux avec
voyage-multimodal-3:import base64 from io import BytesIO import urllib.request import fitz # PyMuPDF from PIL import Image def pdf_url_to_screenshots(url: str, zoom: float = 1.0) -> list[Image]: if not url.startswith("http") and url.endswith(".pdf"): raise ValueError("Invalid URL") with urllib.request.urlopen(url) as response: pdf_data = response.read() pdf_stream = BytesIO(pdf_data) pdf = fitz.open(stream=pdf_stream, filetype="pdf") images = [] mat = fitz.Matrix(zoom, zoom) for n in range(pdf.page_count): pix = pdf[n].get_pixmap(matrix=mat) img = Image.frombytes("RGB", [pix.width, pix.height], pix.samples) images.append(img) pdf.close() return images def image_to_base64(image): buffered = BytesIO() image.save(buffered, format="JPEG") img_str = base64.b64encode(buffered.getvalue()) return img_str.decode("utf-8") DIMENSION = 1024 pages = pdf_url_to_screenshots("https://www.fdrlibrary.org/documents/356632/390886/readingcopy.pdf", zoom=3.0) inputs = [[img] for img in pages] vectors = voyage_client.multimodal_embed(inputs, model="voyage-multimodal-3") inputs = [i[0] if isinstance(i[0], str) else image_to_base64(i[0]) for i in inputs] data = [ {"id": i, "vector": vectors.embeddings[i], "data": inputs[i], "subject": "fruits"} for i in range(len(inputs)) ]5. Recherche d’images — Stocker et interroger
Stockez les embeddings multimodaux dans Milvus et effectuez une recherche avec des requêtes textuelles ou image :
milvus_client = MilvusClient(uri="milvus_voyage_multi_demo.db") COLLECTION_NAME = "demo_collection" if milvus_client.has_collection(collection_name=COLLECTION_NAME): milvus_client.drop_collection(collection_name=COLLECTION_NAME) milvus_client.create_collection(collection_name=COLLECTION_NAME, dimension=DIMENSION) res = milvus_client.insert(collection_name="demo_collection", data=data) print(res["insert_count"]) queries = [["Les conséquences de la paix d’un dictateur"]] query_vectors = voyage_client.multimodal_embed( inputs=queries, model="voyage-multimodal-3", truncation=False ).embeddings res = milvus_client.search( collection_name=COLLECTION_NAME, data=query_vectors, limit=4, output_fields=["data", "subject"], )En savoir plus
- Recherche sémantique avec Milvus et VoyageAI — Tutoriel officiel de Milvus pour la recherche sémantique avec Voyage AI
- Embeddings et rerankers de Voyage AI pour la recherche et le RAG — Blog de Zilliz sur les embeddings et les rerankers de Voyage AI
- Utiliser les modèles d’embedding de Voyage AI dans Zilliz Cloud Pipelines — Blog de Zilliz sur Voyage AI dans Zilliz Cloud Pipelines
- Zilliz Cloud prend en charge les modèles d’OSS, VoyageAI et OpenAI — Blog de Zilliz sur la prise en charge des modèles d’embedding
- Documentation de Voyage AI — Documentation officielle de Voyage AI


