Intégrer Milvus à Phidata
Phidata est un cadre puissant pour la création d'agents et de flux de travail intelligents. Il vous permet de créer des agents multimodaux capables de comprendre du texte, des images, de l'audio et de la vidéo, et d'exploiter divers outils et sources de connaissances pour accomplir des tâches complexes. Phidata prend en charge l'orchestration multi-agents, ce qui permet aux équipes d'agents de collaborer et de résoudre des problèmes ensemble. Il fournit également une belle interface utilisateur pour interagir avec vos agents.
La base de données vectorielle Milvus permet de stocker et d'extraire efficacement des informations sous forme d'enchâssements. Avec Milvus et Phidata, vous pouvez facilement intégrer vos connaissances dans les flux de travail de vos agents. Ce document est un guide de base sur l'utilisation de l'intégration de Milvus avec Phidata.
Préparation
Installez les dépendances nécessaires :
$ pip install --upgrade phidata pymilvus openai
Si vous utilisez Google Colab, pour activer les dépendances qui viennent d'être installées, vous devrez peut-être redémarrer le runtime (cliquez sur le menu "Runtime" en haut de l'écran, et sélectionnez "Restart session" dans le menu déroulant).
Nous utiliserons OpenAI comme LLM dans cet exemple. Vous devez préparer la clé api OPENAI_API_KEY
comme variable d'environnement.
import os
os.environ["OPENAI_API_KEY"] = "sk-***********"
Initaliser Milvus
Importez les paquets et initialisez l'instance de la base de données vectorielle Milvus.
from phi.agent import Agent
from phi.knowledge.pdf import PDFUrlKnowledgeBase
from phi.vectordb.milvus import Milvus
# Initialize Milvus
vector_db = Milvus(
collection="recipes",
uri="./milvus.db",
)
Spécifiez le nom de la collection ainsi que l'uri et le token (optionnel) pour votre serveur Milvus.
Voici comment définir l'uri et le token :
Si vous n'avez besoin d'une base de données vectorielle locale que pour des données à petite échelle ou pour le prototypage, définir l'uri comme 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 de données à grande échelle, par exemple plus d'un million de vecteurs, vous pouvez configurer un serveur Milvus plus performant sur Docker ou Kubernetes. Dans cette configuration, veuillez utiliser l'adresse et le port du serveur comme uri, par exemple
http://localhost:19530
. Si vous activez la fonction d'authentification sur Milvus, utilisez "<votre_nom_d'utilisateur>:<votre_mot_de_passe>" comme jeton, sinon ne définissez pas le jeton.Si vous utilisez Zilliz Cloud, le service en nuage entièrement géré pour Milvus, ajustez les valeurs
uri
ettoken
, qui correspondent au point de terminaison public et à la clé API dans Zilliz Cloud.
Charger les données
Créez une instance de base de connaissance de l'url PDF et chargez les données dans l'instance. Nous utilisons les données PDF d'une recette publique comme exemple.
# Create knowledge base
knowledge_base = PDFUrlKnowledgeBase(
urls=["https://phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
vector_db=vector_db,
)
knowledge_base.load(recreate=False) # Comment out after first run
INFO Création de la collection
INFO Chargement de la base de connaissances
INFO Lecture : https://phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf
INFO Ajout de 0 document à la base de connaissances
Utiliser un agent pour répondre à une question
Intégrer la base de connaissances dans un agent, puis poser une question à l'agent et obtenir une réponse.
# Create and use the agent
agent = Agent(knowledge_base=knowledge_base, use_tools=True, show_tool_calls=True)
# Query the agent
agent.print_response("How to make Tom Kha Gai", markdown=True)
Output()
┏━ Message ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃
┃ How to make Tom Kha Gai ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Response (6.9s) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃
┃ Running: ┃
┃ ┃
┃ • search_knowledge_base(query=Tom Kha Gai recipe) ┃
┃ ┃
┃ Here's a recipe for Tom Kha Gai, a delicious Thai chicken and galangal soup made with coconut milk: ┃
┃ ┃
┃ Ingredients (One serving): ┃
┃ ┃
┃ • 150 grams chicken, cut into bite-size pieces ┃
┃ • 50 grams sliced young galangal ┃
┃ • 100 grams lightly crushed lemongrass, julienned ┃
┃ • 100 grams straw mushrooms ┃
┃ • 250 grams coconut milk ┃
┃ • 100 grams chicken stock ┃
┃ • 3 tbsp lime juice ┃
┃ • 3 tbsp fish sauce ┃
┃ • 2 leaves kaffir lime, shredded ┃
┃ • 1-2 bird’s eye chilies, pounded ┃
┃ • 3 leaves coriander ┃
┃ ┃
┃ Directions: ┃
┃ ┃
┃ 1 Bring the chicken stock and coconut milk to a slow boil. ┃
┃ 2 Add galangal, lemongrass, chicken, and mushrooms. Once the soup returns to a boil, season it with f┃
┃ 3 Wait until the chicken is cooked, then add the kaffir lime leaves and bird’s eye chilies. ┃
┃ 4 Remove the pot from heat and add lime juice. ┃
┃ 5 Garnish with coriander leaves. ┃
┃ ┃
┃ Tips: ┃
┃ ┃
┃ • Keep the heat low throughout the cooking process to prevent the oil in the coconut milk from separ ┃
┃ • If using mature galangal, reduce the amount. ┃
┃ • Adding lime juice after removing the pot from heat makes it more aromatic. ┃
┃ • Reduce the number of chilies for a milder taste. ┃
┃ ┃
┃ Enjoy making and savoring this flavorful Thai soup! ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Félicitations, vous avez appris les bases de l'utilisation de Milvus dans Phidata. Si vous souhaitez en savoir plus sur l'utilisation de Phidata, veuillez vous référer à la documentation officielle.