Tutoriel

Créez votre propre chatbot RAG Discord puissant en 10 minutes

Découvrez comment créer un chatbot Discord personnalisé à l'aide de RAG pour fournir une assistance instantanée et fiable. Notre chatbot aide les utilisateurs à intégrer et à dépanner les fonctionnalités d'Eden AI, améliorant ainsi la collaboration au sein de notre communauté. Découvrez comment RAG améliore sa capacité à répondre à des questions complexes concernant vos propres données et à améliorer l'expérience utilisateur !

Créez votre propre chatbot RAG Discord puissant en 10 minutes
TABLE DES MATIÈRES

Qu'est-ce que RAG et pourquoi l'utiliser ?

Génération augmentée par récupération (RAG) est une technique d'IA révolutionnaire qui combine la récupération (récupération de documents pertinents) et la génération (sortie LLM) pour améliorer la précision des réponses. Contrairement aux chatbots traditionnels qui s'appuient uniquement sur des règles prédéfinies ou des connaissances générales en matière d'IA, RAG permet au chatbot de :

  • Fournissez des réponses précises et contextuelles en faisant référence à des sources externes.
  • Gérez les requêtes spécifiques des utilisateurs à l'aide des connaissances issues de la documentation.
  • Améliorez le support client en réduisant le recours à l'intervention humaine.
  • Proposez des recommandations personnalisées en fonction des données récupérées.

Pourquoi utiliser un chatbot Discord ?

Les chatbots Discord sont essentiels pour automatiser les interactions, fournir une assistance instantanée et améliorer l'engagement des utilisateurs au sein des communautés. Ils servent à diverses fins, notamment en répondant aux questions fréquemment posées, en aidant au dépannage, en gérant la modération des serveurs et même en proposant des recommandations personnalisées. Pour les entreprises et les développeurs, un chatbot bien intégré garantit aux utilisateurs de recevoir des informations précises et en temps opportun sans intervention humaine. En tirant parti des chatbots alimentés par l'IA, les communautés Discord peuvent créer un environnement plus interactif et plus efficace, améliorant à la fois l'expérience utilisateur et l'efficacité opérationnelle.

Applications concrètes de RAG dans les chatbots

Au-delà de Discord, les chatbots alimentés par RAG peuvent être utilisés pour :

  • Réponse aux questions — Fournir des réponses précises en extrayant des données de la documentation ou des bases de connaissances.
  • Assistance à la clientèle — Automatiser les FAQ et résoudre rapidement les problèmes des utilisateurs.
  • Recommandations personnalisées — Suggérer du contenu ou des produits pertinents en fonction des demandes des utilisateurs.
  • Assistance technique — Aider les développeurs à résoudre efficacement les problèmes d'intégrations d'API.

Discord Chabot RAG d'Eden AI

Chez Eden AI, nous avons utilisé RAG pour créer un chatbot Discord personnalisé qui aide les utilisateurs en répondant à leurs questions en utilisant notre documentation et nos connaissances antérieures en matière de LLM.

Ce chatbot est conçu pour aider les utilisateurs qui souhaitent intégrer et utiliser les fonctionnalités d'Eden AI mais rencontrent des difficultés en cours de route. En intégrant RAG, notre chatbot Discord garantit aux utilisateurs des réponses fiables et détaillées à leurs questions concernant les fonctionnalités, les API et les intégrations d'Eden AI.

Le serveur Discord d'Eden AI est un espace dédié où les développeurs, les entreprises et les passionnés d'IA peuvent collaborer, demander de l'aide et partager des informations sur les outils alimentés par l'IA. Notre chatbot améliore cette expérience en fournissant une assistance instantanée, en guidant les utilisateurs dans la résolution des problèmes et en répondant aux questions courantes concernant notre plateforme.

Dans cet article, nous allons vous expliquer notre processus de développement facile à suivre et comment RAG améliore les fonctionnalités des chatbots.

Aperçu du processus de développement

1. Configuration du projet RAG

