Мазмұнға өту
2024 ж. 13 там.·6 мин оқу

Сессиондық контекст пен пайдаланушы профилі: оларды қалай бөлу керек

Сессиондық контекст пен пайдаланушы профилін бөлек сақтау керек: сонда ассистент бір реттік детальдарды, қалауларды, тарихты және жеке деректерді шатастырмайды.

Сессиондық контекст пен пайдаланушы профилі: оларды қалай бөлу керек

Шатасу қайдан шығады

Мәселе команда пайдаланушының айтқанының бәрін бір қоржынға сала бастағанда туындайды. Модель үшін бұл — бұрынғы диалогтың жай ғана мәтіні. Ал өнім үшін бұл екі бөлек қабат: уақытша сессиялық контекст және ұзақтау сақтауға болатын деректер.

Ең жиі болатын сәтсіздік өте қарапайым көрінеді. Пайдаланушы: "Бүгін қысқа жауап бер, мен жиналыстамын" деп жазады. Бұл — бір күнге, кейде бір сағатқа ғана арналған өтініш. Бірақ жүйе мұны тұрақты қалауға айналдырып жіберсе, ассистент бір аптадан кейін де жауаптарды қысқартып, адам толықтау түсіндірмені күткен кезде де солай істей береді.

Осылайша уақытша деталь ережеге айналады. Дәл осылай "мен қазір Алматыдамын", "банкке есеп дайындап жатырмын" немесе "мысалды Python-да көрсет" деген тіркестер де жұмыс істейді. Нақты сессия ішінде бұл пайдалы. Пайдаланушының ұзақ памятьі үшін — көбіне жай шу.

Ұзақ чат бұл қателікті одан сайын үлкейтеді. Модель бір уақытша фактіні қайта-қайта көріп, оны тұрақты деп ойлай бастайды. Оның үстіне суммаризация болса, нәзік айырмашылықтар тез жоғалады: "қазір", "осы аптада", "осы жоба үшін" деген сөздер түсіп қалады да, тек қатаң мәлімдеме ғана қалады.

Сондықтан жауап сапасы төмендейді. Ассистент жаңа диалогқа ескі шектеулерді сүйреп әкеледі, керекті нақтылау сұрағын қоймайды және бұрын өзектілігін жоғалтқан фактінің айналасында жауап құрады. Мұндағы негізгі қате өте қарапайым: жүйе дұрыс емес нәрсені есте сақтап, оның уақытша болғанын ұмытып қалады.

Пайдаланушы мұндай сәтсіздікті бірден байқайды. Ассистент ескі тонға қыңырлап жабысып алады, ескірген рөлді немесе қаланы тықпалайды, кеше ғана сай болған нәрсені ұсынады және кейде адамға оның өз бұрынғы сөздерімен дау айтады.

Ең жаманы — бір ғана қате жауап емес, ассистенттің кездейсоқ детальға жабысып қалғандай әсер қалдыруы. Содан кейін сенім тез төмендейді. Адам не әр жолы ережені қайта жазады, не жай ғана памятьті өшіреді.

LLM-қосымшаларда мұндай шатасу көбіне модельден емес, деректерді сақтау логикасынан туады. Жүйе "қазірге қатысты факт" пен "ұзаққа сақталатын фактіні" ажыратпаса, жақсы диалогтың өзін де ұзақ память тез бұзады.

Тек сессияда сақтау керек нәрселер

Сессия ағымдағы тапсырма үшін керек. Қазір жауап беруге көмектесетін, бірақ кейінгі диалогтарға әсер етпеуі тиіс нәрсенің бәрін дәл сол жерде ұстаған дұрыс.

Бірінші ереже қарапайым: әңгіменің мақсаты көбіне уақытша болады. Егер адам "директорға қоңырау туралы қысқа түйін жаса" немесе "екі келісімді салыстырып, 4-тармақ бойынша тәуекелді тап" десе, бұл бір диалогқа арналған тапсырма. Оның профильде орны жоқ.

