Bot AI - Outils personnalisés

:bookmark: Ce guide explique comment créer, configurer et intégrer des outils d’IA personnalisés dans le plugin Discourse AI, permettant aux administrateurs d’étendre les capacités du bot avec des fonctions JavaScript définies par l’utilisateur.

:person_raising_hand: Niveau d’utilisateur requis : Administrateur

Les outils sont des fonctionnalités programmables qui peuvent être utilisées par le bot d’IA pour effectuer des tâches spécifiques ou récupérer des informations au-delà des simples réponses textuelles. Ces outils sont des scripts ou des intégrations qui permettent au bot d’interagir avec des API externes, de manipuler des données ou d’exécuter des fonctions supplémentaires pour étendre ses capacités.

Résumé

Cette documentation couvre :

  • Création d’un nouvel outil d’IA personnalisé
  • Configuration des paramètres et des scripts d’outils
  • API disponibles pour les scripts d’outils
  • Intégration d’outils personnalisés avec des personas d’IA
  • Test et dépannages des outils personnalisés

Création d’un nouvel outil d’IA personnalisé

Pour créer un nouvel outil d’IA :

  1. Accédez au panneau d’administration > Plugins > Discourse AI > Outils
  2. Cliquez sur « Nouvel outil » (vous pouvez utiliser des préréglages existants pour découvrir les options)
  3. Remplissez les champs suivants :
    • Nom : Le nom de l’outil tel qu’il est présenté au LLM
    • Description : La description de l’outil telle qu’elle est présentée au LLM
    • Résumé : Résumé de ce que fait l’outil pour aider les utilisateurs (affiché dans les détails)
    • Paramètres : Définissez les entrées dont votre outil a besoin, telles qu’elles sont présentées au LLM
    • Script : Le code JavaScript qui alimente votre outil
  4. Cliquez sur « Enregistrer »

Configuration des scripts d’outils

API disponibles

Vos scripts d’outils ont accès aux API suivantes :

  1. Requêtes HTTP :

    http.get(url, options)
    http.post(url, options)
    

    Utilisez-les pour interagir avec des services externes. Vous pouvez utiliser options pour spécifier les en-têtes HTTP :

    http.get(url, { headers: { Auth: "some value" } })
    http.post(url, { headers: { Auth: "some value", body: "some body" } })
    http.patch(url, { headers: { Auth: "some value", body: "some body" } })
    http.delete(url, { headers: ...})
    http.put(url, { headers: ... , body: ...})
    
  2. Intégration LLM (modèle linguistique) :

    llm.truncate(text, length)
    

    Cela vous permet de manipuler le texte dans les limites de jetons du modèle d’IA.

  3. Intégration de téléchargement personnalisé (RAG)

    index.search(query, { filenames: options, limit: max_fragments_optional })
    
  4. Support de création de téléchargement

    upload.create(filename, base_64_content)
    
  5. Contrôle de la chaîne d’exécution

    chain.setCustomRaw(raw) - définit le corps de la publication dans la chaîne.
    

Fonctions requises

Votre script doit implémenter :

  • invoke(params) : La fonction principale qui s’exécute lorsque l’outil est appelé
  • details() : (Facultatif) Fournit des informations supplémentaires sur l’exécution de l’outil

Exemple de script :

function invoke(params) {
  let result = http.get("https://api.example.com/data?query=" + params.query);
  return JSON.parse(result.body);
}

function details() {
  return "Fetched data from Example API";
}

Limitations et sécurité

  • Délai d’exécution : Les outils ont un délai d’exécution par défaut de 2 secondes
  • Requêtes HTTP : Maximum de 20 requêtes par exécution d’outil
  • Environnement sandboxé : Pas d’accès au système de fichiers du serveur ni aux bibliothèques Ruby

Test de votre outil

Vous devriez tester tout outil que vous créez pour vous assurer que les résultats fournis au LLM correspondent à vos attentes.

