Ich habe versucht, einen KI-Chat in meine App einzubauen und bin gegen eine Wand gestoßen
Ich habe versucht, einen KI-Chat-Assistenten in mein Projektmanagement-Tool zu integrieren. Ich wollte, dass Nutzer Fragen zu überfälligen Aufgaben oder Besprechungsnotizen stellen können. Es schien einfach zu sein. Ich dachte, ich rufe einfach eine API auf und bin fertig. Ich habe mich geirrt.
Nach 15 Nachrichten wurde die KI langsam und unzusammenhängend. Die API begann Fehlermeldungen auszugeben, weil die Konversation zu lang war. Ich habe GPT-4 mit einem 8k-Token-Limit verwendet. Jede Nachricht enthielt lange Beschreibungen und Notizen. Der Verlauf wuchs zu schnell.
Ich habe drei verschiedene Lösungsansätze ausprobiert:
- Kürzen des Verlaufs: Ich habe nur die letzten paar Nachrichten behalten. Das sparte Geschwindigkeit, aber die KI vergaß alles andere.
- Zusammenfassung: Ich habe eine KI gebeten, den Chat alle 5 Nachrichten zusammenzufassen. Das half dem Gedächtnis, erhöhte aber meine Kosten und die Latenz.
- Relevanzbewertung: Ich habe versucht, nur die relevantesten Nachrichten beizubehalten. Dies erforderte einen Vector Store und fügte zu viel Komplexität hinzu.
Mir wurde klar, dass ich eine bessere Strategie brauchte. Ich habe mich für zwei Methoden entschieden: Streaming und ein festes Kontextfenster.
Streaming lässt die App schnell wirken. Nutzer sehen den Text sofort erscheinen, anstatt auf die vollständige Antwort zu warten. Ich habe Server-Sent Events verwendet, um Textabschnitte zu senden, sobald sie eintreffen.
Ich habe meinen Kontext außerdem in drei Teile aufgeteilt:
- System Prompt: Ein fester Satz von Anweisungen.
- Dynamischer Kontext: Aktuelle Projekt-Updates und Aufgabenstatus.
- Konversationsverlauf: Ein Sliding Window der letzten Nachrichten.
Ich sende nicht jedes Mal den gesamten Verlauf. Ich sende nur so viel, wie nötig ist, um die aktuelle Frage zu beantworten. Dies reduzierte meine Payload-Größe um 40 %. Es sparte mir Geld und verbesserte die Geschwindigkeit.
Wenn Sie KI-Funktionen entwickeln, denken Sie daran: Streaming verschafft Ihnen Geschwindigkeit. Eine gute Kontextstrategie verschafft Ihnen Intelligenz.
Wie verwalten Sie das Konversationsgedächtnis in Ihren Apps? Nutzen Sie Sliding Windows oder Zusammenfassungen?