Conseils sur un bot de support pour un forum d'assistance technique (Discourse AI vs Discourse Chatbot)

Par caché, j’entends une catégorie qui n’est pas visible par la plupart des utilisateurs. Elle n’a pas besoin d’être cachée, mais avoir une catégorie avec uniquement les PDF à utiliser comme base de connaissances accessible par RAG pourrait être encombrée par d’autres utilisateurs.

J’ai utilisé les PDF comme exemple car de nombreux manuels existent probablement déjà sous forme de PDF et j’ai noté de les cacher dans une catégorie car c’est plus facile à comprendre. Pour d’autres possibilités qui ne nécessiteraient pas de catégorie cachée, Langchain Retrieval est un bon point de départ.

Cela ne me pose aucun problème, cela permet de faire avancer l’idée de ce qui doit être fait dans la bonne direction.

Cependant, le mot assistant semble perdre du terrain dans certains contextes au profit du nouveau venu GPTs. Les GPTs semblent également remplacer les plugins ChatGPT, mais je n’ai pas utilisé de plugin ChatGPT depuis des mois, donc je ne le remarque pas vraiment, je ne vois que des discussions à ce sujet sur les forums.

1 « J'aime »

Mais attendez -

  • l’API Assistant et les GPTs n’ont-ils pas été introduits le même jour ?
  • un GPT n’est-il pas simplement un frontend plus convivial (pour l’utilisateur final) et sans code pour un Assistant, qui n’a pas la possibilité d’être appelé via une API ?
2 « J'aime »

Oui

https://platform.openai.com/docs/assistants/overview

Étiez-vous là ? Je n’y étais pas.

Je sais qu’un membre du personnel de Discourse y était.

Je dois être honnête. Je n’en savais pas assez pour répondre, alors j’ai regardé cette vidéo.

En ce qui concerne Assistant, il semble que les GPT vous offrent

  • Navigation Web
  • Génération d’images DALL*E
  • Interpréteur de code

Je suis d’accord avec la plupart de ce que vous avez noté.

Ayant également beaucoup appris sur les GPT en regardant la vidéo, je dirai que c’est impressionnant, mais que cela ne répondra toujours pas aux besoins de la plupart des gens, bien qu’il y ait des progrès. Il était également intéressant de voir du JSON identique/similaire aux plugins ChatGPT.

Concernant ce sujet, je noterai que beaucoup sur le forum OpenAI essaient de télécharger des fichiers pour les utiliser avec RAG et découvrent rapidement qu’il y a une limite de 10 fichiers. Un lien vers le GPT peut également être partagé, mais l’autre utilisateur doit également être un abonné ChatGPT Plus, donc c’est très probablement une option sans issue pour de nombreuses entreprises commerciales.

1 « J'aime »

L’API d’Assistant d’OpenAI est encore à ses débuts et est effectivement en préversion :

  • Il est rapporté qu’elle est d’un coût prohibitif (elle remplit le contexte disponible à chaque itération, qu’elle en ait besoin ou non, et vous payez pour cela, que vous en ayez besoin ou non).
  • Elle souffre apparemment d’un problème de « boucle infinie » où elle se retrouve occasionnellement à itérer indéfiniment. C’est un problème surprenant étant donné l’expertise apparente de l’entreprise, car il est très simple de concevoir une atténuation pour cela.

Je soupçonne qu’elle a besoin de plus de temps et qu’elle doit intégrer les retours des premiers utilisateurs.

En tant que simplification potentielle future pour les consommateurs en aval des services d’IA, comme Chatbot, je l’accueille favorablement.

Dans tous les cas, vous avez besoin d’une interface avec Discourse.

Chatbot offre déjà la même puissance que l’API d’Assistant sans aucun de ses problèmes et, en plus, fournit l’interface avec Discourse. Il est finalement indépendant des itérations d’API et évoluera avec les services disponibles, et il est très possible qu’il offre une option d’API d’Assistant à l’avenir, mais il n’y a actuellement aucun avantage à le faire car cela ne créera que des problèmes (y compris ceux décrits ci-dessus).

3 « J'aime »

Pas physiquement :confused:

20, mais oui, une quantité très limitée - qui peut être en quelque sorte contournée en ajoutant tous les fichiers dont vous avez besoin dans un seul gros fichier (ce qui devient vite assez cher)