Сол сияқты бір реттік нақтылаулар мен жаңа кіріс деректер де сессияда қалуы керек. Пайдаланушы қысқарақ тон сұрауы, заңгердің жаңа пікірін ескеруді сұрауы немесе уақытша кестені қолданбауды өтінуі мүмкін. Ассистентке бұл дәл қазір керек. Мұндай детальдарды ұзақ памятьке жіберсеңіз, келесі әңгіме оңай басқа арнаға ауып кетеді.

Әдетте сессияда мыналар тұрады:

  • диалогтың ағымдағы мақсаты
  • бір реттік шектеулер мен нақтылаулар
  • осы чаттан келген файлдар, өтінім нөмірлері, сомалар және күндер
  • черновиктер, жұмыс гипотезалары және аралық қорытындылар

Бөлек топ — нақты бір әңгімеге байланған фактілер. Пайдаланушы PDF жүктейді, 48152 өтінім нөмірін жазады, 1 250 000 теңге сомасын көрсетеді және актімен айырмашылықты тексеруді сұрайды. Ассистентке мұны тапсырма аяқталғанша есте сақтау керек. Жұмыс біткен соң бұл деректер пайдаланушының өзін сипаттамайды. Бұл профильдің бөлігі емес, кейстің деталі.

Черновиктер мен болжамдарды да ұзақ памятьке көшіруге болмайды. Егер ассистент құжатты сатып алуға қатысы бар деп ойласа немесе толық емес деректерге сүйеніп аралық қорытынды жасаса, бұл — жұмыс күйі, факт емес. Әйтпесе ескі болжамдар жаңа жауаптарда қайта шыға береді.

Практикада сессия үшін session_id, қысқа TTL және тапсырма жабылғаннан кейінгі анық тазалау бар бөлек сақтау орнын ұстаған ыңғайлы. Қосымша біртұтас LLM-шлюз арқылы жұмыс істесе де, логика өзгермейді: профиль пайдаланушының тұрақты қасиеттерін сақтайды, ал сессия — ағымдағы сұраумен бірге өлетін нәрсені.

Жақсы тест былай естіледі: егер факт жауаптан кейін бірден мағынасын жоғалтса, оны сессияда қалдырыңыз.

Пайдаланушы профильінде не сақталады

Профильге бір диалогтан ұзақ өмір сүретін және әңгімені нөлден бастатпайтын фактілер түседі. Егер ақпарат бір аптадан кейін де пайдалы болып, ағымдағы тапсырмаға тәуелді болмаса, оған профильде орын бар.

Мұнда әдетте есім, жүгіну формасы, рөл және қарым-қатынас тілі кіреді. Егер адамды "Алия" деп атауды сұраса, қолдау жетекшісі ретінде жазса және үнемі орыс тілінде сөйлессе, ассистентке мұны әр чат сайын нақтылаудың қажеті жоқ. Рөл де жауапқа әсер етеді: біреуге шешім қабылдау үшін қысқа қорытынды керек, екіншісіне — API мен логтар бар мысал қажет.

Жауап беру формасына қатысты тұрақты қалауларды да сақтауға болады, бірақ тек пайдаланушының өзі айтса немесе оны бірнеше рет қайталаса. "Қысқалау жаз" деген бір реттік өтінішті бірден болашаққа арналған ережеге айналдырмаған жөн.

Уақыт белдеуі мен рұқсат етілген байланыс арналары да сессияда емес, профильге жақын тұрғаны дұрыс. Бұл еске салуларға, есептерге, тыныштық сағаттарына және эскалация уақытына әсер етеді. Егер пайдаланушы Алматы уақытымен өмір сүріп, хабарламаларды тек корпоративтік чатта алуға келіссе, жүйе бір рет сол жерде жауап бергені үшін оны басқа арнаға жазбауы керек.

Профильдің бөлек қабаты — келісімдер, тыйымдар және жұмыс шектеулері. Бұл — пайдаланушының талғамы емес, бұзуға болмайтын ережелер:

  • тарихты өңдеуге және сақтауға келісім
  • жеке деректерді маскалаусыз қолдануға тыйым
  • рұқсат етілген байланыс арналары мен жіберу уақыты
  • растаусыз автоматты әрекеттерге лимиттер
  • егер олар команда саясатына бекітілсе, жауап стиліне қойылатын талаптар

