J'ai essayé d'ajouter un chat IA à mon application et je me suis heurté à un mur

J'ai essayé d'ajouter un assistant de chat IA à mon outil de gestion de projet. Je voulais que les utilisateurs puissent poser des questions sur les tâches en retard ou les notes de réunion. Cela semblait facile. Je pensais qu'il suffirait d'appeler une API et que ce serait terminé. Je me trompais.

Après 15 messages, l'IA est devenue lente et incohérente. L'API a commencé à renvoyer des erreurs car la conversation était trop longue. J'utilisais GPT-4 avec une limite de 8k tokens. Chaque message incluait de longues descriptions et des notes. L'historique grandissait trop vite.

J'ai essayé trois correctifs différents :

  • Tronquer l'historique : je ne conservais que les derniers messages. Cela permettait de gagner en rapidité, mais l'IA oubliait tout le reste.
  • Résumé : je demandais à une IA de résumer la conversation tous les 5 messages. Cela aidait la mémoire, mais augmentait mes coûts et ma latence.
  • Score de pertinence : j'ai essayé de ne conserver que les messages les plus pertinents. Cela nécessitait un vector store et ajoutait trop de complexité.

J'ai réalisé que j'avais besoin d'une meilleure stratégie. J'ai opté pour deux méthodes : le streaming et une fenêtre de contexte fixe.

Le streaming donne une impression de rapidité à l'application. Les utilisateurs voient le texte apparaître instantanément au lieu d'attendre la réponse complète. J'ai utilisé les Server-Sent Events pour envoyer des morceaux de texte au fur et à mesure de leur arrivée.

J'ai également divisé mon contexte en trois parties :

  • System prompt : un ensemble fixe d'instructions.
  • Contexte dynamique : les mises à jour récentes du projet et l'état des tâches.
  • Historique de conversation : une fenêtre glissante des messages récents.

Je n'envoie pas tout l'historique à chaque fois. J'envoie seulement ce qui est nécessaire pour répondre à la question actuelle. Cela a réduit la taille de ma charge utile de 40 %. Cela m'a permis d'économiser de l'argent et d'améliorer la vitesse.

Si vous développez des fonctionnalités d'IA, n'oubliez pas : Le streaming vous apporte de la rapidité. Une bonne stratégie de contexte vous apporte de l'intelligence.

Comment gérez-vous la mémoire de conversation dans vos applications ? Utilisez-vous des fenêtres glissantes ou le résumé ?

Source : https://dev.to/__c1b9e06dc90a7e0a676b/i-tried-to-add-ai-chat-to-my-app-and-hit-a-wall-with-context-tokens-459b