LlamaIndex and Zilliz Cloud Integration
LlamaIndex and Zilliz Cloud integrate to build powerful Retrieval-Augmented Generation applications, combining LlamaIndex's flexible data framework for LLM applications with Zilliz Cloud's high-performance vector database for efficient document storage, retrieval, and context-aware AI responses.
Utilisez cette intégration gratuitementQu’est-ce que LlamaIndex
LlamaIndex (anciennement GPT Index) est un framework de données simple et flexible permettant de connecter des sources de données personnalisées à de grands modèles de langage (LLM). Il facilite l’ingestion, la structuration et l’accès à des données privées ou propres à un domaine, en répondant au défi critique selon lequel, bien que les LLM soient pré-entraînés sur de vastes ensembles de données accessibles au public, ils manquent souvent de connaissances propres à un domaine, ce qui peut entraîner des hallucinations ou des réponses incorrectes.
En s’intégrant à Zilliz Cloud (Milvus entièrement géré), LlamaIndex accède à une base de données vectorielle entièrement gérée et haute performance, qui stocke et récupère efficacement les embeddings de documents à grande échelle, permettant aux développeurs de créer des applications RAG prêtes pour la production, des systèmes de questions-réponses documentaires et des chatbots basés sur les connaissances avec une gestion minimale de l’infrastructure.
Avantages de l’intégration LlamaIndex + Zilliz Cloud
- Ingestion de données flexible avec stockage évolutif : LlamaIndex gère l’ingestion et la structuration de sources de données diverses, tandis que Zilliz Cloud fournit un stockage vectoriel évolutif et une recherche rapide par similarité pour alimenter la récupération à n’importe quelle échelle.
- Création d’index et interrogation simples : Avec seulement quelques lignes de code, les développeurs peuvent créer un index de magasin vectoriel adossé à Zilliz Cloud, insérer des documents et les interroger en langage naturel.
- Filtrage par métadonnées pour une récupération précise : L’intégration prend en charge le filtrage par métadonnées, permettant aux applications de restreindre les résultats de recherche selon des attributs spécifiques tels que le nom de fichier, la source ou des balises personnalisées pour une récupération plus ciblée.
- Double utilisation comme index ou connecteur de données : LlamaIndex peut utiliser Zilliz Cloud comme index de magasin vectoriel interne pour le stockage et l’interrogation directs de documents, ou comme connecteur de données externe qui récupère des données et les intègre dans les structures de LlamaIndex pour un traitement ultérieur.
- Pipelines RAG prêts pour la production : Cette combinaison offre des performances et une fiabilité de niveau production, facilitant le passage du prototype au déploiement en production.
Fonctionnement de l’intégration
LlamaIndex sert de couche de framework de données, gérant le chargement des documents, le découpage, la génération d’embeddings et l’orchestration des requêtes. Il fournit une API simple pour ingérer des données provenant de diverses sources (fichiers, PDF, API) et les convertir en représentations vectorielles pouvant être stockées et récupérées efficacement.
Zilliz Cloud sert de couche de base de données vectorielle via le MilvusVectorStore, stockant et indexant les embeddings de documents générés par LlamaIndex. Il fournit une recherche de similarité haute performance avec une faible latence, permettant aux applications de récupérer efficacement le contexte le plus pertinent à partir de grandes bases de connaissances.
Ensemble, LlamaIndex et Zilliz Cloud créent une solution RAG complète : LlamaIndex ingère et traite les documents, stocke leurs embeddings dans Zilliz Cloud via MilvusVectorStore, et lorsqu’une requête arrive, récupère les documents les plus pertinents grâce à la recherche de similarité vectorielle afin de générer des réponses contextuellement informées à l’aide du LLM.
Guide étape par étape
1. Installer les dépendances
Installez les packages requis :
$ pip install pymilvus>=2.4.2 $ pip install llama-index-vector-stores-milvus $ pip install llama-index2. Configurer OpenAI
Ajoutez la clé API OpenAI pour accéder à ChatGPT :
import openai openai.api_key = "sk-***********"3. Préparer les données
Téléchargez les données d’exemple pour la démo :
! mkdir -p 'data/' ! wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham_essay.txt' ! wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/10k/uber_2021.pdf' -O 'data/uber_2021.pdf'4. Générer des documents et créer un index
Chargez le document à l’aide de SimpleDirectoryReader et créez un index de magasin de vecteurs avec MilvusVectorStore :
from llama_index.core import SimpleDirectoryReader, VectorStoreIndex, StorageContext from llama_index.vector_stores.milvus import MilvusVectorStore # load documents documents = SimpleDirectoryReader( input_files=["./data/paul_graham_essay.txt"] ).load_data() print("Document ID:", documents[0].doc_id) # create index with MilvusVectorStore vector_store = MilvusVectorStore(uri="./milvus_demo.db", dim=1536, overwrite=True) storage_context = StorageContext.from_defaults(vector_store=vector_store) index = VectorStoreIndex.from_documents(documents, storage_context=storage_context)Pour les paramètres de
MilvusVectorStore: définir leuricomme un fichier local, par ex../milvus.db, est la méthode la plus pratique, car cela utilise automatiquement Milvus Lite pour stocker toutes les données dans ce fichier. Si vous disposez d’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 leuriet letoken, qui correspondent au Public Endpoint et à l’API Key dans Zilliz Cloud.5. Interroger les données
Posez des questions à l’index, qui utilise les données stockées comme base de connaissances :
query_engine = index.as_query_engine() res = query_engine.query("What did the author learn?") print(res)6. Écraser et ajouter des données
Testez l’écrasement des données existantes en créant un nouvel index avec
overwrite=True:from llama_index.core import Document vector_store = MilvusVectorStore(uri="./milvus_demo.db", dim=1536, overwrite=True) storage_context = StorageContext.from_defaults(vector_store=vector_store) index = VectorStoreIndex.from_documents( [Document(text="The number that is being searched for is ten.")], storage_context, ) query_engine = index.as_query_engine() res = query_engine.query("Who is the author?") print(res)Ajoutez des données à un index existant en définissant
overwrite=False:del index, vector_store, storage_context, query_engine vector_store = MilvusVectorStore(uri="./milvus_demo.db", overwrite=False) storage_context = StorageContext.from_defaults(vector_store=vector_store) index = VectorStoreIndex.from_documents(documents, storage_context=storage_context) query_engine = index.as_query_engine() res = query_engine.query("What is the number?") print(res)7. Filtrage des métadonnées
Chargez plusieurs documents et filtrez les résultats de requête par attributs de métadonnées :
from llama_index.core.vector_stores import ExactMatchFilter, MetadataFilters # Load all documents documents_all = SimpleDirectoryReader("./data/").load_data() vector_store = MilvusVectorStore(uri="./milvus_demo.db", dim=1536, overwrite=True) storage_context = StorageContext.from_defaults(vector_store=vector_store) index = VectorStoreIndex.from_documents(documents_all, storage_context) # Filter to only retrieve from a specific file filters = MetadataFilters( filters=[ExactMatchFilter(key="file_name", value="uber_2021.pdf")] ) query_engine = index.as_query_engine(filters=filters) res = query_engine.query("What challenges did the disease pose for the author?") print(res)En savoir plus
- Retrieval-Augmented Generation (RAG) avec Milvus et LlamaIndex — Tutoriel officiel de Milvus pour créer un RAG avec LlamaIndex
- Créer un agent IA pour le RAG avec Milvus et LlamaIndex — Blog de Zilliz sur la création d’agents IA avec LlamaIndex et Milvus
- Comment se connecter à Milvus Lite avec LangChain et LlamaIndex — Blog de Zilliz sur la connexion à Milvus Lite
- Comment créer un RAG avec Milvus Lite, Llama3 et LlamaIndex — Tutoriel de Zilliz sur la création d’un RAG avec Llama3
- Documentation LlamaIndex — Documentation officielle de LlamaIndex