Корпоративтік көмекші үшін профиль пайдаланушының тілін, компаниядағы рөлін, уақыт белдеуін, PII-ді маскалау ережесін және жауаптарды сыртқы мессенджерлерге жіберуге тыйымды сақтай алады. Ал "бүгін кезекшіліктемін" немесе "17:00-ге дейін есеп дайындап жатырмын" деген сияқты фразалар сессияда қалуы тиіс.

Қарапайым ереже мынау: профиль адамның тұрақты қасиеттері мен шекараларын сақтайды. Сессия ағымдағы жағдайды сақтайды.

Даулы жағдайларды қалай талдау керек

Қателер көбіне сұр аймақтарда жасырынып жатады. "Мен қазір жолдамын", "маған қысқа жауап ыңғайлы" немесе "жұмаға дейін есеп дайындап жатырмын" деген фразалармен не істеу керек екені әрдайым анық емес. Егер команда мұндай фактілерді бірден профильге жазса, ассистент бір реттік жағдайды әдетке шатастыра бастайды.

Әр даулы фактіні бірдей сұрақтармен тексеру пайдалы:

  1. Бұл факт диалогтың соңынан аман өте ме? Егер адам "бүгін үйден жұмыс істеп отырмын" десе, бұл көбіне сессияның бөлігі. Егер ол үнемі орысша жауап беруді сұраса, факт ұзағырақ өмір сүре алады.
  2. Ол бір күннен кейін өзгере ме? Ағымдағы жоба, дедлайн, кездесудегі рөл және көңіл күй тез өзгереді. Мұндай деректерді диалогтың жанында ұстаған дұрыс.
  3. Пайдаланушыдан растау керек пе? Жүгіну есімі, тұрақты тіл және жауап форматы тек тікелей келісімнен кейін сақталғаны жөн. Ассистенттің болжамы — факт емес.
  4. Жүйе қателессе не болады? Сессиядағы артық факт әдетте өзі жоғалады. Профильдегі қате жаңа диалогта қайта шығып, көбірек ашуландырады.

Егер жауап бірден анық болмаса, фактіні уақытша қалдырыңыз. Бұл қауіпсізірек. Бір күннен кейін ассистент қайта сұрап, фактінің әлі өзекті екенін тексере алады.

Даулы жазбаларға өмір сүру мерзімін беру де жақсы көмектеседі. Мысалы, "қысқалау жаз" деген қалауды бірнеше күнге сақтап, кейін қайта растауды сұрауға болады. Ал "қазір бюджетті келісіп жатырмын" деген жазбаны тапсырма аяқталған соң немесе күн соңында өшірген дұрыс.

Мұндай ережелер жүйені едәуір жеңілдетеді. Командалар көбіне модельді кінәлайды, ал мәселе жауаптарда емес, памятьте жатады. Банк, retail немесе ішкі көмекші үшін қате бірдей көрінеді: ассистент ұмытуы тиіс нәрсені есте сақтап қояды.

Қадамдап қалай бөлуге болады

PII-ді памятьке тасымаңыз
Жеке деректерді модельге сұрау жіберер алдында жасырып, профильді таза ұстаңыз.

