Création d'agents IA locaux : guide de LangGraph, des agents IA et d'Ollama
Introduction
Dans cette ère technologique en constante évolution, l’intelligence artificielle (IA) stimule l’innovation et transforme les industries. Parmi les diverses avancées de l’IA, le développement et le déploiement d’agents d’IA sont connus pour remodeler le fonctionnement des entreprises, améliorer l’expérience utilisateur et automatiser des tâches complexes.
Les agents d'IA, qui sont des entités logicielles capables d'effectuer des tâches spécifiques de manière autonome, sont devenus indispensables dans de nombreuses applications, allant des chatbots du service client aux outils avancés d'analyse de données en passant par les agents financiers.
Dans cet article, nous allons créer un agent d’IA de base pour explorer l’importance, les fonctionnalités et les cadres technologiques qui facilitent la création et le déploiement de ces agents. Plus précisément, nous comprendrons LangGraph et Ollama, deux outils puissants qui simplifient la création d'agents d'IA locaux.
À la fin de ce guide, vous aurez une compréhension complète de l'exploitation de ces technologies pour créer des agents d'IA efficaces et efficients adaptés à vos besoins spécifiques.
Comprendre les agents IA
Les agents d'IA sont des entités ou des systèmes qui perçoivent leur environnement et prennent des mesures pour atteindre des buts ou des objectifs spécifiques. Ces agents peuvent aller de simples algorithmes à des systèmes sophistiqués capables de prendre des décisions complexes. Voici quelques points clés concernant les agents IA :
- Perception : les agents d'IA utilisent des capteurs ou des mécanismes d'entrée pour percevoir leur environnement. Cela pourrait impliquer de collecter des données provenant de diverses sources telles que des caméras, des microphones ou d'autres capteurs.
- Raisonnement : les agents d'IA reçoivent des informations et utilisent des algorithmes et des modèles pour traiter et interpréter les données. Cette étape implique de comprendre des modèles, de faire des prédictions ou de générer des réponses.
- Prise de décision : les agents d'IA, comme les humains, décident des actions ou des résultats en fonction de leur perception et de leur raisonnement. Ces décisions visent à atteindre des buts ou des objectifs spécifiques définis par leur programmation ou leur processus d'apprentissage. De plus, les agents IA agiront davantage comme des assistants que comme des remplaçants des humains.
- Actuation : les agents IA exécutent des actions en fonction de leurs décisions. Cela peut impliquer des actions physiques dans le monde réel (comme déplacer un bras de robot) ou des actions virtuelles dans un environnement numérique (comme faire des recommandations dans une application).
Un exemple d’agents d’IA en action est celui des systèmes de santé qui analysent les données des patients provenant de diverses sources, telles que : les dossiers médicaux, les résultats de tests et les appareils de surveillance en temps réel. Ces agents d’IA peuvent utiliser ces données pour prendre des décisions éclairées, par exemple prédire la probabilité qu’un patient développe une maladie spécifique ou recommander des plans de traitement personnalisés en fonction des antécédents médicaux et de l’état de santé actuel du patient.
Différence entre l'agent AI et l'application RAG
Les applications RAG (Retrieval-Augmented Generation) et les agents d'IA font référence à différents concepts de l'intelligence artificielle.
RAG est utilisé pour améliorer les performances des modèles LLM en incorporant des méthodes de récupération d'informations. Le système de récupération recherche des documents ou des informations pertinents dans un vaste corpus en fonction de la requête d'entrée. Le modèle génératif (par exemple, un modèle de langage basé sur un transformateur) utilise ensuite ces informations récupérées pour générer des réponses plus précises et contextuellement pertinentes. Cela permet d’augmenter la précision du contenu généré grâce à l’intégration des informations récupérées. De plus, cette technique supprime le besoin d’affiner ou de former un LLM sur de nouvelles données.
D’un autre côté, les agents IA sont des entités logicielles autonomes conçues pour effectuer des tâches spécifiques ou une série de tâches. Ils fonctionnent sur la base de règles prédéfinies, de modèles d’apprentissage automatique ou des deux. Ils interagissent souvent avec les utilisateurs ou d'autres systèmes pour recueillir des entrées, fournir des réponses ou exécuter des actions. Les performances de certains agents IA augmentent à mesure qu’ils peuvent apprendre et s’adapter au fil du temps en fonction de nouvelles données et expériences. L’IA peut gérer plusieurs tâches simultanément, offrant ainsi une évolutivité aux entreprises.
- RAG is a technique used to improve the performance of generative models by incorporating information retrieval methods
Un assistant personnel IA peut effectuer des tâches autonomes et prendre des décisions
- Retrieval system + generative model
Systèmes basés sur des règles, modèles d'apprentissage automatique ou combinaison de techniques d'IA
- Improved accuracy and relevance, leverage external data
Polyvalence et adaptabilité améliorées
- Question answering, customer support, content generation
Assistants virtuels, véhicules autonomes, systèmes de recommandation
- Ability to leverage large, external datasets for enhancing generative responses without requiring the generative model itself to be trained on all that data
Capacité à interagir avec les utilisateurs et à s'adapter à l'évolution des exigences ou des environnements.
- A chatbot that retrieves relevant FAQs or knowledge base articles to answer user queries more effectively.
-
Un moteur de recommandation qui suggère des produits ou du contenu en fonction des préférences et du comportement des utilisateurs.
En résumé, les applications RAG sont spécifiquement conçues pour améliorer les capacités des modèles génératifs en incorporant des mécanismes de récupération ; Les agents d’IA sont des entités plus larges destinées à effectuer un large éventail de tâches de manière autonome.
Bref aperçu de LangGraph
LangGraph est une bibliothèque puissante permettant de créer des applications multi-acteurs avec état à l'aide de grands modèles de langage (LLM). Il permet de créer des flux de travail complexes impliquant un ou plusieurs agents, offrant des avantages essentiels tels que les cycles, la contrôlabilité et la persistance.
Avantages clés
- Cycles et branchements : contrairement à d'autres frameworks qui utilisent de simples graphes acycliques dirigés (DAG), LangGraph prend en charge les boucles et les conditions, essentielles pour créer des comportements d'agent sophistiqués.
- Contrôle précis : LangGraph fournit un contrôle détaillé du flux et de l'état de votre application en tant que framework de bas niveau, ce qui le rend idéal pour développer des agents fiables.
- Persistance : il inclut la persistance intégrée, vous permettant d'enregistrer l'état après chaque étape, de suspendre et de reprendre l'exécution, et de prendre en charge des fonctionnalités avancées telles que la récupération d'erreurs et les flux de travail humains dans la boucle.
Caractéristiques
- Cycles et branchements : implémentez des boucles et des conditions dans vos applications.
- Persistance : enregistre automatiquement l'état après chaque étape, prenant en charge la récupération après erreur.
- Human-in-the-Loop : interrompre l'exécution pour approbation humaine ou modification.
- Prise en charge du streaming : diffusez les sorties au fur et à mesure que chaque nœud les produit.
- Intégration avec LangChain : s'intègre parfaitement à LangChain et LangSmith mais peut également être utilisé indépendamment.
LangGraph s'inspire de technologies telles que Pregel et Apache Beam, avec une interface conviviale similaire à NetworkX. Développé par LangChain Inc., il offre un outil robuste pour créer des applications fiables et avancées basées sur l'IA.
Introduction rapide à Ollama
Ollama est un projet open source qui rend l'exécution de LLM sur votre machine locale facile et conviviale. Il fournit une plate-forme conviviale qui simplifie les complexités de la technologie LLM, la rendant accessible et personnalisable pour les utilisateurs qui souhaitent exploiter la puissance de l'IA sans avoir besoin d'une expertise technique approfondie.
Il est facile à installer. De plus, nous disposons d’une sélection de modèles et d’un ensemble complet de fonctionnalités conçues pour améliorer l’expérience utilisateur.
Principales fonctionnalités
- Déploiement local : exécutez des LLM sophistiqués directement sur votre machine locale, garantissant la confidentialité des données et réduisant la dépendance aux serveurs externes.
- Interface conviviale : conçue pour être intuitive et facile à utiliser, la rendant accessible aux utilisateurs ayant différents niveaux de connaissances techniques.
- Personnalisabilité : affinez les modèles d'IA pour répondre à vos besoins spécifiques, qu'il s'agisse de recherche, de développement ou de projets personnels.
- Open Source : étant open source, Ollama encourage les contributions de la communauté et l'amélioration continue, favorisant l'innovation et la collaboration.
- Installation sans effort : Ollama se distingue par son processus d'installation convivial, offrant des méthodes de configuration intuitives et sans tracas pour les utilisateurs Windows, macOS et Linux. Nous avons créé un article sur le téléchargement et l'utilisation d'Ollama ; veuillez consulter le blog (lien fourni dans la section ressources.)
- Communauté Ollama : La communauté Ollama est une communauté dynamique, axée sur les projets, qui favorise la collaboration et l'innovation, avec une communauté open source active qui améliore son développement, ses outils et ses intégrations.
Un guide étape par étape pour créer un agent IA à l'aide de LangGraph et Ollama
Dans cette démo, nous allons créer un exemple simple d'agent utilisant le modèle Mistral. Cet agent peut effectuer des recherches sur le Web à l'aide de l'API Tavily Search et générer des réponses.
Nous commencerons par installer Langgraph, une bibliothèque conçue pour créer des applications multi-acteurs avec état avec des LLM idéales pour créer des workflows d'agents et multi-agents. Inspiré de Pregel, Apache Beam et NetworkX, LangGraph est développé par LangChain Inc. et peut être utilisé indépendamment de LangChain.
Nous utiliserons Mistral comme modèle LLM, qui sera intégré à l'API de recherche d'Ollama et Tavily. L'API de Tavily est optimisée pour les LLM, offrant une expérience de recherche factuelle, efficace et persistante.
Dans notre article précédent, nous avons appris à utiliser Qwen2 avec Ollama, et nous avons mis en lien l'article. Veuillez suivre l'article pour installer Ollama et comment exécuter des LLM à l'aide d'Ollama.
Avant de commencer l’installation, vérifions notre GPU. Vous pouvez ouvrir un terminal et taper le code ci-dessous pour vérifier la configuration de votre GPU.
nvidia-smi
Maintenant, nous allons commencer par nos installations.
pip install -U langgraph
pip install -U langchain-nomic langchain_community tiktoken langchainhub chromadb langchain langgraph tavily-python
pip install langchain-openai
Une fois les installations terminées, nous passerons à la prochaine étape cruciale : fournir la clé API Travily.
export TAVILY_API_KEY="apikeygoeshere"
Maintenant, nous allons exécuter le code ci-dessous pour récupérer le modèle. Veuillez essayer ceci en utilisant Llama ou toute autre version de Mistral.
ollama pull mistral
Importez toutes les bibliothèques nécessaires à la création de l'agent.
from langchain import hub
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain.prompts import PromptTemplate
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import JsonOutputParser
from langchain_community.chat_models import ChatOllama
Nous commencerons par définir les outils que nous souhaitons utiliser et lierons les outils avec le llm. Pour cet exemple simple, nous utiliserons un outil de recherche intégré via Tavily.
tools = [TavilySearchResults(max_results=3)]
llm_with_tools = llm.bind_tools(tools)
L'extrait de code ci-dessous récupère un modèle d'invite et l'imprime dans un format lisible. Ce modèle peut ensuite être utilisé ou modifié selon les besoins de l'application.
prompt = hub.pull("wfh/react-agent-executor")
prompt.pretty_print()
Ensuite, nous configurerons l'utilisation de Mistral via la plateforme Ollama.
llm = ChatOpenAI(model="mistral", api_key="ollama", base_url="http://localhost:11434/v1",
)
Enfin, nous créerons un exécuteur d'agent en utilisant notre modèle de langage (llm
), un ensemble d'outils (tools
) et un modèle d'invite (prompt
). L'agent est configuré pour réagir aux entrées, utiliser les outils et générer des réponses basées sur l'invite spécifiée, lui permettant d'effectuer des tâches de manière contrôlée et efficace.
agent_executor = create_react_agent(llm, tools, messages_modifier=prompt)
================================ System Message ================================
You are a helpful assistant.
============================= Messages Placeholder =============================
{{messages}}
L'extrait de code donné appelle l'exécuteur de l'agent pour traiter le message d'entrée. Cette étape a pour but d'envoyer une requête à l'agent exécuteur et de recevoir une réponse. L'agent utilisera son modèle de langage configuré (Mistral dans ce cas), ses outils et ses invites pour traiter le message et générer une réponse appropriée.
response = agent_executor.invoke({"messages": [("user", "explain artificial intelligence")]})
for message in response['messages']:
print(message.content)
et cela générera la réponse ci-dessous.
Conclusion
LangGraph et des outils comme AI Agents et Ollama représentent une avancée significative dans le développement et le déploiement de solutions d'intelligence artificielle localisées. En tirant parti de la capacité de LangGraph à rationaliser divers composants d’IA et de son architecture modulaire, les développeurs peuvent créer des solutions d’IA polyvalentes et évolutives, efficaces et hautement adaptables à l’évolution des besoins.
Comme le décrit notre blog, les agents IA offrent une approche flexible pour automatiser les tâches et améliorer la productivité. Ces agents peuvent être personnalisés pour gérer diverses fonctions, de la simple automatisation de tâches aux processus décisionnels complexes, ce qui en fait des outils indispensables pour les entreprises modernes.
Ollama, dans le cadre de cet écosystème, fournit un support supplémentaire en proposant des outils et des services spécialisés qui complètent les capacités de LangGraph.
En résumé, l'intégration de LangGraph et Ollama fournit un cadre robuste pour créer des agents d'IA à la fois efficaces et efficients. Ce guide est une ressource précieuse pour quiconque cherche à exploiter le potentiel de ces technologies pour stimuler l’innovation et atteindre ses objectifs dans le paysage en constante évolution de l’intelligence artificielle.
Ressources supplémentaires
- Comment migrer des anciens agents LangChain vers LangGraph
- Appel d'outil
- Documentation LangGraph
- Comparaison des systèmes RAG et des agents IA
- Référence du code