et la grande surprise est que vous ne savez pas combien cela coûte avant plus tard…

Presque - l’API assistant a la capacité d’inclure des connaissances privées, personnalisées et externes à Discourse.

Heureux que ce ne soit pas juste moi :wink:

1 « J'aime »

En quoi est-ce différent de l’utilisation de données téléchargées sur Discourse ou de l’utilisation d’invites privées ?

Bien sûr, les données sont téléchargées sur leurs services.

Voir l’exemple ci-dessus : si vous avez des PDF contenant des manuels d’utilisation et qu’ils sont téléchargés sur Discourse, ils ne seront pas traités et indexés. Vous devrez les convertir en markdown. Ce n’est pas seulement fastidieux, mais cela impliquerait une automatisation et des conversions supplémentaires.

Qui vous oblige à télécharger en PDF ancien ?

On pourrait imaginer qu’il serait préférable de convertir une fois et de pouvoir modifier localement.

Quoi qu’il en soit, restez à l’écoute, d’autres nouveautés arrivent dans ce domaine pour Chatbot…

1 « J'aime »

La réalité peut-être ?
La vérité est que la plupart des connaissances du domaine ne sont pas facilement disponibles en markdown.

Encore une fois, prenez l’exemple donné ci-dessus. Ils ont de beaux manuels d’utilisation en PDF qui sont créés par une division entièrement différente. Convertir une fois et modifier localement ne fonctionnera pas.

:fire: :fire:

1 « J'aime »

Une PR pour un lecteur PDF est la bienvenue Richard !

Mais je soupçonne que la capacité markdown est plus que suffisante pour le moment.

Retour à Eric

Nous attendrons simplement que les assistants deviennent un peu moins chers. Et oui, en attendant, le markdown fonctionnera très bien !

1 « J'aime »

Content que d’autres se joignent à cela et j’espère que cela sera bénéfique pour Ryan.

Peut-être que @37Rb (Ryan) peut fournir plus d’informations.

  1. Prévoyez-vous d’utiliser des manuels pour l’utilisation avec RAG pour un bot d’IA Discourse sur le site Discourse ?
    a. Quel est le format actuel de ces manuels ? Copie papier, PDF, site Web, autre ?
    b. À quelle fréquence la base de connaissances sera-t-elle mise à jour avec de nouveaux manuels ou de nouvelles versions ?
    c. Les manuels seront-ils rendus publics sur le site ?
  2. Quelles autres informations, outre le forum Discourse, pourraient être utiles à une IA pour répondre sur le site de support ?
  3. Lors de la création d’un bot d’IA Discourse, prévoyez-vous d’autres besoins pour le bot ? Je pose cette question car si vous lisez l’historique de la création du bot d’IA Discourse, vous verrez qu’il a subi de nombreux changements, qu’il n’était pas le bot parfait lors des premières créations et qu’il continue de subir de nombreux changements.
  4. Pouvez-vous créer quelques exemples de la façon dont vous envisagez l’utilisation du bot ou des agents ? Par exemple, montrez quelques cas différents d’un utilisateur discutant avec le bot.
    Notez que j’utilise le mot agent de manière similaire à un agent Langchain et non à confondre avec un assistant OpenAI.
2 « J'aime »

Qu’est-ce que cela signifie ?

Informations non publiques que seul le bot voit directement (mais qui affectent ultimement la façon dont il communique avec l’utilisateur)

@37Rb

J’ai eu une idée maintenant que j’ai vu OpenAI GPT être créé dans une démo YouTube.

Vous pourriez créer un OpenAI GPT, qui nécessite un abonnement ChatGPT Plus et probablement un accès après avoir été sur une liste d’attente, similaire à ce que vous cherchez à apprendre sur les avantages et les inconvénients d’une telle technologie et qui peut être exploité pour créer un bot Discourse AI. Je ne vous suggère pas de créer le bot, mais vous auriez une meilleure compréhension de ce que l’IA peut faire et où elle échouera lamentablement.

2 « J'aime »

Oui.

PDF ou HTML (hébergé en ligne), mais je suis prêt à les convertir en texte/markdown et à les conserver sous forme de publications Discourse. Nous pouvons écrire un script pour faciliter cela.