Егер команда деректерді бірінші күннен-ақ белгілемесе, профиль тез арада кездейсоқ фразалардың қоймасына айналады. Сессиондық контекст пен пайдаланушы профилі араласып кетпеуі үшін әр өрісте үш нәрсе болуы керек: мәні, өмір сүру мерзімі және оны жаңартатын тарап.

  1. Ассистент көретін немесе жүйелеріңізден ала алатын барлық өрістерді тізіп шығыңыз. Әдетте бұған ағымдағы диалог мәтіні, тіл, пайдаланушы рөлі, тапсырыс тарихы, тон баптауы, орналасқан жер, өтінім статусы және оператор жазбалары кіреді.
  2. Әр өріс үшін қарапайым сұрақ қойыңыз: "бұл тек қазір ғана рас па, әлде көбіне солай ма?" "Осы чатта қысқалау жауап керек" деген фраза сессияда тұрады. "Орыс тілін қалаймын" деген фраза профильде тұра алады.
  3. Өмір сүру мерзімін алдын ала белгілеңіз. Сессия үшін бұл — минуттар, сағаттар немесе бір диалог. Профиль үшін — апталар, айлар немесе расталған деректер үшін қолмен өзгертілгенге дейінгі мерзім.
  4. Профильді кім өзгерте алатынын жазыңыз. Ең дұрысы — профильді пайдаланушының өзі, CRM-событие немесе нақты ереже жаңартады. Ассистент "бүгін Алматыдамын" деген кездейсоқ репликаны профильге көшіруге тиіс емес.
  5. Профильді қоқыстан тазалаңыз. Тез ескіретіннің бәрін алып тастаңыз: ағымдағы тапсырма, уақытша басымдық, бір реттік жеңілдік, көңіл күй, бір сапардағы орын.

Осындай сұрыптаудан кейін сақтау үшін екі бөлек схема ашу ыңғайлы. Сессия дәл қазір керек қысқа тірі қабатты ұстайды. Профиль — хабарламадан хабарламаға өзгермейтін тұрақты фактілер мен қалауларды сақтайды.

Егер қандай да бір өріс күмән тудырса, оны бірден профильге асықпай енгізбеңіз. Алдымен оны бірнеше апта сессияда ұстап, жиі өзгеретінін бақылаңыз. Кейін профильді тазалап, ассистент неге артық нәрсе есте сақтап қойғанын түсіндіруден гөрі, бұл әлдеқайда оңай.

Егер сіз AI Router арқылы airouter.kz немесе басқа LLM-шлюзбен жұмыс істесеңіз, шлюзді профиль тұратын орынға айналдырмаңыз. Профильді қолжеткізу ережелерімен, аудитпен және PII маскалаумен бірге өз жүйеңізде ұстаған дұрыс. Модельге сұрауда тек жауапқа шынымен қажет деректер кесіндісін жіберіңіз.

Жақсы белгі өте қарапайым: инженер кез келген өріске қарап, 10 секунд ішінде оның қайда сақталатынын, қанша өмір сүретінін және оны кім өзгерте алатынын айта алады.

Бір диалогтағы мысал

Айырмашылықты тірі мысалдан көрген оңай. Бір банк клиенті кейбір деректерді тек чат уақытына ғана қалдырып, ал кейбір баптауларын әңгімелер арасында сақтай алады.

Төлем бойынша қолдау чатын елестетейік. Клиент бұрыннан орыс тілін таңдап, өзіне "сіз" деп жүгінуді сұраған. Бұл — профиль. Ал бүгін оның басқа өтініші бар: жиналыстар арасында телефоннан жазып отырғандықтан, өте қысқа жауап беру. Бұл — сессия.

Диалог былай көрінуі мүмкін:

"Сәлеметсіз бе. Өтінемін, қысқа жауап беріңіз. 48127 өтініміндегі 245 000 теңге төлемін тексеруім керек."

Ассистент орысша және "сіз" деп жауап береді, өйткені ол клиенттің тұрақты қалауларын біледі. Бірақ "қысқа" деген өтінішті тек осы әңгіменің ішінде ғана сақтайды. 48127 өтінім нөмірі мен 245 000 теңге сомасы да тек сессиялық контекстте өмір сүреді. Олар тапсырманы соңына дейін жеткізу үшін керек, келесі чатта қажет емес.

Он минуттан кейін клиент жазады:

"Төлем табылды ма?"

Ассистент қай төлем туралы екенін түсінеді, өйткені сессия әлі ашық. Оған өтінім нөмірі мен соманы қайта сұраудың керегі жоқ. Бұл ыңғайлы және профильді артық детальдармен ластамайды.

