Ajouter {username} comme paramètre de modèle dans les invites de système de personnalités IA

C’est ma première contribution. Je m’excuse si j’ai fait quelques bêtises, et je suis profondément reconnaissant pour votre patience et vos conseils s’il existe une meilleure façon de procéder.

Pour ce que cela vaut, je suis un client Pro.

J’avais besoin d’une méthode robuste pour savoir quel utilisateur interagit avec l’agent IA. Voici ce que j’ai imaginé. Merci beaucoup pour le temps que vous prenez pour examiner cela, et pour vos conseils.

Ajouter {username} en tant que paramètre de modèle dans les invites système de la persona IA

J’ai soumis la PR #41446 ( FEATURE: Add {username} template param to BotContext - Pull Request #41446 - discourse/discourse - GitHub ) ajoutant {username} à BotContext::TEMPLATE_PARAMS.

Le cas d’utilisation : une persona agissant comme pont vers un service externe a besoin que l’identité de l’utilisateur actuel soit résolue côté serveur, et non déduite par le LLM à partir du texte du message. Pour l’instant, il n’existe pas de méthode propre pour cela. {participants} ne se remplit que pour les messages privés, et demander au LLM de parser le nom d’utilisateur à partir des métadonnées du sujet est fragile et présente une surface d’injection.

Le changement est mineur (une nouvelle méthode, une chaîne ajoutée à la liste blanche) et additif. Les invites existantes ne sont pas affectées sauf si elles contenaient déjà la chaîne littérale {username}.

Merci encore !

6 « J'aime »

Oh, j’ai aussi rempli le CLA. Je pense avoir couvert tous les aspects. Merci encore.

2 « J'aime »

Je passe juste pour prendre des nouvelles. Si je peux faire quelque chose pour t’aider, fais-le-moi savoir. Merci :purple_heart:

1 « J'aime »

Merci pour la PR !

Je viens de la fusionner.

6 « J'aime »

Incroyable ! Merci beaucoup :purple_heart:

3 « J'aime »

J’en ai aussi discuté avec @falco, mais je tiens à mettre en garde : c’est un outil très tranchant.

En particulier, nous incluons déjà le nom d’utilisateur dans le message « Utilisateur » :

Cela est visible dans les journaux de l’API IA.

Le danger de l’insertion du nom dans l’invite système est que, dans les cas où il y a une interaction multi-utilisateur dans une chaîne, vous pouvez provoquer un « thrashing » de l’invite système, ce qui entraîne l’expiration du cache, ce qui n’est pas idéal et peut entraîner de mauvaises performances.

Maintenant… une chose que j’ai remarquée dans nos modèles vllm est que nous jetons le nom, ce qui explique pourquoi les modèles hébergés par CDCK ne disposent pas de cette fonctionnalité. Je travaille actuellement sur un correctif pour résoudre ce problème.

3 « J'aime »