Pour créer le chatbot, la première étape a consisté à créer un projet RAG avec les composants nécessaires :

  • Choisir un LLM — Nous avons spécifié le grand modèle de langage à utiliser pour générer des réponses.
  • Sélection d'un fournisseur d'intégration — Les intégrations représentent à la fois la requête de l'utilisateur et les informations récupérées dans un format vectoriel, ce qui permet de faire correspondre plus facilement le contenu pertinent.
  • Choix d'une base de données vectorielles — Cette base de données stocke et récupère les documents en fonction de leur similitude, permettant au chatbot de trouver efficacement les informations les plus pertinentes

Les IA d'Eden Fonctionnalité RAG rend la création de projets RAG facile et efficace. Voici comment cela fonctionne :

  • Téléchargez vos données et testez-les avec différents LLM, le tout en un seul endroit.
  • Pas besoin de vous soucier de configurer des bases de données vectorielles ou des LLMS, nous nous en occupons pour vous.
  • Vous pouvez ajuster les paramètres RAG et créer des conversations, le tout directement dans l'application Web (aucun codage n'est requis).
  • Utilisez votre RAG directement dans l'application Web ou interagissez avec celui-ci via notre API.

Pour plus de détails, consultez :

📌 Notre documentation: Documentation sur l'IA Eden

📌 Référentiel GitHub : Chatbot Eden AI RAG

2. Téléchargement des données souhaitées vers le chatbot

Puisque notre chatbot devait aider les utilisateurs à utiliser les fonctionnalités d'Eden AI, nous souhaitons qu'il utilise :

  • Documentation d'Eden AI pour fournir un contexte sur les fonctionnalités d'Eden AI.
  • Demandes et FAQ précédentes des utilisateurs fournir des exemples afin d'optimiser la précision et la pertinence.

Testez et jouez avec différents paramètres.

3. Intégrer le chatbot à Discord

Après avoir configuré le projet RAG, l'étape suivante a consisté à utiliser le chatbot sur Discorde. Le processus d'intégration comprenait :

  • Création d'un bot Discord et en le connectant au serveur.
  • Configuration des appels d'API au système RAG d'Eden AI pour récupérer les informations pertinentes.

En seulement deux étapes, le chatbot était opérationnel et prêt à aider les utilisateurs directement dans Discord.

Tutoriel étape par étape facile

Étape 1 Configurez votre projet RAG

1. Inscrivez-vous sur Eden AI 

Inscrivez-vous et accédez à notre fonctionnalité de chatbot personnalisé :

2. Créer un nouveau projet

Commencez par créer un nouveau projet à partir de zéro et attribuez-lui un nom.

Étape 2 Configurez votre environnement RAG

Choisissez parmi les nombreux outils d'Eden AI liste des meilleurs modèles et fournisseurs.

Spécifiez ensuite facilement vos configurations : ajustez les paramètres, définissez vos préférences et gérez tout ce dont vous avez besoin, le tout en un seul endroit pour une configuration fluide et efficace.

Étape 3 Téléchargez et testez vos données

L'étape suivante consiste à télécharger vos données dans le projet RAG

Nous simplifions le processus en vous permettant de télécharger des fichiers, du contenu textuel ou des URL (y compris les sites Web nécessitant un rendu JavaScript, comme les SPA).

Étape 4 Entraînez votre chatbot et optimisez vos données

Vous pouvez ensuite interroger votre base de données et interagir avec vos données à l'aide de différents modèles LLM directement dans l'application Web, ce qui facilite le test et le débogage de votre RAG.

Personnalisez l'extraction de blocs de données à l'aide de paramètres tels que le nombre de blocs ou le score minimum, et testez différentes instructions et requêtes du système.

Une fois que vous avez affiné vos paramètres, vous pouvez appliquer votre RAG à votre cas d'utilisation. Dans ce cas, nous avons intégré le SDK Discord en Python pour répondre aux questions des utilisateurs concernant notre plateforme.

Étape 5 Intégrez votre chatbot à Discord

1 : Créer une application Discord Bot

Pour interagir avec l'API de Discord, vous devez créer une application et y associer un bot.

1. Accédez au portail des développeurs Discord et connectez-vous.

2. Cliquez « Nouvelle demande », donnez-lui un nom et confirmez.

Dans la barre latérale gauche, cliquez sur « Robot », puis « Ajouter un bot », et confirmez.

3. Copier « Numéro de l'application » (vous en aurez besoin plus tard)

4. Cliquez « Réinitialiser le jeton » pour générer un nouveau jeton.