Енді чат жабылды. Осыдан кейін жүйе уақытша фактілерді өшіреді: өтінім нөмірі, төлем сомасы және тек бүгін қысқалау жауап беру өтініші. Профильде мына тұрақты нәрселер қалады:

  • жауап тілі
  • жүгіну формасы
  • қажет болса, уақыт белдеуі немесе күн форматы

Келесі күні клиент жаңа диалог бастайды: "Қайырлы күн, картаның статусын білгім келеді".

Ассистент қайтадан орысша және "сіз" деп жауап береді. Бірақ ол енді автоматты түрде тым қысқа жазбауы керек және 48127 ескі өтінімді есте сақтамауы тиіс. Егер бұл деректер жаңа чатта себепсіз пайда болса, демек сессиялық контекст пен профиль араласып кеткен.

Бұл ереже дерлік әрдайым жұмыс істейді: бір реттік факт тапсырма аяқталғанша керек. Қайталап айтылатын қалауды ұзағырақ сақтауға болады. Мұндай бөлу қателер қаупін азайтады және пайдаланушы деректерін ұқыптырақ қолдануға көмектеседі.

Командалар қай жерде жиі қателеседі

Провайдер тарифтерімен төлеңіз
Провайдер тарифтері бойынша, API үстемақысыз, теңгемен ай сайынғы B2B-invoicing алыңыз.

Ең жиі мәселе модельде емес, команданың бір жалпы "память қапшығын" жасағанда. Оның ішіне ағымдағы диалог тарихы да, пайдаланушы әдеттері де, аккаунт баптаулары да түседі. Бірнеше аптадан кейін ассистенттің неге артық нәрсе есте сақтайтынын ешкім түсінбей қалады.

Бірінші қате қарапайым: профильге хат алмасудағының бәрі жазылады. Пайдаланушы бір рет "мен жұмаға дейін іссапардамын" немесе "қазір қысқалау жауап бер" деді, ал жүйе оны тұрақты факт ретінде сақтайды. Солай уақытша деталь қажеттен ұзақ өмір сүріп, келесі диалогтарды бұзады.

Екінші қате деректердің өмір сүру мерзіміне байланысты. Уақытша фактілерде TTL, аяқталу күні немесе өшірудің нақты ережесі жоқ. Соның салдарынан сессия мен профиль араласып кетеді, ал олардың жұмысы бөлек: бір қабат ағымдағы әңгімені жүргізуге көмектеседі, екіншісі тұрақты қалаулар мен маңызды баптауларды сақтайды.

Тағы бір мәселе — айқын себепсіз жеке деректерді сақтау. Егер тапсырманы туған күнінсіз, жеке нөмірсіз немесе мекенжайсыз орындауға болса, мұны памятьке тасымаңыз. Бұл әсіресе аудит-логтар мен қатаң дерек талаптары бар жерде қауіпті: бақылау үшін жасалған лог пен пайдаланушы профилі — бір нәрсе емес.

Қате мысалдың бірі мынау. Пайдаланушы: "Мен бүгін ауырып тұрмын, еске салғышты ауыстыр да, қоңырау шалма" деп жазады. "Қоңырау шалма" дегені адам бірнеше рет қайталаса, байланыс арнасының баптауы болуы мүмкін. Ал "бүгін ауырып тұрмын" дегенді өте маңызды себеп болмаса, ұзақ памятьке жіберуге болмайды. "Еске салғышты ауыстыр" дегені тіптен профильге емес, ағымдағы әрекетке жатады.

Көбіне пайдаланушының профильді түзететін тәсілі де жоқ. Жүйе бір нәрсені есте сақтап қояды, бірақ адам оны көрмейді де, жазбаны өшіре алмайды. Сонда қате айлар бойы өмір сүреді, ал команда модельмен дауласа береді, шын мәнінде сынғаны — жай ғана сақтау қабаты.

Ескерту белгілері әдетте мыналар:

  • ассистент ескі чаттардан кездейсоқ детальдарды еске түсіреді
  • қалауларды, тарихты және аккаунт баптауларын бірдей сақтайды
  • уақытша деректерді автоматты түрде өшірмейді
  • жеке деректерді "көп болса зиян емес" деп жинай береді
  • пайдаланушыға profile-ға нақты не жазылғанын көрсетпейді

