Модель не пам'ятає. Пам'ятаєте ви.

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