Créer un Slackbot personnalisé avec NVIDIA NIM et LangChain

Dans le monde dynamique des affaires modernes, où la communication et les workflows efficaces sont cruciaux pour le succès, les solutions alimentées par l'IA sont devenues un avantage compétitif. Les agents IA, construits sur des modèles de langage de pointe (LLMs) et alimentés par NVIDIA NIM, offrent un moyen fluide d'améliorer la productivité et le flux d'informations. NIM, faisant partie de NVIDIA AI Enterprise, est une suite de microservices faciles à utiliser, conçus pour un déploiement sécurisé et fiable d'inférence de modèles IA haute performance à travers les clouds, centres de données et postes de travail.
Ce guide fait partie de la série NVIDIA Chat Labs, qui partage des insights et des bonnes pratiques développées à partir de projets internes d'IA générative pour aider les autres à naviguer dans l'adoption de l'IA. En exploitant la puissance des microservices NIM, les entreprises peuvent utiliser des modèles du catalogue API et construire rapidement des Slackbots intelligents qui vont bien au-delà de la simple automatisation. Ces Slackbots deviennent de précieux assistants virtuels, capables de gérer un large éventail de tâches — des réponses aux questions simples à la résolution de problèmes complexes et même à la génération de contenu créatif.
Capacités et architecture du Slackbot
L'implémentation initiale du Slackbot prend en charge les interactions via les canaux Slack, les fils de discussion et les messages personnels du chatbot. Le modèle principal supportant cette interaction est llama-3_1-405b-instruct, qui peut accéder à des outils externes pour des réponses enrichies.
Fonctionnalités clés du Slackbot :
- Support multi-canal : Le Slackbot peut être invité dans n'importe quel canal et répondre aux requêtes pertinentes au contexte de ce canal.
- Interaction par mention : Pour démarrer une conversation, les utilisateurs mentionnent le bot et posent une question complète. Le bot répond dans un fil, en mentionnant l'utilisateur dans le même canal.
- Réponses personnalisables : Le Slackbot peut poser une question de clarification ou utiliser des outils externes pour générer des réponses. Il prend également en charge les messages privés.
Pour l'architecture, Amazon EC2 est utilisé comme hôte principal pour le projet avec Amazon Aurora PostgreSQL comme base de données pour suivre les interactions humain-IA sur Slack.
Guide étape par étape pour créer un agent Slackbot
Voici les étapes pour déployer Slackbot sur AWS :
- Installer les bibliothèques requises
- Définir l'agent principal
- Configurer DynamoDB pour la gestion de la mémoire
- Configurer la mémoire conversationnelle
- Définir l'utilisation d'outils basée sur des mots-clés
- Finaliser l'agent
- Sauvegarder les interactions dans Amazon Aurora PostgreSQL
Prérequis
Avant de commencer à construire le Slackbot, assurez-vous de :
- Configurer Slack.
- Vous familiariser avec LangChain et les agents.
Les bibliothèques requises incluent : openai, boto3, slack_bolt, slack-sdk, langchain, python-dotenv, langchain-community, langchain-nvidia-ai-endpoints, langchainhub.
Installer les bibliothèques requises
Avant de configurer l'agent, assurez-vous que les bibliothèques nécessaires sont installées :
pip install openai boto3 slack_bolt slack-sdk langchain python-dotenv langchain-community langchain-nvidia-ai-endpoints langchainhubDéfinir l'agent principal
Ensuite, définissez les fonctionnalités Slack principales pour l'interaction utilisateur et intégrez le modèle NIM comme agent principal :
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
from dotenv import load_dotenv
from langchain.agents import AgentExecutor, create_react_agent
from langchain.memory import ConversationBufferWindowMemory
from langchain_core.prompts import PromptTemplate
from langchain_nvidia_ai_endpoints import ChatNVIDIA
def agent(user_id, thread_id, channel_name, message_text):
try:
llm = ChatNVIDIA(
model="meta/llama-3.1-405b-instruct",
temperature=0.1,
top_p=1,
max_tokens=2000,
)Utilisez le modèle Llama-3 de Meta qui prend en charge les tâches d'agent. Dans la même fonction, déclarez les outils de l'agent :
tools = [
CalculatorTool(),
CopilotTool(),
BrowsingTool(),
# Autres outils
]Configurer DynamoDB pour la gestion de la mémoire
Pour suivre les interactions de l'agent, initialisez la table DynamoDB et configurez la mémoire de session :
# Spécifier la région où la table est créée
boto3.setup_default_session(region_name='us-east-2')
# Initialiser DynamoDBChatMessageHistory
session_id = channel_name # Utiliser channel_name comme ID de session
history = DynamoDBChatMessageHistory(table_name="SessionTable", session_id=session_id)Configurer la mémoire conversationnelle
Intégrez l'historique des messages de chat dans la mémoire conversationnelle de l'agent :
conversational_memory = ConversationBufferWindowMemory(
memory_key='chat_history',
k=10,
return_messages=True,
input_key='input',
output_key='output',
chat_memory=history
)Finaliser l'agent
ReACT est un framework où les LLMs combinent raisonnement et actions. Créez l'agent ReACT et l'exécuteur d'agent :
# LLM est l'agent NIM, avec le prompt ReACT et les outils définis
react_agent = create_react_agent(
llm=llm,
tools=tools,
prompt=prompt
)
# Connexion à la BD pour la mémoire, ajout de l'agent react et exécuteur adapté pour Slack
agent_executor = AgentExecutor(
agent=react_agent,
tools=tools,
verbose=True,
handle_parsing_errors=True,
return_intermediate_steps=True,
memory=conversational_memory
)Sauvegarder les interactions dans Amazon Aurora PostgreSQL
Sauvegardez l'interaction dans une fonction prédéfinie pour la base de données Amazon Aurora PostgreSQL :
save_conversation(user_id, thread_id, channel_name, message_text, result)
return resultConclusion
Les agents IA transforment les applications d'entreprise en automatisant les tâches, optimisant les processus et augmentant la productivité. Les microservices NVIDIA NIM offrent un moyen fluide d'intégrer plusieurs agents et outils, permettant aux entreprises de créer des solutions sur mesure pilotées par l'IA.
Référence :
- Auteur : Xhoni Shollaj
- Source : NVIDIA Developer Blog
Discutez de votre projet avec nous
Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.
Trouvons les meilleures solutions pour vos besoins.
Articles connexes

Guide de l'API Template HeyGen
Un guide complet pour utiliser l'API Template de HeyGen avec JavaScript, incluant des instructions etape par etape et des exemples de code.

Comment ouvrir un compte professionnel Flouci gratuit pour les auto-entrepreneurs en Tunisie
Un guide étape par étape sur la façon dont les auto-entrepreneurs et professionnels en Tunisie peuvent ouvrir un compte bancaire professionnel Flouci gratuit.

5 Les Bases de Laravel 11 : Controllers
Un guide informatif sur les bases des controllers dans Laravel 11, adapte aux developpeurs de tous niveaux.