5. Copiez le jeton du bot et stockez-le en toute sécurité : ce jeton vous permet de contrôler votre bot par programmation.
⚠️ Important : Ne partagez jamais votre jeton de bot publiquement.

6. Activer »Intention du contenu du message »

2 : Invitez le bot sur votre serveur Discord

Une fois le bot créé, vous devez générer un lien d'invitation pour l'ajouter à un serveur.

  1. Accédez au « OAuth2 » → « Générateur d'URL » section de votre candidature.
  2. En dessous oscilloscopes, cochez la case correspondant au bot.
  3. En dessous Autorisations pour les robots, sélectionnez ce que votre bot doit être autorisé à faire, par exemple :
    • Envoyer des messages
    • Lire l'historique des messages
    • Gérer les messages (facultatif, pour plus de contrôle)
  4. Copiez l'URL générée au bas de la page.
  5. Ouvrez le lien dans votre navigateur, sélectionnez votre serveur et cliquez sur « Autoriser ».

Vous devriez maintenant voir le bot (hors ligne) dans la liste des membres de votre serveur.

Étape 6 Connectez votre système RAG à Discord

1. Choisissez un langage de programmation et sécurisez vos informations d'identification

Maintenant que votre bot est créé et ajouté à votre serveur, il est temps de commencer à coder.

Discord fournit des SDK (également appelés bibliothèques ou wrappers) dans plusieurs langages de programmation :

  • JavaScript ou TypeScript → discord.js
  • Python → discord.py
  • Rust, Java, Go et autres via des bibliothèques soutenues par la communauté

Dans ce guide, nous utiliserons Python avec la bibliothèque discord.py, car elle est simple, largement prise en charge et adaptée aux débutants.

2. Protégez votre jeton de bot

Votre jeton de bot est comme un mot de passe : si quelqu'un y accède, il peut prendre le contrôle total de votre bot.

N'écrivez jamais votre jeton directement dans votre code. Utilisez plutôt un fichier .env pour le stocker en toute sécurité.

Étapes à suivre pour sécuriser votre jeton :
  1. Créez un fichier nommé .env dans le dossier de votre projet.

  2. Dans le fichier .env, écrivez cette ligne (remplacez-la par votre jeton réel) :

    Discord_bot_token=Votre_actual_token_ici

  3. Installez le package python-dotenv pour charger les variables d'environnement :

    pip installe python-dotenv

  4. Dans votre script Python, utilisez le code suivant pour charger le jeton :

import discord
from discord.ext import commands
import os
from dotenv import load_dotenv

load_dotenv()
TOKEN = os.getenv("DISCORD_BOT_TOKEN")

intents = discord.Intents.default()
intents.messages = True
intents.message_content = True

bot = commands.Bot(command_prefix="!", intents=intents)

@bot.command()
async def ping(ctx):
    latency = round(bot.latency * 1000)  # in milliseconds
    await ctx.send(f"Pong! Latency: {latency}ms")

bot.run(TOKEN)

À ce stade, vous devriez disposer d'un bot simple mais fonctionnel.

Étape 7 Utilisez votre RAG avec Discord

Maintenant, pour utiliser votre RAG avec le bot Discord, vous pouvez mettre votre clé API Eden AI et votre projet rag dans le fichier .env.

Créez une petite fonction d'assistance pour appeler votre chiffon personnalisé

import os
from dotenv import load_dotenv
import requests
load_dotenv()


MAX_TOKENS = 200
TIMEOUT = 60.0
LLM_SETTINGS = {
    "llm_provider": "google",
    "llm_model": "gemini-2.0-flash",
    "max_tokens": MAX_TOKENS,
    "k": 6,
    "min_score": 0.6,
}
SYSTEM_PROMPT = """You are a helpful Discord bot that answers questions and provides information to users."""


def ask_llm(query: str) -> str:
    url = f"https://api.edenai.run/v2/aiproducts/askyoda/v2/"\
{os.getenv('RAG_PROJECT_ID')}/ask_llm"
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + os.getenv("API_KEY"),
    }
    payload = {
        **LLM_SETTINGS,
        "query": query,
        "chatbot_global_action": SYSTEM_PROMPT,
    }
    response = requests.post(url, headers=headers,
                             json=payload, timeout=TIMEOUT)
    data = response.json()
    response.raise_for_status()

    return data["result"]