Intégration des outils aux personas d’IA

Pour ajouter votre outil personnalisé à un persona d’IA :

  1. Accédez au panneau d’administration > Plugins > Discourse AI > Personas
  2. Modifiez un persona existant ou créez-en un nouveau
  3. Dans la section « Outils », vous verrez vos outils personnalisés listés aux côtés des outils intégrés
  4. Sélectionnez votre outil personnalisé pour l’ajouter au persona

Outils personnalisés en action

Une fois que vous avez fourni l’outil personnalisé à votre LLM, celui-ci peut l’utiliser pour améliorer la conversation.

Dépannage

Si votre outil ne fonctionne pas comme prévu :

  1. Utilisez l’interface de test pour vous assurer qu’il se comporte comme prévu pour vos entrées.
  2. Assurez-vous que votre groupe est dans ai_bot_debugging_allowed_groups. Les membres de ce groupe ont un accès complet aux transcriptions du bot ; vous pouvez y consulter les journaux de l’IA.
  3. Si quelque chose d’inattendu se produit, visitez https://SITENAME/logs pour vérifier les erreurs.

Ressources supplémentaires

14 « J'aime »

Je commence à créer des outils pour les personas IA dans Discourse, en partie pour pouvoir me concentrer dessus ; cela semble très utile étant donné le nombre d’API utiles et publiques disponibles !

Par exemple, j’obtiens des résultats tels que :

Comprendre la prise de décision grâce aux stratégies de poker IA

maiki :

Crée une fiche d’information pour Breath of the Wild.

gpt-4o :

Voici une fiche d’information pour “The Legend of Zelda: Breath of the Wild” :


Titre : The Legend of Zelda: Breath of the Wild
Développeur : Nintendo
Éditeur : Nintendo
Date de sortie : 3 mars 2017
Plateformes : Nintendo Switch, Wii U
Genre : Action-aventure
Mode : Solo

Synopsis :
Dans un vaste monde ouvert, les joueurs contrôlent Link, qui se réveille d’un long sommeil pour vaincre Calamity Ganon et sauver le royaume d’Hyrule. Le jeu est salué pour son environnement immersif, permettant aux joueurs d’explorer et d’interagir librement avec le monde et ses systèmes.

Récompenses :
Le jeu a remporté de nombreux prix, dont plusieurs prix du Jeu de l’année, pour sa conception innovante, son monde expansif et son gameplay enchanteur.

Plus d’informations : Entrée Wikidata


“Breath of the Wild” est réputé pour avoir redéfini les jeux en monde ouvert et pour offrir une expérience captivante qui encourage l’exploration et la découverte.

maiki :

La même chose pour Animal Crossing: New Horizons.

gpt-4o :

Voici une fiche d’information pour “Animal Crossing: New Horizons” :


Titre : Animal Crossing: New Horizons
Développeur : Nintendo
Éditeur : Nintendo
Date de sortie : 20 mars 2020
Plateforme : Nintendo Switch
Genre : Simulation sociale
Mode : Solo, Multijoueur

Synopsis :
Dans ce charmant jeu de simulation sociale, les joueurs incarnent un personnage personnalisable qui s’installe sur une île déserte après avoir acheté un forfait auprès de Tom Nook. Le jeu permet l’exploration en temps réel, la collecte de ressources, la fabrication et la personnalisation, favorisant une expérience de jeu communautaire et relaxante.

Récompenses :
Le jeu a été acclamé pour sa liberté créative et le moment de sa sortie, recevant des prix du Jeu de l’année et pour ses contributions aux jeux sociaux pendant la pandémie mondiale.

Plus d’informations : Entrée Wikidata


“Animal Crossing: New Horizons” est devenu un phénomène culturel, célébré pour ses fonctionnalités sociales engageantes et son gameplay anti-stress en période difficile.

maiki :

A long way from Chicago

