Intégrer des bots similaires à GPT3 ?

Personnes,

Je vois qu’il y a quelques sujets intéressants sur l’intégration de bots à différents niveaux dans Discourse, mais je n’ai vu aucun sujet sur l’intégration des grands bots d’IA à mémoire étendue comme GPT-3, BlenderBot, etc. Quelqu’un y a-t-il pensé ? ou même fait des progrès dans la mise en œuvre de l’idée ?

Je pense à configurer une autre instance de Discourse avec l’un des grands bots d’IA comme utilisateur ordinaire sur le système qui participe comme tout autre utilisateur humain - mais peut-être ne répond que lorsqu’un message lui est spécifiquement adressé ou lorsque son nom d’utilisateur est mentionné dans un message.

Avant de me lancer à nouveau avec une nouvelle instance, j’ai pensé que je pourrais d’abord obtenir quelques commentaires cette fois-ci. . .

Merci pour tout éclaircissement. .

12 « J'aime »

Oui, ce serait une expérience amusante.
J’ai aussi pensé à la possibilité de connecter quelque chose comme DialogFlow au plugin Chat.

Je n’ai pas de temps dédié immédiat pour cela, mais j’aimerais réfléchir et expérimenter un peu avec quelques personnes partageant les mêmes idées.

8 « J'aime »

Excellent ! Ma pensée actuelle est de pouvoir ajouter de nombreuses applications d’IA différentes à l’entité centrale au fil du temps - un peu de la même manière que le cerveau des mammifères / humains a évolué avec la duplication et la spécialisation…

Peut-être devrais-je créer l’instance Discourse pour commencer ?

4 « J'aime »

Peut-être que nous devrions commencer par une conception technique. À quel type d’API nous connectons-nous ? Avons-nous besoin d’un logiciel intermédiaire entre les deux systèmes ou un plugin qui appelle l’API GPT suffirait-il ?

6 « J'aime »

@RGJ,

J’ai vu les publications de Hubot auparavant - et j’ai pensé à expérimenter cette option comme exercice d’apprentissage avant de me lancer dans quelque chose nécessitant une réinvention de la roue - pensez-vous que ce serait utile ?

3 « J'aime »

Oui, absolument. Je serai absent pendant environ une semaine et après cela, je pourrai passer du temps à expérimenter. Je ne suis pas un grand fan de Node, je préférerais faire cela en Python, Ruby ou PHP. Mais faisons d’abord l’expérience de ceci.

3 « J'aime »

Ma préférence irait à Ruby !

Excellent ! - Je vais aussi voyager un peu mais je lirai de plus près avant de revenir. .

Merci !

3 « J'aime »

J’ai été largement absent d’Internet ces derniers mois et je suis revenu pour voir beaucoup d’enthousiasme autour de GPT-3. Cela m’a fait réfléchir à la façon dont il pourrait être appliqué à Discourse.

J’ai joué avec l’idée de créer un bot “assistant du personnel” utilisant OpenAI. Je le teste actuellement avec le modèle text-davinci-003. Je pense que la conception de base sera un webhook d’événement de publication Discourse pointant vers un serveur sur lequel la bibliothèque Python OpenAI est installée.

La première tâche sur laquelle je travaille est de faire en sorte que le bot renvoie des requêtes Data Explorer à partir de descriptions textuelles simples. Je n’ai pas encore essayé d’affiner un modèle, mais si des informations sur la structure de la base de données Discourse sont fournies avec l’invite de la requête, il renvoie des résultats étonnamment bons.

Il se pourrait que l’utilisation d’OpenAI pour ce genre de chose soit trop coûteuse, ou que les résultats ne soient pas assez précis pour être utilisés sur un site de production.

Je travaille juste sur cela pour le plaisir. L’autre chose évidente à examiner est la formation d’un bot de support client sur les réponses existantes d’un forum Discourse. Cela semble être un problème plus difficile (en termes de coût et de précision) que la simple mise en place d’un bot pour les utilisateurs du personnel.

13 « J'aime »

J’ai un cas d’utilisation différent (le bot DOIT se souvenir des conversations précédentes avec les membres de nos organisations à but non lucratif). J’ai fait quelques progrès la semaine dernière avec diverses versions de BlenderBot - je posterai plus ici où nous avons mis en place Discourse spécifiquement pour le projet :

https://forum.phirho.org

  • n’hésitez pas à vous joindre à nous !
3 « J'aime »

L’inscription est désactivée, nous avons besoin d’une invitation.

1 « J'aime »

Ah ! - désolé ! - vous n’êtes que la troisième personne. . Envoyez-moi un e-mail par message privé ?

