Модель не пам'ятає. Пам'ятаєте ви.
LLM не мають пам'яті.
Раніше я думав, що кожен чат зберігає власний контекст. Я вважав, що модель автоматично пам'ятає наші попередні слова. Я помилявся.
Messages API є stateless. Модель знає лише те, що ви надсилаєте в поточному запиті. Якщо ви хочете вести діалог, ви повинні щоразу надсилати моделі всю історію повністю.
Ваша пам'ять — це просто масив повідомлень.
Коли ви створюєте чат, ви керуєте цим масивом. Він виглядає так:
• User: Привіт, Claude • Assistant: Привіт! Чим я можу допомогти? • User: Чи можеш ти описати LLM?
Щоразу, коли ви ставите нове запитання, ви додаєте нове повідомлення до цього списку та надсилаєте весь список в API.
Я дізнався про це, уникаючи використання SDK. Більшість розробників використовують такі інструменти, як Anthropic SDK. Ці інструменти приховують складність. Вони беруть на себе повторні спроби (retries) та заголовки (headers).
Замість цього я вирішив використовувати raw fetch. Це змусило мене керувати заголовками та тілом запиту вручну. Це прибрало абстракцію. Я побачив саме те, як рухаються дані.
Ця концепція є основою для всього іншого. Якщо ви хочете будувати складні системи, ви повинні розуміти цей масив. Такі стратегії, як RAG або sliding windows, починаються саме з того, як ви керуєте цим списком повідомлень.
Щойно ви опануєте роботу з історією, ви зможете перейти до використання інструментів (tool use). Це дозволяє моделі виконувати завдання та обирати правильні функції для запуску.
Керуйте своїм контекстом. Керуйте своєю моделлю.
Джерело: https://dev.to/marcochavezco/the-model-doesnt-remember-you-do-3mmk
Додаткова спільнота для навчання: https://t.me/GyaanSetuAi