Créez une nouvelle commande pour répondre aux messages de votre utilisateur :


@bot.command()
async def ask(ctx, *, query: str):
    response = ask_llm(query)
    await ctx.send(response)

Et c'est ainsi que vous disposez désormais d'un chatbot personnalisé prêt à répondre aux questions de vos utilisateurs !

Vous pouvez désormais améliorer votre bot en affinant l'invite de son système pour répondre exclusivement aux demandes liées à l'entreprise, en expérimentant différents modèles, en améliorant la gestion des erreurs et en étendant les fonctionnalités. Par exemple, vous pouvez introduire des fonctionnalités telles que l'affichage d'un indicateur « saisie... » lorsque les utilisateurs posent une question ou l'activation de la prise en charge des images.

Étape 8 Suivi des performances des bots et résolution des problèmes

L'observabilité consiste à suivre ce qui se passe dans votre système à l'aide de données telles que les journaux, les métriques et les traces. Il vous aide à identifier les problèmes, à suivre les performances et à vous assurer que tout fonctionne correctement.

Nous appliquerons cette fonctionnalité à notre projet pour suivre les réponses de notre système RAG et évaluer ses performances. Pour ce faire, nous utiliserons Phoenix.

  1. Accédez à Phénix, créez un compte et obtenez votre variable d'environnement.
  2. Copiez la variable d'environnement dans votre fichier .env.

Voici un exemple de ce à quoi devrait ressembler votre fichier .env à ce stade :


RAG_PROJECT_ID=
API_KEY=
DISCORD_BOT_TOKEN=
PHEONIX_API_TOKEN=
PHOENIX_COLLECTOR_ENDPOINT=
PHOENIX_CLIENT_HEADERS=api_key=

Enregistrez votre projet Phoenix pour commencer à suivre vos appels


tracer_provider = register(
    project_name="discord-bot",
    endpoint=os.getenv("PHOENIX_COLLECTOR_ENDPOINT") + "/v1/traces",
    protocol="http/protobuf",
)

instrumenting_module_name = "rag.ask_llm"

Pour commencer à suivre vos appels, importez d'abord les dépendances nécessaires :


from phoenix_setup import tracer_provider, instrumenting_module_name
from openinference.semconv.trace import SpanAttributes, OpenInferenceMimeTypeValues
from openinference.instrumentation.config import OpenInferenceSpan, TracerProvider
from opentelemetry.trace import StatusCode, Status


Ensuite, modifiez votre fonction ask llm pour activer le suivi des résultats :

def ask_llm(query: str) -> str:
    url = f"https://api.edenai.run/v2/aiproducts/askyoda/v2/"\
{os.getenv('RAG_PROJECT_ID')}/ask_llm"
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + os.getenv("API_KEY"),
    }
    payload = {
        **LLM_SETTINGS,
        "query": query,
        "chatbot_global_action": SYSTEM_PROMPT,
    }
    with tracer_provider.get_tracer(
        instrumenting_module_name=instrumenting_module_name
    ).start_as_current_span("ask_llm") as span:
        try:
            response = requests.post(
                url, headers=headers, json=payload, timeout=TIMEOUT
            )
            data = response.json()
            response.raise_for_status()

            span.set_status(Status(StatusCode.OK))

            span.set_attribute(
                SpanAttributes.INPUT_VALUE,
                query,
            )

            span.set_attribute(
                SpanAttributes.LLM_INPUT_MESSAGES,
                format_input_messages(SYSTEM_PROMPT, query),
            )

            span.set_attribute(SpanAttributes.OPENINFERENCE_SPAN_KIND, "llm")

            span.set_attribute(
                SpanAttributes.OUTPUT_VALUE,
                data["result"],
            )

            span.set_attribute(
                SpanAttributes.LLM_OUTPUT_MESSAGES,
                format_output_messages(data["result"]),
            )
            span.set_attributes(
                {
                    SpanAttributes.LLM_PROVIDER: LLM_SETTINGS["llm_provider"],
                    SpanAttributes.LLM_MODEL_NAME: LLM_SETTINGS["llm_model"],
                    SpanAttributes.LLM_INVOCATION_PARAMETERS: json.dumps(LLM_SETTINGS),
                    SpanAttributes.LLM_SYSTEM: "RAG",
                }
            )

            return data["result"]
        except Exception as e:
            span.set_status(Status(StatusCode.ERROR, str(e)))
            span.record_exception(e)
            raise