1 « J'aime »

En fait, maintenant que j’y pense, il n’y a aucune raison pour que nous ne puissions pas avoir plus d’un bot opérant là-bas. .

1 « J'aime »

J’allais poser la même question, un bot ChatGPT pour que nous puissions poser des questions dans un chat ou un fil de discussion serait très utile. Voici un tutoriel pour l’exécuter dans une VM

3 « J'aime »

Très intelligent, incroyable et intéressant ! - mais cela ne peut pas faire ce dont j’ai besoin (mémoire inter-sessions) :

ChatGPT se souvient-il de ce qui s’est passé plus tôt dans la conversation ? | Centre d’aide OpenAI | https://help.openai.com/en/articles/6787051-does-chatgpt-remember-what-happened-earlier-in-the-conversation

3 « J'aime »

Je serais heureux d’avoir tort à ce sujet, mais si je comprends bien, ChatGPT ne se souvient que du texte de la dernière invite que vous lui avez envoyée. Vous pouvez tester cela dans le bac à sable OpenAI en démarrant une conversation, puis en cliquant sur le bouton « Afficher le code » après avoir soumis votre texte. Vous verrez que chaque fois que vous soumettez plus de texte, il est ajouté à l’invite :

prompt="La conversation suivante est avec un assistant IA. L'assistant est serviable, créatif, intelligent et très amical.\n\nHumain : Je teste juste pour voir comment l'invite est définie.\nIA : Bonjour ! Il semble que vous essayiez d'en savoir plus sur la façon de configurer les invites. Y a-t-il autre chose que je puisse faire pour vous aujourd'hui ?\nHumain : Si j'utilise la fonctionnalité de chat d'OpenAI sur ma propre application, dois-je continuer à mettre à jour l'invite chaque fois qu'un utilisateur pose une nouvelle question ? C'est certainement une bonne idée de garder vos invites à jour, car cela aidera à garantir que vos utilisateurs obtiennent les informations les plus pertinentes pour chaque question qu'ils posent. En fonction de la taille de votre application et de la complexité de vos conversations, vous voudrez peut-être mettre à jour vos invites régulièrement ou développer un système plus sophistiqué pour déterminer quand des mises à jour sont nécessaires. Faites-moi savoir s'il y a autre chose que je puisse faire pour vous."

Cela peut continuer jusqu’à ce que vous atteigniez la limite de 4000 jetons (~3k mots) mentionnée dans la documentation que vous avez liée. Notez que l’envoi de grandes invites peut coûter cher. Je pense que c’est actuellement 0,02 $ pour 1000 jetons avec le modèle Davinci.

Si ma compréhension est correcte, une application ou un plugin Discourse qui gère ChatGPT pour Discourse devrait ajouter chaque nouvelle question et réponse à l’invite. Il pourrait le faire jusqu’à atteindre 4k jetons (~3k mots). Si cette limite est dépassée, une erreur semble être renvoyée par OpenAI. Cette erreur devrait être gérée par l’application qui effectue les requêtes à OpenAI.

Une solution de contournement possible pour la limite de jetons serait de trouver un moyen d’extraire les détails clés d’une conversation, puis de mettre à jour l’invite uniquement avec ces détails. Il pourrait être possible de faire une requête au nom de l’utilisateur pour obtenir ces informations. Quelque chose comme :

Ces détails pourraient ensuite être enregistrés dans l’application qui effectue les requêtes à OpenAI et utilisés pour redémarrer la conversation ultérieurement.

Vous obtiendrez des réponses beaucoup plus définitives à ce sujet ici : https://community.openai.com/. C’est formidable de voir qu’ils utilisent Discourse pour leur communauté !

8 « J'aime »

Je pense que vous avez raison, mais le lien que j’ai fourni dit essentiellement que ChatGPT n’a PAS de mémoire inter-sessions . . ce dont j’ai besoin pour mon cas d’utilisation . .

3 « J'aime »

Lorsque vous interagissez avec chatGPT et que vous examinez les requêtes réseau, vous pouvez voir qu’un conversation_id est également fourni et envoyé au backend. Je pense que la documentation d’openai mentionne également cela.

Il pourrait donc y avoir plus de contexte que le prompt. :thinking:

3 « J'aime »

C’est assez facile à tester.

3 « J'aime »

C’est à cela que je faisais référence (et c’est essentiel pour mon cas d’utilisation) :

https://help.openai.com/en/articles/6787051-does-chatgpt-remember-what-happened-earlier-in-the-conversation

1 « J'aime »

Désolé, j’ai mal lu ce que vous avez dit.

3 « J'aime »