Les manuels de produits ne seront pas mis à jour fréquemment, mais d’autres contenus de la base de connaissances le seront. Les FAQ, les problèmes fréquents/tendances, etc., seraient mis à jour plus souvent. Nous publions autant que possible publiquement, mais il serait logique de garder certaines informations privées - non pas parce qu’il s’agit d’informations sensibles, mais parce qu’elles pourraient paraître étranges et confuses en tant que publication publique.

Oui, les manuels officiels des produits sont généralement des PDF. Par exemple…

Pour l’instant, probablement rien. Il y a trop de risques à la laisser chercher sur Internet et obtenir des résultats qui ne sont pas vrais pour nous.

À l’avenir, je pourrais voir l’utilité de donner au bot un contexte supplémentaire sur le système de sécurité du client, mais cela pourrait ne jamais être possible en raison de problèmes de confidentialité.

Il me semble que, puisque tout est basé sur RAG, le plus important est de nous donner un contrôle précis sur la façon dont le bot recherche dans le forum et interroge l’IA. D’après ce que j’ai lu, il semble que le Discourse Chatbot de merefield le fasse mieux aujourd’hui. J’espère tester cette théorie cette semaine.

Pour nous, il s’agit toujours de fournir un support utilisateur/client en répondant à leurs questions ou en résolvant leurs problèmes. Par exemple :

  1. Les aider à déterminer quoi acheter pour sécuriser leur maison spécifique, en tenant parfois compte de l’équipement de sécurité domestique qu’ils possèdent déjà.
  2. Les aider à installer et à utiliser leur système.
  3. Les aider à résoudre les problèmes qu’ils rencontrent.
  4. Répondre à leurs questions de curiosité sur le fonctionnement des choses, sur ce qui pourrait être disponible à l’avenir, etc.

Les meilleurs exemples sont ceux publiés chaque jour et auxquels notre équipe de support (ou parfois des membres de la communauté) répond.

4 « J'aime »

Merci !

Je sais que ce n’est qu’un simple lien pour vous à partager, mais pour beaucoup d’autres qui suivent vos pas pour obtenir un site de support où un bot IA répond et permet aux autres de voir les échanges d’idées dans un forum public, c’est de pointe. Je sais que les entreprises le font en privé, mais vous le faites publiquement. :slightly_smiling_face:

J’ai également été heureux de voir les diagrammes, car cela a réaffirmé ce que je pensais être correct.

Je ne ferais pas cela.

Le bot ne recherchera pas réellement dans le forum de la même manière que le texte est recherché dans les publications. Les mots-clés et la technologie connexe que vous devez apprendre pour cela sont Base de données vectorielle et Recherche du plus proche voisin.

Pour voir des exemples de code de ce type d’utilisation, consultez

Je vous souhaite le meilleur pour cela !

1 « J'aime »

Normalement, je ne recommanderais pas un produit payant, cependant, il y a des années, j’ai découvert

en répondant à cette question question de StackExchange.

J’ai utilisé la version gratuite en ligne à quelques reprises et, comme je l’ai noté dans ma réponse, je n’ai rien vu d’aussi bon et j’ai beaucoup cherché au fil des ans des moyens d’extraire du texte et d’autres informations d’un PDF.

Je souhaite ajouter quelques informations supplémentaires à ce sujet, car certains pourraient penser que la référence (nom du manuel, date de publication, section et paragraphe) fait partie des informations utilisées avec RAG et je ne l’avais pas envisagé de cette façon et je n’avais pas donné certains des détails nécessaires. J’avais envisagé d’utiliser des métadonnées ; pour moi, les données et les métadonnées ont des significations et des utilisations très différentes.

Lorsque j’ai interrogé ChatGPT à ce sujet, il a donné une réponse qui allait dans le sens de ce que j’imaginais, mais avec quelques précisions supplémentaires comme Elasticsearch.

Prompt

Comment peut-on utiliser RAG (Retrieval Augmented Generation) avec un manuel PDF pour un produit et obtenir le titre, la date de publication, la page et le numéro de paragraphe du manuel comme référence avec les informations notées ?

Complétion

