CAMEL and Zilliz Cloud Integration
CAMEL and Zilliz Cloud integrate to build advanced multi-agent RAG systems, combining CAMEL's open-source framework for autonomous and communicative LLM agents with Zilliz Cloud's high-performance vector database for efficient similarity search, retrieval-augmented generation, and collaborative AI tasks.
Utiliser cette intégration gratuitementQu’est-ce que CAMEL
CAMEL est un framework multi-agent open source dédié à l’étude des agents autonomes et communicants. Il fournit une infrastructure pour créer des agents personnalisables, construire des systèmes multi-agents et permettre des applications pratiques. CAMEL explore des techniques évolutives pour la coopération autonome entre agents communicants et leurs processus cognitifs, en proposant divers types d’agents, de tâches, de prompts, de modèles, de jeux de données et d’environnements simulés afin de faciliter la recherche dans ce domaine.
En s’intégrant à Zilliz Cloud (Milvus entièrement géré), les agents de CAMEL accèdent à une base de données vectorielle évolutive pour stocker et interroger des vecteurs de haute dimension, ce qui permet aux agents d’effectuer des recherches de similarité, de récupérer des informations pertinentes via RAG et d’améliorer leurs processus de prise de décision pour des applications telles que les systèmes de questions-réponses, les moteurs de recommandation et les tâches d’IA collaborative.
Avantages de l’intégration de CAMEL + Zilliz Cloud
- RAG multi-agent avec recherche vectorielle : Les agents de CAMEL peuvent exploiter la base de données vectorielle de Zilliz Cloud pour effectuer des recherches de similarité et récupérer du contexte, permettant aux systèmes multi-agents de prendre des décisions éclairées sur la base de connaissances externes pertinentes.
- Modes RAG personnalisés et automatiques : L’intégration prend en charge à la fois des pipelines RAG personnalisés avec un contrôle précis des modèles d’embedding et du stockage, ainsi qu’un mode AutoRetriever qui gère automatiquement la gestion des collections et la récupération.
- Jeu de rôle avec appel de fonctions : La fonctionnalité RolePlaying de CAMEL, combinée aux fonctions de récupération, permet des conversations multi-agents où les agents peuvent rechercher et récupérer dynamiquement des informations depuis Zilliz Cloud lors de la résolution collaborative de tâches.
- Configuration flexible du récupérateur : Les développeurs peuvent configurer VectorRetriever avec des modèles d’embedding personnalisés, des seuils de similarité et des paramètres top-k, le tout adossé à MilvusStorage de Zilliz Cloud pour des opérations vectorielles efficaces.
Fonctionnement de l’intégration
CAMEL sert de framework multi-agent, fournissant la création d’agents, l’orchestration de jeux de rôles et des modules de récupération (VectorRetriever et AutoRetriever). Il gère le traitement des documents grâce à son module Unstructured intégré, la génération d’embeddings via OpenAIEmbedding, ainsi que les flux de conversation basés sur des agents avec des capacités d’appel de fonctions.
Zilliz Cloud sert de couche de base de données vectorielle via MilvusStorage, stockant et indexant les embeddings de documents pour une recherche de similarité rapide. Il fournit le backend de récupération pour les agents de CAMEL, permettant une recherche vectorielle efficace avec des seuils de similarité configurables et des résultats top-k.
Ensemble, CAMEL et Zilliz Cloud créent un système RAG multi-agent complet : les documents sont traités, découpés en chunks et intégrés dans Zilliz Cloud via le VectorRetriever de CAMEL. Les agents peuvent ensuite récupérer le contexte pertinent pendant les conversations — que ce soit dans des questions-réponses à agent unique, des jeux de rôles multi-agents ou des tâches collaboratives complexes — Zilliz Cloud prenant en charge la recherche vectorielle à grande échelle.
Guide étape par étape
1. Installer les dépendances
$ pip install -U "camel-ai[all]" pymilvus2. Charger les données
Téléchargez l’article CAMEL comme exemple de données locales :
import os import requests os.makedirs("local_data", exist_ok=True) url = "https://arxiv.org/pdf/2303.17760.pdf" response = requests.get(url) with open("local_data/camel paper.pdf", "wb") as file: file.write(response.content)3. RAG personnalisé — Configurer l’embedding, le stockage et le récupérateur
Définissez la clé API OpenAI et initialisez le modèle d’embedding, le stockage Milvus et le récupérateur vectoriel :
os.environ["OPENAI_API_KEY"] = "Your Key" from camel.embeddings import OpenAIEmbedding from camel.storages import MilvusStorage from camel.retrievers import VectorRetriever embedding_instance = OpenAIEmbedding() storage_instance = MilvusStorage( vector_dim=embedding_instance.get_output_dim(), url_and_api_key=( "./milvus_demo.db", # Your Milvus connection URI "", # Your Milvus token ), collection_name="camel_paper", ) vector_retriever = VectorRetriever( embedding_model=embedding_instance, storage=storage_instance )Pour
url_and_api_key: utiliser un fichier local, par exemple./milvus.db, comme URI de connexion Milvus est la méthode la plus pratique, car cela utilise automatiquement Milvus Lite. 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’URI de connexion et le jeton, qui correspondent au Public Endpoint et à l’API Key dans Zilliz Cloud.4. Traiter et interroger les documents
Traitez le PDF et interrogez les informations :
vector_retriever.process(content_input_path="local_data/camel paper.pdf") retrieved_info = vector_retriever.query(query="What is CAMEL?", top_k=1) print(retrieved_info)5. RAG automatique avec AutoRetriever
Utilisez AutoRetriever pour la gestion automatique des collections et la récupération :
from camel.retrievers import AutoRetriever from camel.types import StorageType auto_retriever = AutoRetriever( url_and_api_key=( "./milvus_demo.db", "", ), storage_type=StorageType.MILVUS, embedding_model=embedding_instance, ) retrieved_info = auto_retriever.run_vector_retriever( query="What is CAMEL-AI", content_input_paths=[ "local_data/camel paper.pdf", "https://www.camel-ai.org/", ], top_k=1, return_detailed_info=True, ) print(retrieved_info)6. Agent unique avec RAG automatique
Combinez AutoRetriever avec un ChatAgent :
from camel.agents import ChatAgent from camel.messages import BaseMessage from camel.types import RoleType def single_agent(query: str) -> str: assistant_sys_msg = BaseMessage( role_name="Assistant", role_type=RoleType.ASSISTANT, meta_dict=None, content="""You are a helpful assistant to answer question, I will give you the Original Query and Retrieved Context, answer the Original Query based on the Retrieved Context, if you can't answer the question just say I don't know.""", ) auto_retriever = AutoRetriever( url_and_api_key=( "./milvus_demo.db", "", ), storage_type=StorageType.MILVUS, embedding_model=embedding_instance, ) retrieved_info = auto_retriever.run_vector_retriever( query=query, content_input_paths=[ "local_data/camel paper.pdf", "https://www.camel-ai.org/", ], top_k=1, return_detailed_info=True, ) user_msg = BaseMessage.make_user_message(role_name="User", content=retrieved_info) agent = ChatAgent(assistant_sys_msg) assistant_response = agent.step(user_msg) return assistant_response.msg.content print(single_agent("What is CAMEL-AI"))7. Jeu de rôle avec RAG automatique
Combinez les fonctions de récupération avec RolePlaying en utilisant Function Calling pour une collaboration multi-agent :
from camel.functions import MATH_FUNCS, RETRIEVAL_FUNCS from camel.societies import RolePlaying from camel.configs import ChatGPTConfig from camel.types import ModelType function_list = [*MATH_FUNCS, *RETRIEVAL_FUNCS] assistant_model_config = ChatGPTConfig( tools=function_list, temperature=0.0, ) role_play_session = RolePlaying( assistant_role_name="Searcher", user_role_name="Professor", assistant_agent_kwargs=dict( model_type=ModelType.GPT_4O, model_config=assistant_model_config, tools=function_list, ), user_agent_kwargs=dict( model_type=ModelType.GPT_4O, ), task_prompt="What is the main termination reasons for AI Society dataset?", with_task_specify=False, )En savoir plus
- Retrieval-Augmented Generation (RAG) avec Milvus et Camel — Tutoriel officiel de Milvus pour créer un RAG avec CAMEL
- Documentation CAMEL-AI — Documentation officielle de CAMEL
- Dépôt GitHub CAMEL-AI — Code source de CAMEL et ressources communautaires
- RAG agentique avec Claude 3.5 Sonnet, LlamaIndex et Milvus — Blog de Zilliz sur le RAG agentique
- Créer un agent d’IA pour le RAG avec Milvus et LlamaIndex — Blog de Zilliz sur les agents d’IA pour le RAG