gpt-4o :

Voici une fiche d’information pour le livre “A Long Way from Chicago” :


Titre : A Long Way from Chicago
Auteur : Richard Peck
Année de publication : 1998
Genre : Fiction historique, Jeunesse
ISBN : 978-0141303529

Synopsis :
Ce roman, honoré par la Newbery, est une série de nouvelles narrant les voyages annuels d’été de Joey et de sa sœur Mary Alice de Chicago à une ville rurale de l’Illinois pour rendre visite à leur grand-mère Dowdel, une personnalité exubérante, à la fin des années 1920 et 1930. Chaque chapitre présente un épisode amusant et poignant qui transmet des leçons de vie sur fond de Grande Dépression.

Récompenses :
Le livre a reçu une Mention d’honneur Newbery en 1999 et est célébré pour son humour, sa profondeur et sa représentation de la vie rurale américaine au début du XXe siècle.

Plus d’informations : Entrée Wikidata


Ce livre est apprécié pour sa narration nostalgique et réconfortante, capturant l’essence des liens familiaux et des temps plus simples.

maiki :

Thinking in Bets

gpt-4o :

J’ai précédemment trouvé l’entrée Wikidata pour “Thinking in Bets”, mais je ne suis pas en mesure de récupérer d’autres détails spécifiques directement de Wikidata pour le moment. Voici cependant une brève fiche basée sur les informations disponibles :


Titre : Thinking in Bets: Making Smarter Decisions When You Don’t Have All the Facts
Auteur : Annie Duke
Année de publication : 2018
Genre : Non-fiction, Prise de décision, Psychologie
ISBN : 978-0735216358

Synopsis :
Le livre s’inspire du poker pour aider les lecteurs à comprendre la prise de décision dans l’incertitude. Annie Duke, alliant ses expériences de joueuse de poker professionnelle et de psychologue cognitive, propose un cadre pour prendre de meilleures décisions, évaluer les résultats et adopter un état d’esprit probabiliste.

Plus d’informations : Entrée Wikidata


Pour des informations détaillées, vous pourriez envisager de consulter des ressources ou des bases de données supplémentaires relatives aux publications de livres.


C’est bien, mais j’ai remarqué cette description…

…et je me demande : devrais-je construire mes prompts en me référant directement à ces outils, pour une utilisation efficace ?

Mon approche générale de la rédaction de prompts est de peaufiner au fil du temps, puis de me fixer sur un schéma de comportement que je souhaite que l’outil d’IA adopte. Cependant, si je pouvais ajouter des instructions spécifiques sur, par exemple, quand rechercher une entité Wikidata, et quand lister toutes les affirmations d’une entité particulière (deux API différentes), alors je pense que je pourrais affiner l’ensemble du flux de travail comme je l’entends… :star_struck:

3 « J'aime »

En effet, expliquer clairement l’outil et fournir des exemples dans l’invite système est bénéfique.

2 « J'aime »

Est-il possible dans un outil personnalisé d’insérer la clé API et le projet OpenAI à partir des paramètres d’administration ?

1 « J'aime »

Vous pouvez effectuer des appels REST à partir d’un outil personnalisé et spécifier tous les en-têtes.

2 « J'aime »

Je viens de réaliser que lol… désolé pour mon lapsus.

1 « J'aime »

J’ai téléchargé des documents dans une persona, cela a généré les embeddings et permet maintenant une recherche sémantique. Mais dans certains cas, la recherche sémantique n’est pas idéale, j’aimerais donc l’améliorer et avoir une recherche hybride, par exemple garder ce qui existe déjà et ajouter une recherche par mots-clés. Pour le moment, si je veux faire cela, je devrais écrire un outil personnalisé, n’est-ce pas ?
Je sais que je pourrais simplement publier les documents comme des sujets et cela fonctionnerait immédiatement avec la recherche native de Discourse, mais ce n’est pas une option actuellement.