L’utilisation de la génération augmentée par récupération (RAG) avec un manuel PDF pour extraire des informations spécifiques telles que le titre, la date de publication, la page et le numéro de paragraphe implique plusieurs étapes. RAG, développé par Facebook AI, combine la puissance de la récupération (extraction de documents ou de données pertinents) avec la génération de langage, permettant au modèle de référencer et d’incorporer des connaissances externes. Voici une approche générale pour utiliser RAG avec un manuel PDF :

  1. Convertir le manuel PDF en format texte :

    • Tout d’abord, vous devez convertir le manuel PDF en un format texte qui peut être traité. Des outils tels qu’Adobe Acrobat, pdftotext (qui fait partie du projet Xpdf) ou des bibliothèques Python comme PyPDF2 ou PDFMiner peuvent être utilisés à cette fin.
  2. Prétraiter le texte :

    • Une fois que vous avez le texte, vous devrez peut-être le prétraiter. Cela comprend la suppression du formatage inutile, la gestion des caractères spéciaux et éventuellement la segmentation du texte en sections, pages et paragraphes avec des marqueurs identifiables.
  3. Indexer le manuel :

    • Pour que RAG fonctionne efficacement, le contenu du manuel doit être indexé. Cela signifie créer une base de données ou un format structuré où chaque élément d’information (comme un paragraphe ou une section) est stocké avec ses métadonnées correspondantes (numéro de page, numéro de paragraphe, etc.). Elasticsearch ou un moteur de recherche similaire peut être utilisé à cette fin.
  4. Intégrer RAG :

    • Avec votre manuel indexé, vous pouvez maintenant intégrer RAG. RAG combine généralement un modèle de langage basé sur des transformeurs (comme BERT ou RoBERTa) pour la récupération et un modèle séquence à séquence (comme BART ou T5) pour la génération. Vous devrez configurer RAG pour interroger votre manuel indexé. Cela peut impliquer de personnaliser le composant de récupération pour qu’il fonctionne avec votre moteur de recherche.
  5. Interroger le système :

    • Lorsque vous interrogez le système RAG, le composant de récupération trouve d’abord les sections les plus pertinentes du manuel en fonction de votre requête. Ces informations sont ensuite transmises au composant de génération, qui formule une réponse.
  6. Extraire les informations de référence :

    • Pour obtenir le titre, la date de publication, la page et le numéro de paragraphe, vous devrez vous assurer que ces détails sont inclus dans les segments récupérés ou que le système peut référencer les données indexées pour récupérer ces métadonnées. Cela peut nécessiter une logique supplémentaire dans votre système.
  7. Post-traitement des références :

    • Une fois la réponse générée, vous devrez peut-être effectuer une étape de post-traitement pour formater correctement les références, en veillant à ce que le titre, la date de publication, la page et le numéro de paragraphe soient inclus avec précision.
  8. Ajustement et évaluation :

    • En fonction de vos exigences spécifiques et de la complexité du manuel, vous devrez peut-être affiner le modèle RAG sur des types de documents ou des requêtes similaires. Évaluez les performances du système et ajustez votre approche si nécessaire.
  9. Intégration avec l’interface utilisateur :

    • Enfin, si ce système est destiné aux utilisateurs finaux, intégrez-le à une interface conviviale où les utilisateurs peuvent saisir des requêtes et recevoir des réponses avec les informations référencées.

N’oubliez pas que l’efficacité de cette approche dépend fortement de la qualité des données indexées, des capacités du modèle de récupération et de la manière dont le modèle de génération a été entraîné ou affiné pour votre cas d’utilisation spécifique.


Note : Bien que j’utilise ChatGPT pour générer des informations, je ne publie pas d’informations provenant de ChatGPT si je pense qu’elles sont erronées. En d’autres termes, ChatGPT peut être utile, mais vous devez savoir si les informations fournies sont correctes ou non. Bien que je n’aie pas implémenté exactement ce que ChatGPT note ici, j’ai suffisamment d’expérience avec cela pour utiliser ceci ou une de ses variantes.

2 « J'aime »

J’ai mis en place un forum de test pour chaque plugin, Discourse AI et Discourse Chatbot.

Le plugin Discourse Chatbot comporte une étape où vous créez les embeddings qui utilise l’API d’embeddings d’OpenAI. Le plugin Discourse AI ne semble pas faire cela (il n’a montré aucune activité d’embeddings sur le tableau de bord OpenAI) mais il trouve toujours des posts sur notre forum. S’il ne génère pas d’embeddings pour rechercher sémantiquement, comment le plugin Discourse AI recherche-t-il sur le forum ? Utilise-t-il la recherche textuelle classique ? Calcule-t-il ses propres embeddings ?

1 « J'aime »