Vous devriez maintenant pouvoir voir vos traces sur l'application Web de Phoenix.

Difficultés

  • Limites relatives aux grattoirs: Notre scraper initial ne prenait pas en charge le rendu JavaScript, ce qui limitait l'extraction du contenu chargé dynamiquement.
  • Filtrage de pertinence: les utilisateurs pouvaient répondre à des sujets sans rapport, ce qui conduirait à des discussions hors sujet ou non pertinentes.
  • Garantir la précision contextuelle: Le LLM devait recevoir uniquement les segments pertinents liés à une requête donnée tout en évitant les données non pertinentes.
  • Optimisation de la taille des morceaux: Au lieu de petits fragments, nous avons cherché à ce que chaque segment englobe un point de terminaison d'API complet, fournissant ainsi un contexte plus complet par extraction.

En utilisant cette fonctionnalité en tant qu'utilisateurs réguliers, plutôt que simplement en tant que développeurs, nous avons obtenu des informations précieuses sur ses points faibles et avons pu affiner le système pour une expérience utilisateur plus fluide.

Cette approche pratique nous a permis de relever les défis et d'optimiser les fonctionnalités globales pour tous les utilisateurs.

  • Filtrage des requêtes amélioré: Des filtres ont été mis en place pour affiner les segments récupérés pour chaque requête.
  • Prise en charge de JavaScript dans le Scraper: mise à niveau du scraper pour prendre en charge le rendu JavaScript, garantissant ainsi l'extraction du contenu dynamique.
  • Meilleure gestion des instructions LLM: Au lieu d'utiliser prompt, des instructions au niveau du système ont été placées dans system_prompt pour éviter d'interférer avec les requêtes des utilisateurs.
  • Notation dynamique de pertinence: introduction d'un paramètre min_score pour exclure dynamiquement les segments peu pertinents, garantissant ainsi que le processus de récupération s'adapte en fonction de la complexité de la question.

Meilleures pratiques pour surveiller les performances du LLM

Pour maintenir la qualité et garantir que le bot récupère les bonnes informations, nous avons adopté un LLM en tant que juge approche. Cette méthode permet d'évaluer si les segments récupérés sont pertinents et si les réponses correspondent aux attentes. Cette surveillance continue permet d'affiner le système pour une meilleure précision et une meilleure expérience utilisateur.

Conclusion

En tirant parti de la génération augmentée par extraction, nous avons créé un puissant chatbot Discord personnalisé chez Eden AI qui fournit des réponses instantanées et précises, améliorant ainsi considérablement l'expérience utilisateur.

Le chatbot extrait la documentation pertinente et les informations contextuelles pour répondre efficacement aux requêtes, réduisant ainsi le recours à l'assistance manuelle.

Grâce à ce processus, nous avons démontré comment RAG peut améliorer l'interaction avec les utilisateurs, de la configuration à l'intégration de Discord.

Cette approche améliore non seulement le support client, mais ouvre également de nouvelles possibilités de recommandations personnalisées et de dépannage technique.

Le potentiel de RAG pour transformer l'engagement des utilisateurs est clair. En suivant les étapes décrites dans cet article, vous pouvez implémenter RAG dans vos propres projets, en créant des robots réactifs et intelligents qui fournissent des réponses précises et contextuelles.

Start Your AI Journey Today

  • Access 100+ AI APIs in a single platform.
  • Compare and deploy AI models effortlessly.
  • Pay-as-you-go with no upfront fees.
Start building FREE

Articles connexes

Essayez Eden AI gratuitement.

Vous pouvez commencer à créer dès maintenant. Si vous avez des questions, n'hésitez pas à discuter avec nous !

CommencezContactez le service commercial
X

Commencez votre parcours IA dès aujourd'hui!

Inscrivez-vous dès maintenant avec des crédits gratuits pour explorer plus de 100 API d'IA.
Obtenir mes crédits maintenant