Traduire un serveur de 50 personnes est un problème résolu. La plupart des bots s'en sortent, et le copier-coller aussi. Ce qui suit porte sur les trois choses qui cessent de fonctionner quelque part entre quelques centaines et quelques milliers de membres, pourquoi elles cessent de fonctionner, et ce que Pigona fait pour chacune.
Presque tous les bots de traduction travaillent un message à la fois. Un message arrive, part seul vers une API de traduction, une traduction revient. Dans un salon calme, ça va, parce que la plupart des messages sont autonomes.
Les salons actifs ne sont pas faits de messages autonomes. Ils sont faits de réponses, de pronoms, de fragments de phrases et de rappels à quelque chose dit deux minutes plus tôt. Traduit isolément, « ouais, celui-là » ne porte d'information dans aucune langue. Plus le salon est rapide, plus la part de messages qui ne veulent dire quelque chose que par rapport à ce qui a précédé est grande - ce problème grandit donc avec ton serveur au lieu de rester stable.
La partie facile à mal faire
La solution évidente est d'envoyer les N derniers messages comme contexte. Dans un salon actif, ça échoue discrètement, parce que les N derniers messages ne sont pas N messages de conversation. Ce sont des réponses de bot, des sorties de commandes, d'autres traductions et des réactions d'un seul mot. Prends les dix derniers messages bruts d'un salon actif et tu obtiendras peut-être trois vraies contributions humaines.
Le moteur de contexte intelligent de Pigona ne compte que les messages éligibles - écrits par un humain, assez longs pour avoir du sens - et remonte plus loin pour les trouver, donc une profondeur de dix signifie dix contributions réelles à la conversation, pas simplement les dix dernières choses postées. La sélection est du code pur, pas un appel au modèle : elle est déterministe, n'ajoute pas de second aller-retour au modèle, et reste dans une seule requête d'historique Discord plutôt que de se disperser sur plusieurs. Elle lira au maximum cinquante messages pour les trouver, donc un salon qui est surtout des sorties de bot ne peut pas transformer une traduction en scan sans limite.
Tu as deux réglages. La profondeur détermine combien de messages éligibles récupérer - 5, 10 ou 20. La longueur minimale détermine à partir de quelle longueur un message vaut la peine qu'on récupère du contexte pour lui, ce qui évite que « ok » et « mdr » ne te coûtent quoi que ce soit.
Le contexte qui déclenche un filtre d'injection est rejeté entièrement plutôt qu'assaini et transmis, et les frais de contexte par message sont annulés quand ça arrive - aucun frais pour un historique jeté. Sur un gros serveur, ce n'est pas hypothétique : plus tu as de membres, plus il est probable que l'un d'eux soit curieux de voir ce qui se passe s'il tape des instructions à ton bot.
Le moteur de contexte intelligent est inclus dans tous les forfaits serveur, et il est désactivé tant que tu n'as pas défini une profondeur pour un salon - un nouveau salon démarre sans lui. Il ajoute ensuite des frais par message analysé en plus de la traduction elle-même, la profondeur est donc un réglage de coût que tu actives délibérément, pas un qui tourne par défaut.
C'est la plainte la plus courante à propos des bots de traduction en général, et c'est purement un problème d'échelle. Un bot qui poste une traduction publique sous chaque message en langue étrangère double le trafic dans ce salon. À vingt messages par heure, ça ne dérange personne. À deux mille, le salon devient illisible pour tout le monde, y compris ceux qui n'avaient pas besoin de traduction.
La question utile n'est pas de savoir s'il faut traduire, mais où le résultat doit atterrir. Pigona te donne quatre réponses, et tu peux les mélanger par salon :
Un petit serveur a généralement une langue commune et une seule culture de ce qui est acceptable. Un grand, non. Dès qu'une part significative de ton trafic est dans des langues que personne dans ton équipe de modération ne lit, ce trafic est effectivement non modéré - pas parce que quelqu'un a décidé de l'autoriser, mais parce que personne ne peut le voir.
Les propres conseils d'internationalisation de Discord à ce sujet reviennent à recruter des modérateurs bilingues, ce qui fonctionne jusqu'à ce que tu aies besoin d'une quatrième langue à 3h du matin. Les filtres de mots automatisés ne comblent pas non plus le vide, puisque chaque liste doit être reconstruite à la main par langue.
Pour être honnête sur ce que fait Pigona ici : ça rend le contenu lisible, et c'est tout. La traduction autonome dans un salon public signifie qu'un modérateur qui lit dans sa propre langue voit ce qui est réellement dit, au même endroit, en même temps que tout le monde. Pigona n'est pas un produit de modération, il ne note pas la toxicité et ne s'intègre pas à AutoMod. Ce qu'il supprime, c'est l'excuse que personne ne pouvait le lire.
Pigona facture en Translation Credits plutôt que d'annoncer un forfait illimité, ce qui soulève la question évidente de savoir si l'allocation survit à un vrai serveur. Voici la conversion crédit-vers-traduction pour des messages courts, ce qui représente la majorité du trafic Discord :
| Forfait | Prix | Traductions / mois | Par jour |
|---|---|---|---|
| Community | 15€ | up to 50,000 | ~1,700 |
| Pro | 29€ | up to 100,000 | ~3,300 |
| Business | 45€ | up to 200,000 | ~6,700 |
Deux choses rendent ces chiffres plus grands que ne le suggèrent les totaux de crédits. La facturation porte sur la traduction produite, pas sur le message lu, donc le texte original et tout ce que Pigona envoie avec sont notre coût, pas le tien. Et un message déjà dans la langue cible n'atteint jamais le modèle, donc il ne coûte rien du tout - sur notre trafic de production, ça représente environ un tiers de tout ce que le bot lit. Donc dans un salon majoritairement anglophone avec une poignée de germanophones, tu paies pour l'allemand qui est traduit. L'anglais ne te coûte rien, peu importe la quantité.
Ce sont des plafonds et il faut les lire comme tels. Ils tarifient chaque message au minimum de 0,2 Crédit, ce qui est le coût total pour tout ce qui fait jusqu'à environ quarante caractères, avec le contexte intelligent désactivé - la configuration dans laquelle un salon démarre. Un vrai salon est un mélange de longueurs, et mesuré sur notre propre trafic de production, un serveur Community se rapproche plutôt de 29 000 traductions par mois que de 50 000. Le contexte intelligent ajoute des frais supplémentaires par message analysé, et seulement une fois que tu l'actives pour un salon.
Aucun des deux chiffres ne compte la mise en cache des messages répétés, ce qui améliore les deux en pratique. Tous les détails tarifaires.
Bon à savoir avant d'installer plutôt que quarante minutes après :
Le niveau gratuit suffit pour voir si la gestion du contexte est réelle sur ton propre trafic, ce qui est le seul test qui tranche. Sans carte, et tu peux le limiter à un seul salon pour commencer.