chatbot_support_vision
)*inscription aux services API externes (non affiliés) requise. Liens dans les paramètres.
Il existe deux modes :
Le mode RAG est très intelligent et connaît les faits publiés sur votre forum.
Le mode bot de base peut parfois commettre des erreurs, mais il est moins coûteux à exécuter car il effectue moins d'appels au Large Language Model :
Ce bot peut être utilisé dans les espaces publics de votre forum. Pour rendre le bot particulièrement utile, il existe le mode RAG (un paramètre par niveau de confiance du bot). Ceci n'est pas défini par défaut.
En mode RAG, le bot est, par défaut, régi par la définition d' chatbot embeddings strategy
(par défaut benchmark_user
) au courant de tout le contenu qu'un utilisateur de niveau de confiance 1 verrait. Ainsi, en cas d'interaction dans un sujet public, il est possible que le robot « divulgue » des informations si vous avez tendance à accéder au contenu au niveau de confiance 0 ou 1 via les autorisations de catégorie. Ce niveau a été choisi car, par expérience, la plupart des sites ne proposent généralement pas de contenu sensible à de faibles niveaux de confiance, mais cela dépend de vos besoins spécifiques.
Pour ce mode, assurez-vous d'avoir au moins un utilisateur avec le niveau de confiance 1 et aucune appartenance à un groupe supplémentaire au-delà des groupes automatisés. (gardez à l’esprit que le bot saura alors tout ce qu’un utilisateur de niveau TL1 saurait et pourra le partager). Vous pouvez choisir de réduire chatbot embeddings benchmark user trust level
si vous avez un utilisateur de niveau de confiance 0 sans appartenance à un groupe supplémentaire au-delà des groupes automatisés.
Alternativement :
chatbot embeddings strategy
vers category
et remplissez chatbot embeddings categories
avec les catégories que vous souhaitez que le bot connaisse. (Sachez que si vous ajoutez des catégories privées, il doit en être informé et tout ce que le bot dit en public, n'importe où, peut être divulgué à des utilisateurs moins privilégiés, alors soyez juste un peu prudent sur ce que vous ajoutez).basic
(mais le bot ne verra alors aucun message)Vous pouvez voir que cette configuration est un compromis. Afin de rendre le bot utile, il doit connaître le contenu de votre site. Actuellement, il n'est pas possible pour le bot de lire sélectivement le contenu réservé aux membres et de le partager uniquement avec les membres, ce que certains administrateurs pourraient trouver limitant, mais il n'y a aucun moyen de résoudre facilement ce problème pendant que le bot est capable de parler en public. Contactez-moi si vous avez des besoins particuliers et souhaitez sponsoriser des travaux dans cet espace. L'autorisation des robots avec recherche sémantique est un problème non trivial. Le système est actuellement optimisé pour la vitesse. NB Les messages privés ne sont jamais lus par le bot.
Si vous souhaitez que Chatbot soit informé du contenu de votre site, activez ce paramètre :
chatbot_embeddings_enabled
Uniquement nécessaire si vous souhaitez utiliser le bot de type RAG et vous assurer qu'il connaît le contenu de votre forum, pas seulement le sujet actuel.
Dans un premier temps, nous devons créer les intégrations pour toutes les publications concernées, afin que le bot puisse trouver des informations sur le forum. Cela se produit désormais en arrière-plan une fois ce paramètre activé et vous n'avez rien à faire.
Ce travail d'ensemencement peut prendre plusieurs jours pour les très grands sites.
Ceci est déterminé par plusieurs paramètres :
chatbot_embeddings_strategy
qui peut être "benchmark_user" ou "category"chatbot_embeddings_benchmark_user_trust_level
définit le niveau de confiance pertinent pour le premierchatbot_embeddings_categories
si la stratégie category
est définie, donne au bot l'accès pour prendre en compte toutes les publications de la catégorie spécifiée.Si vous modifiez ces paramètres, au fil du temps, la population d'incorporations évoluera.
Entrez le conteneur :
./launcher enter app
et exécutez la commande rake suivante :
rake chatbot:refresh_embeddings[1]
qui actuellement s'exécutera deux fois pour une raison inconnue (désolé ! n'hésitez pas à faire des relations publiques) mais le [1]
garantit que la deuxième fois, il n'ajoutera que les intégrations manquantes (c'est-à-dire aucune immédiatement après la première exécution), ce qui est donc quelque peu discutable.
Dans le cas peu probable où vous obtiendriez un débit limité par OpenAI (peu probable !), vous pouvez terminer les intégrations en procédant comme suit :
rake chatbot:refresh_embeddings[1,1]
qui comblera les manquants (donc rien de perdu à cause de l'erreur) mais continuera avec plus de prudence en mettant un délai d'une seconde entre chaque appel à Open AI.
Par rapport aux interactions avec les robots, les intégrations ne sont pas coûteuses à créer, mais surveillez dans tous les cas votre utilisation sur votre tableau de bord Open AI.
Les intégrations NB sont créées uniquement pour les publications et uniquement pour les publications auxquelles un utilisateur de niveau de confiance un aurait accès. Cela semblait être un compromis raisonnable. Il ne créera pas d’intégrations pour les publications du contenu accessible uniquement au niveau de confiance 2+.
@37Rb écrit : "Voici une requête SQL que j'utilise avec le plugin Data Explorer pour surveiller et vérifier les intégrations… au cas où cela aiderait quelqu'un d'autre."
SELECT e.id, e.post_id AS post, p.topic_id AS topic, p.post_number,
p.topic_id, e.created_at, e.updated_at, p.deleted_at AS post_deleted
FROM chatbot_post_embeddings e LEFT JOIN posts p ON e.post_id = p.id
Vous pourriez obtenir une erreur comme celle-ci :
OpenAI HTTP Error (spotted in ruby-openai 6.3.1): {"error"=>{"message"=>"This model's maximum context length is 8192 tokens, however you requested 8528 tokens (8528 in your prompt; 0 for the completion). Please reduce your prompt; or completion length.", "type"=>"invalid_request_error", "param"=>nil, "code"=>nil}}
C'est ainsi que vous le résolvez...
Conformément à votre message d'erreur, le modèle d'intégration a une limite de :
8192 tokens
however you requested 8528
Vous devez supprimer la valeur actuelle de ce paramètre :
chatbot_open_ai_embeddings_char_limit:
par environ 4 x la différence et voyez si cela fonctionne (un jeton contient environ 4 caractères).
Donc, dans cet exemple, 4 x (8528 - 8192) = 1344
Supprimez donc la valeur actuelle chatbot_open_ai_embeddings_char_limit
de 1 500 pour plus de sécurité. Cependant, la valeur par défaut a été définie suite à de nombreux tests pour les publications en anglais, mais pour d'autres langues, elle devra peut-être être réduite.
Cela coupera ensuite plus de texte et demandera des jetons et, espérons-le, l'intégration se poursuivra. Sinon, vous devrez confirmer la différence et la réduire davantage en conséquence. Finalement, il sera suffisamment bas pour que vous n'ayez pas besoin de le revoir.
Vous n'avez rien d'autre à faire que de modifier les paramètres : le travail en arrière-plan s'occupera des choses, mais progressivement.
Si vous voulez vraiment accélérer le processus, faites :
chatbot_open_ai_embeddings_model
par votre nouveau modèle préféré./launcher enter app
rails c
::DiscourseChatbot::PostEmbedding.delete_all
exit
(pour revenir à la racine dans le conteneur)rake chatbot:refresh_embeddings[1]
chatbot_forum_search_function_similarity_threshold
ou vous n'obtiendrez peut-être aucun résultat :). J'ai baissé ma valeur par défaut de 0.8
à 0.6
, mais votre kilométrage peut varier. Prenez un moment pour lire l’ensemble des paramètres du plugin. Le paramètre chatbot bot type
est essentiel, et il y en a un pour chaque « niveau de confiance » de chatbot :
Le mode RAG est supérieur mais effectuera davantage d'appels à l'API, ce qui pourrait augmenter les coûts. Cela dit, la réduction de sa propension à finalement produire des « hallucinations » peut vous aider à passer de GPT-4 à GPT-3.5 et vous pourriez finir par dépenser moins malgré l'augmentation significative de l'utilité et de la fiabilité de la sortie. GPT 3.5 convient également mieux au type d'agent en fonction des temps de réponse. Un potentiel gagnant-gagnant ! Expérience!
Pour que Chatbot fonctionne dans Chat, vous devez activer Chat.
Ceci est principalement régi par un paramètre : chatbot_reply_job_time_delay
sur lequel vous avez discrétion.
L'intention d'avoir ce paramètre est de :
Il s'agit désormais de « 1 » seconde par défaut et peut désormais être réduit à zéro ?️ , mais soyez conscient des risques ci-dessus.
En définissant ce zéro, le bot, même en mode « agent », devient beaucoup plus « vif ».
Évidemment, cela peut être un peu artificiel et aucune personne réelle ne taperait aussi vite… mais réglez-le selon vos goûts et la taille de votre portefeuille.
NB : je ne peux pas contrôler directement la vitesse de réponse de l'API d'Open AI - et la règle générale est que plus le modèle que vous définissez est sophistiqué, plus cette réponse sera généralement lente. GPT 3.5 est donc beaucoup plus rapide que GPT 4... bien que cela puisse changer avec le nouveau modèle GPT 4 Turbo.
Pour que Chatbot fonctionne dans Chat, vous devez activer Chat.
Vous devez obtenir un jeton de https://platform.openai.com/ pour pouvoir utiliser le bot actuel. Un modèle de langage par défaut est défini (l'un des plus sophistiqués), mais vous pouvez essayer une alternative moins chère, la liste est ici
Il y a une partie automatisée de la configuration : lors de l'ajout d'un discours, le plugin configure actuellement un utilisateur de robot IA avec les attributs suivants
Vous pouvez modifier le nom, l'avatar et la biographie (voir la chaîne de paramètres régionaux dans admin -> personnaliser -> texte) comme vous le souhaitez, mais facilitez la mention.
Dans un premier temps, personne n’aura accès au bot, pas même le personnel.
Appeler l’API Open AI n’est pas gratuit après l’expiration d’une première allocation gratuite ! J'ai donc mis en place un système de quotas pour garder cela sous contrôle, réduire les coûts et éviter les abus. Le coût n’est pas fou avec ces petites interactions, mais il peut s’additionner s’il devient populaire. Vous pouvez en savoir plus sur les tarifs OpenAI sur leur page de tarification.
Pour interagir avec le bot, vous devez appartenir à un groupe qui a été ajouté à l'un des trois niveaux d'ensembles de groupes de confiance, ensembles de groupes de confiance faible, moyenne et élevée. Vous pouvez modifier chacun des nombres d'interactions autorisées par semaine par groupe de confiance dans les paramètres correspondants.
Vous devez également remplir les groupes. Cette configuration dépend entièrement de vous. Ils commencent vides, donc au départ personne n’aura accès au bot. Il existe des quotas correspondants dans trois paramètres supplémentaires.
Notez que l'utilisateur obtient le quota en fonction du groupe de confiance le plus élevé dont il est membre.
Il existe plusieurs « paramètres » de texte local qui influencent ce que le bot reçoit et la façon dont il répond.
Le plus important que vous devriez envisager de modifier est l’invite system
du bot. Ceci est envoyé chaque fois que vous parlez au bot.
Pour le bot de base, vous pouvez essayer une invite système telle que :
"Vous êtes un fan extrême de Formule 1, vous aimez tout ce qui a trait au sport automobile et à ses niveaux d'excitation élevés" au lieu de la valeur par défaut.
(Pour le robot agent, vous devez conserver tout ce qui se trouve après « Vous êtes un assistant utile ». Sinon, vous risquez de perturber le comportement de l'agent. Réinitialisez-le si vous rencontrez des problèmes. Expérimentez à nouveau !)
Essayez celui qui convient le mieux au sujet de votre forum. Soyez créatif !
La modification de ces chaînes de paramètres régionaux peut entraîner un comportement très différent du bot, mais ne peut pas être modifiée à la volée. Je recommanderais de modifier uniquement l'invite du système, car les autres jouent un rôle important dans le comportement de l'agent ou fournissent des informations sur qui a dit quoi au bot.
NB Dans les Topics, le premier Post et le Titre du Sujet sont envoyés en plus de la fenêtre des Posts (déterminée par le paramètre lookback) pour donner plus de contexte au bot.
Vous pouvez modifier ces chaînes dans Admin -> Personnaliser -> Texte sous chatbot.prompt.
discours-chatbot/config/locales/server.en.yml
Ligne 45 en 262a0a4
Le bot prend en charge les messages de discussion et les publications de sujets, y compris les messages privés (si configurés).
Vous pouvez inviter le bot à répondre en y répondant ou en le mentionnant @. Vous pouvez définir jusqu'où le bot regarde derrière lui pour obtenir le contexte d'une réponse. Plus la valeur est élevée, plus chaque appel sera coûteux.
Il existe un bouton de discussion rapide flottant qui vous connecte immédiatement au bot. Cela peut être désactivé dans les paramètres. Vous pouvez choisir de charger le bot dans une discussion en tête-à-tête ou dans un message personnel.
Vous pouvez maintenant choisir votre icône préférée (par défaut ? ) ou si le paramètre est laissé vide, l'avatar de l'utilisateur du bot sera récupéré ! ?
Et n'oubliez pas que vous pouvez également personnaliser le texte qui apparaît lorsqu'il est développé en modifiant le texte des paramètres régionaux à l'aide de Admin -> Personnaliser -> chatbot.
La seule étape nécessaire pour le supprimer est de supprimer l'instruction clone de votre app.yml
.
Je ne suis pas responsable de la réponse du bot. Considérez que le plugin est au stade bêta et les choses pourraient mal tourner. Cela s'améliorera avec les commentaires. Mais pas forcément la réponse des bots ? Veuillez comprendre les avantages et les inconvénients d'un LLM, ce dont ils sont et ne sont pas capables et leurs limites. Ils sont très doués pour créer des textes convaincants, mais peuvent souvent se tromper sur les faits.
Tout ce que vous écrivez sur votre forum peut être transmis à Open AI dans le cadre de l'analyse des derniers messages par les robots une fois qu'il est invité à répondre (cela est évidemment limité au sujet ou au canal de discussion actuel). Même si elles ne seront certainement pas intégrées à leurs modèles pré-entraînés, ils utiliseront les données dans leurs analyses et leur journalisation. Assurez-vous d'ajouter ce fait dans les conditions d'utilisation et les déclarations de confidentialité de votre forum . Liens connexes : https://openai.com/policies/terms-of-use, https://openai.com/policies/privacy-policy, https://platform.openai.com/docs/data-usage-policies
Open AI a fait une déclaration sur le droit d'auteur ici : https://help.openai.com/en/articles/5008634-will-openai-claim-copyright-over-what-outputs-i-generate-with-the-api