Fireworks AI and Zilliz Cloud Integration
Fireworks AI and Zilliz Cloud integrate to build high-performance RAG applications, combining Fireworks AI's generative AI inference platform with industry-leading speed for LLM and embedding models alongside Zilliz Cloud's scalable vector database for efficient vector storage and similarity search.
Utilisez cette intégration gratuitementQu’est-ce que Fireworks AI
Fireworks AI est une plateforme d’inférence d’IA générative offrant une vitesse de pointe et une préparation à la production pour exécuter et personnaliser des modèles. Elle fournit une variété de services d’IA générative, notamment des modèles serverless, des déploiements à la demande et des capacités de fine-tuning pour les modèles de texte, d’audio, d’image et d’embedding. Fireworks AI agrège de nombreux modèles avec une tarification à l’usage, le mode JSON, le mode grammaire et des capacités d’appel de fonctions, permettant aux utilisateurs d’accéder facilement à ces ressources et de les utiliser sans configuration d’infrastructure étendue.
En s’intégrant à Zilliz Cloud (Milvus entièrement géré), les LLM et modèles d’embedding optimisés de Fireworks AI sont associés à une base de données vectorielle évolutive, fournissant une base robuste pour créer des applications RAG prêtes pour la production, dans lesquelles Zilliz Cloud récupère les documents les plus pertinents en fonction de la similarité vectorielle et les LLM de Fireworks AI génèrent des réponses précises et contextuelles.
Avantages de l’intégration Fireworks AI + Zilliz Cloud
- Vitesse d’inférence de premier plan dans le secteur : Fireworks AI fournit une inférence haute performance pour les LLM et les modèles d’embedding, tandis que Zilliz Cloud offre une récupération vectorielle rapide, créant ainsi un pipeline RAG de bout en bout à faible latence.
- API compatible OpenAI : Fireworks AI propose une API de style OpenAI, ce qui facilite le passage d’un fournisseur à l’autre sans modification du code, tandis que Zilliz Cloud stocke et récupère les embeddings générés.
- Sélection diversifiée de modèles : Fireworks AI agrège de nombreux modèles, notamment Llama 3.1, DeepSeek, et des modèles d’embedding comme nomic-embed-text, offrant aux développeurs la flexibilité de choisir les meilleurs modèles pour leur cas d’utilisation, avec Zilliz Cloud comme backend vectoriel.
- Prêt pour la production sans complexité d’infrastructure : Les deux plateformes sont entièrement managées, permettant aux développeurs de créer et de déployer des applications RAG sans gérer d’infrastructure complexe pour le service de modèles ou le stockage vectoriel.
Fonctionnement de l’intégration
Fireworks AI sert de plateforme d’inférence IA, fournissant à la fois des modèles d’embedding (par exemple, nomic-ai/nomic-embed-text-v1.5) pour générer des représentations vectorielles de texte et des LLM (par exemple, llama-v3p1-405b-instruct) pour générer des réponses contextuelles. Elle utilise une API compatible avec OpenAI pour une intégration transparente.
Zilliz Cloud sert de couche de base de données vectorielle, stockant et indexant les embeddings générés par les modèles de Fireworks AI. Il fournit une recherche de similarité haute performance utilisant la distance par produit interne, permettant une récupération rapide des documents les plus pertinents à partir de grandes collections.
Ensemble, Fireworks AI et Zilliz Cloud créent une solution RAG complète : les documents sont intégrés sous forme de vecteurs à l’aide des modèles d’embedding de Fireworks AI et stockés dans Zilliz Cloud. Lorsqu’un utilisateur pose une question, Fireworks AI intègre la requête sous forme de vecteur, Zilliz Cloud récupère le contexte le plus pertinent grâce à la recherche de similarité, et le LLM de Fireworks AI génère une réponse précise et contextuelle basée sur les documents récupérés.
Guide étape par étape
1. Installer les dépendances
$ pip install --upgrade pymilvus openai requests tqdm2. Préparer la clé API
Fireworks AI active l’API de style OpenAI. Préparez la clé API comme variable d’environnement :
import os os.environ["FIREWORKS_API_KEY"] = "***********"3. Préparer les données
Nous utilisons les pages FAQ de la documentation Milvus 2.4.x comme connaissances privées dans notre RAG :
$ wget https://github.com/milvus-io/milvus-docs/releases/download/v2.4.6-preview/milvus_docs_2.4.x_en.zip $ unzip -q milvus_docs_2.4.x_en.zip -d milvus_docsfrom glob import glob text_lines = [] for file_path in glob("milvus_docs/en/faq/*.md", recursive=True): with open(file_path, "r") as file: file_text = file.read() text_lines += file_text.split("# ")4. Préparer le LLM et le modèle d’embedding
Initialisez un client à l’aide de l’API compatible OpenAI et définissez la fonction d’embedding en utilisant le modèle
nomic-ai/nomic-embed-text-v1.5:from openai import OpenAI fireworks_client = OpenAI( api_key=os.environ["FIREWORKS_API_KEY"], base_url="https://api.fireworks.ai/inference/v1", ) def emb_text(text): return ( fireworks_client.embeddings.create( input=text, model="nomic-ai/nomic-embed-text-v1.5" ) .data[0] .embedding )Générez un embedding de test et affichez sa dimension :
test_embedding = emb_text("This is a test") embedding_dim = len(test_embedding) print(embedding_dim) print(test_embedding[:10])5. Créer une collection Milvus et insérer les données
from pymilvus import MilvusClient from tqdm import tqdm milvus_client = MilvusClient(uri="./milvus_demo.db") collection_name = "my_rag_collection" if milvus_client.has_collection(collection_name): milvus_client.drop_collection(collection_name) milvus_client.create_collection( collection_name=collection_name, dimension=embedding_dim, metric_type="IP", consistency_level="Strong", ) data = [] for i, line in enumerate(tqdm(text_lines, desc="Creating embeddings")): data.append({"id": i, "vector": emb_text(line), "text": line}) milvus_client.insert(collection_name=collection_name, data=data)Concernant l’argument de
MilvusClient: définir leuricomme 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 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 point de terminaison public et à la clé API dans Zilliz Cloud.6. Construire le RAG — Récupérer et générer la réponse
Recherchez la question dans la collection et récupérez les 3 meilleures correspondances sémantiques :
question = "How is data stored in milvus?" search_res = milvus_client.search( collection_name=collection_name, data=[emb_text(question)], limit=3, search_params={"metric_type": "IP", "params": {}}, output_fields=["text"], )Utilisez le modèle
llama-v3p1-405b-instructfourni par Fireworks pour générer une réponse :context = "\n".join( [line_with_distance[0] for line_with_distance in retrieved_lines_with_distances] ) SYSTEM_PROMPT = """ Human: You are an AI assistant. You are able to find answers to the questions from the contextual passage snippets provided. """ USER_PROMPT = f""" Use the following pieces of information enclosed in <context> tags to provide an answer to the question enclosed in <question> tags. <context> {context} </context> <question> {question} </question> """ response = fireworks_client.chat.completions.create( model="accounts/fireworks/models/llama-v3p1-405b-instruct", messages=[ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": USER_PROMPT}, ], ) print(response.choices[0].message.content)En savoir plus
- Construire un RAG avec Milvus et Fireworks AI — Tutoriel officiel de Milvus pour construire un RAG avec Fireworks AI
- Construire un chatbot RAG avec LangChain, Milvus et Fireworks AI — Tutoriel RAG de Zilliz avec Fireworks AI
- Documentation de Fireworks AI — Documentation officielle de Fireworks AI
- Référence de l’API Fireworks AI — Guide de démarrage de Fireworks AI
- Démarrage rapide de Milvus — Documentation de démarrage rapide de Milvus