Егер сізде LLM-шлюз болса, сұраулар журналы мен қауіпсіздік белгілерін де бөлек ұстау керек. AI Router-да, мысалы, аудит-логтар, PII маскалау және rate limits бақылау мен сәйкестік міндеттерін шешеді. Бұл деректер адамның "ассистенттің памятьі" болып үнсіз айналып кетпеуі тиіс.

Ең дұрыс схема әдетте қарапайым: сессия бөлек, профиль бөлек, аккаунт баптаулары бөлек, логтар бөлек. Осы қабаттардың арасындағы сұр аймақ неғұрлым аз болса, ассистент соғұрлым сирек оғаш қылық көрсетеді.

Іске қосар алдындағы қысқа чек-лист

Бақылауды бөлек ұстаңыз
Профиль мен қол жеткізу ережелерін өз жүйеңізде қалдырып, модельдерді бір шлюз арқылы қосыңыз.

Релиз алдында тек модельдерді емес, память ережелерін де тексеріңіз. Оңбаған жауаптар көбіне промпттан емес, сессия мен профильдің бір схемаға араласып кетуінен пайда болады.

Алдымен ассистент оқитын немесе жазатын әр өрісті бөліп шығыңыз. Әр өрістің түсінікті көзі мен өмір сүру мерзімі болуы тиіс. Егер көзі түсініксіз болса, ассистент мұндай фактке сүйенбеуі керек. Егер мерзімі көрсетілмесе, уақытша ақпарат әдетте керек болмағаннан ұзақ сақталып қалады.

  • Бір реттік фактілерді тек сессияда сақтаңыз. "Бүгін Алматыдамын", "қысқалау жауап бер", "осы айға тариф таңдауға көмектес" деген сияқты фразалар profile-ға түспеуі керек.
  • Тұрақты деректерді бөлек ұстаңыз. Есім, қарым-қатынас тілі, уақыт белдеуі, жұмыс рөлі немесе хабарландыру форматына келісімді ұзақырақ сақтауға болады, егер пайдаланушы оны растаған болса.
  • Сессияны өшіруді қарапайым ережемен қойыңыз: 30 минут әрекетсіздіктен кейін, тапсырма аяқталған соң немесе чат қолмен нөлденгенде.
  • Пайдаланушы тұрақты деректерді көріп, түзете немесе өшіре алатын орын беріңіз.
  • Журналдарда ассистент қорытындыны неге жасағаны көрініп тұрсын: факт ағымдағы диалогтан ба, профильден бе, әлде сыртқы жүйеден бе.

Іске қоспас бұрын жасалатын қарапайым тест бар. Бір нақты диалогты алып, өзіңізден сұраңыз: адам бір аптадан кейін қайтып келсе, ассистент жаңа сұраусыз нені есте сақтауға құқылы? Бөлек profile экранында көрсету ыңғайсыз нәрсенің бәрін пайдаланушының ұзақ памятьі ретінде сақтамаған дұрыс.

Егер сіз LLM-қосымшаны бірнеше модельмен құрып жатсаңыз, ереже өзгермейді. API-шлюз сұрауларды маршруттауға, аудитке және деректерді ел ішінде сақтауға көмектессе де, память бөлінуі бәрібір қосымшаның өзінде анықталуы керек.

Тағы бір пайдалы тестті support немесе QA жасайды. Адам жауап журналына қарап, тізбекті қалпына келтіріп көреді: қандай факт қайдан алынған, оны кім жазған және қашан бітеді. Егер мұны бір минутта түсіну мүмкін болмаса, іске қосқаннан кейін артық дау мен қолмен тексерулер басталады.

Әрі қарай не істеу керек

Қарапайымнан бастаңыз: памятьті екі сақтау орнына бөліңіз. Біреуі тек ағымдағы диалогқа қажет нәрсені ұстайды, екіншісі пайдаланушы профилін сақтап, ұзағырақ өмір сүреді. Сессиондық контекст пен профиль бір жерде жатқанша, қателер қайталана береді.

Бірінші кезеңде күрделі схема керек емес. Айқын өрістерді, жазбалардың өмір сүру мерзімін және памятьтің әр бөлігін кім оқып, кім өзгерте алатынын көрсететін ережені енгізу жеткілікті. Осындай базалық бөлу әдетте оғаш жауаптардың көп бөлігін алып тастайды.

Минималды жоспар

  1. Сессияға бөлек, профильге бөлек сақтау орнын ашыңыз.
  2. Ассистент фактіні қайдан алғанын команда көре алуы үшін оқу және жазу логтарын қосыңыз.
  3. Қарапайым тазалау ережелерін енгізіңіз: сессия TTL бойынша немесе тапсырма аяқталғаннан кейін өшіріледі, профиль тек расталған сигналдан кейін жаңартылады.
  4. Қай өрістерді ашық күйде сақтауға болмайтынын тексеріп, жазар алдында PII-ді маскалаңыз.

Логтар тек қателерді талдау үшін емес. Олар модель чаттан алынған кездейсоқ фразаны profile-ға жазып жібергенін немесе жаңа диалогқа бұрын қажет емес ескі детальды сүйреп әкелгенін тез көрсетеді. Жақсы ереже қарапайым: егер факт неге сессиядан ұзақ өмір сүруі керек екенін бір сөйлеммен түсіндіре алмасаңыз, оны profile-ға жазбаңыз.

Деректер талаптарын алғашқы инциденттен кейін емес, іске қосар алдында-ақ түсінген дұрыс. Жазбалар нақты қайда сақталатынын, оларға кім кіре алатынын, сұрау бойынша деректі қалай өшіретініңізді және журналдардағы жеке ақпаратты қалай маскалайтыныңызды тексеріңіз. Банк, телеком, мемлекеттік сектор және healthcare үшін бұл архитектураның қалыпты бөлігі.

Егер LLM-ді production-ға шығарып жатсаңыз, тек модельді емес, маршруттау мен бақылау қабатын да бірден ойластырыңыз. Қазақстан мен Орталық Азия командалары мұнда жиі AI Router қолданады: ол біртұтас OpenAI-үйлесімді API береді, сондай-ақ аудит-логтарға, PII маскалауға және ел ішіндегі сақтау талаптарына көмектеседі. Бірақ сессия мен профиль арасындағы шекараны бәрібір сіздің қосымшаңыз анықтауы керек.

Қысқасы, тәртібі мынадай: алдымен сақтау орнын бөліңіз, сосын бақылауды қосыңыз, кейін сақтау ережелерін тексеріңіз. Сонда memory қателері жұмбақ болмай, кәдімгі инженерлік міндетке айналады.

Жиі қойылатын сұрақтар

Сессиондық контекст пен пайдаланушы профилінің айырмасы неде?

Сессия ағымдағы әңгімені жүргізуге қажет нәрсені сақтайды: тапсырма, уақытша шектеулер, файлдар, сома, өтінім нөмірлері. Профиль бір аптадан кейін де пайдалы болатын нәрсені сақтайды: тіл, жүгіну формасы, рөл, уақыт белдеуі, келісімдер мен тыйымдар.

Егер факт жауап берілген бойда мағынасын жоғалтса, оны сессияда қалдырыңыз. Егер ол жаңа диалогтарда да пайдалы болып, ағымдағы тапсырмаға тәуелді болмаса, оны профильде сақтаңыз.

Пайдаланушы профиліне нені сақтауға болмайды?

Профильге уақытша детальдарды сақтамаңыз: «бүгін қысқаша жауап бер», «мен қазір Алматыдамын», «кешке дейін есеп дайындап жатырмын», ағымдағы кейстегі өтінім нөмірі, сома, жобалық қорытындылар мен ассистенттің болжамдары.

Мұндай деректер тез ескіреді. Егер олар профильге түссе, ассистент оларды жаңа диалогтарға сүйреп әкеліп, қателесе бастайды.

«Қысқалау жаз» деген сияқты өтінішті профильге қашан жазуға болады?

Мұндай қалауды тек ашық растаудан кейін немесе бірнеше чатта қайталанған соң ғана сақтаңыз. Бір рет қысқа жауап сұрауы мүмкін, өйткені адам телефоннан жазып отырды немесе жиналыста болды.

Растау болмаса, оны қысқа TTL-і бар сессияда қалдырған дұрыс. Бірнеше күннен кейін қайта сұрауға болады.

Сессиялық деректерге TTL қою керек пе?

Иә, мерзімі болмаса, уақытша фактілер әдетте қажеттен ұзақ сақталып қалады. Қарапайым ереже орнатыңыз: сессияны тапсырма аяқталғаннан кейін, чат нөлденгеннен кейін немесе әрекетсіздік кезеңінен соң өшіру.

Тіпті қысқа TTL-дің өзі де оғаш жауаптардың санын азайтады. Ассистент ескі детальдарды жаңа диалогқа сирегірек сүйрейді.

Сессия ма, әлде профиль ме — түсініксіз жағдайларды қалай ажыратуға болады?

Күмән болса, фактіні уақытша күйде қалдырыңыз. Кейін үш нәрсені тексеріңіз: ол диалогтың соңынан аман өте ме, бір күннен кейін өзгере ме және оны ұзақ сақтауға пайдаланушы келісім берді ме.

Қате құнына да қараңыз. Сессиядағы артық жазба әдетте өзі өшеді, ал профильдегі қате адамды әр жаңа чатта мазалай береді.

Өтінім нөмірін, төлем сомасын және чаттағы файлдарды қайда сақтау керек?

Мұндай деректер тапсырма аяқталғанға дейін сессияда тұрады. Олар пайдаланушының өзін емес, ағымдағы кейсті сипаттайды.

Чат жабылған соң, оларды өшіріңіз немесе тек процесс бойынша тиесілі жүйелерге ғана көшіріңіз. Болашаққа арналған ассистент memory-іне оларды тасымаңыз.

Аудит-логтарды ассистенттің памятьі ретінде қолдануға бола ма?

Жоқ. Логтар аудит, отладка және қолжетімділікті бақылау үшін керек, адам туралы ұзақ память үшін емес. Егер лог пен память араласып кетсе, ассистент артық нәрсені есіне түсіре бастайды.

Логтарды профильден де, сессиядан да бөлек ұстаңыз. Памятьте тек жауап беру үшін шынымен қажет деректер ғана қалсын.

Пайдаланушы профилін кім жаңартуы керек?

Ең дұрысы, профильді пайдаланушының өзі, CRM-событие немесе қосымшадағы нақты ереже өзгертеді. Ассистент чаттан алынған кездейсоқ фразаны өзі профильге жазбауы керек.

Осылайша бір реттік фактінің тұрақтыға айналу қаупін азайтасыз. Әрі әр жазбаның қайдан келгенін түсіндіру оңай болады.

Іске қоспас бұрын memory дұрыс бапталғанын қалай тексеруге болады?

Бір нақты диалогты алыңыз да, қарапайым тест өткізіңіз. Өзіңізден сұраңыз: ассистент бір аптадан кейін жаңа сұраусыз нені есте сақтауға құқылы?

Сосын журналды ашып, әр фактінің қайдан келгенін, оны кім жазғанын және қашан бітетінін тез түсінуге бола ма — соны тексеріңіз. Егер бұл анық болмаса, memory схемасы әлі пісіп жетілмеген.

Ассистент артық нәрсені already есіне сақтап қойса, не істеу керек?

Алдымен профильді уақытша жазбалардан тазартыңыз да, оны сессиядан бөліңіз. Сосын жазу ережелерін енгізіңіз: не чатта ғана қалады, не растауды қажет етеді, не TTL бойынша өшіріледі.

Одан кейін пайдаланушыға тұрақты деректерді көріп, түзете немесе өшіре алатын экран не баптау беріңіз. Егер LLM-шлюз қолдансаңыз, профиль бәрібір шлюзде емес, өз жүйеңізде сақталуы керек.