𝗡𝗶𝗹𝗶𝗷𝗮𝗿𝘂𝗯𝗶 𝗞𝘂𝗼𝗻𝗴𝗲𝘇𝗮 𝗔𝗜 𝗖𝗵𝗮𝘁 𝗞𝘄𝗲𝗻𝘆𝗲 𝗔𝗽𝗽 𝗬𝗮𝗻𝗴𝘂 𝗡𝗮 𝗞𝘂𝗸𝘂𝘁𝗮𝗻𝗮 𝗡𝗮 𝗩𝗶𝗸𝘄𝗮𝘇𝗼

Nilijaribu kuongeza msaidizi wa AI chat kwenye zana yangu ya usimamizi wa miradi. Nilitaka watumiaji waweze kuuliza maswali kuhusu kazi zilizochelewa au maelezo ya mikutano. Ilionekana kuwa rahisi. Nilidhani nitaita tu API na kumaliza. Nilikuwa nimekosea.

Baada ya ujumbe 15, AI ilianza kuwa nzito na kutoeleweka. API ilianza kutoa makosa kwa sababu mazungumzo yalikuwa marefu sana. Nilitumia GPT-4 yenye kikomo cha tokeni 8k. Kila ujumbe ulijumuisha maelezo marefu na kumbukumbu. Historia ilikua kwa kasi sana.

Nilijaribu njia tatu tofauti za kurekebisha:

  • Kupunguza historia (Truncating history): Nilibakiza ujumbe michache ya mwisho tu. Hii ilisaidia kasi lakini AI ilisahau kila kitu kingine.
  • Muhtasari (Summarization): Niliiomba AI ifanye muhtasari wa mazungumzo kila baada ya ujumbe 5. Hii ilisaidia kumbukumbu lakini iliongeza gharama na ucheleweshaji (latency).
  • Upimaji wa uhusiano (Relevance scoring): Nilijaribu kubakiza ujumbe wenye uhusiano zaidi tu. Hii ilihitaji vector store na iliongeza ugumu mwingi.

Nilitambua kuwa nilihitaji mkakati bora zaidi. Niliamua kutumia mbinu mbili: streaming na dirisha la muktadha lililowekwa (fixed context window).

Streaming inafanya app ionekane ina kasi. Watumiaji wanaona maandishi yakitokea papo hapo badala ya kusubiri jibu lote. Nilitumia Server-Sent Events kutuma vipande vya maandishi vinapofika.

Pia niliigawa muktadha (context) wangu katika sehemu tatu:

  • System prompt: Seti maalum ya maelekezo.
  • Dynamic context: Taarifa za hivi karibuni za mradi na hali ya kazi.
  • Conversation history: Dirisha linaloteleza (sliding window) la ujumbe wa hivi karibuni.

Situmi historia nzima kila wakati. Natuma kiasi cha kutosha tu ili kujibu swali la sasa. Hii ilipunguza ukubwa wa payload yangu kwa 40%. Iliniokoa pesa na kuboresha kasi.

Ikiwa unatengeneza vipengele vya AI, kumbuka: Streaming inakupa kasi. Mkakati mzuri wa muktadha unakupa akili.

Unadhibiti vipi kumbukumbu ya mazungumzo kwenye app zako? Je, unatumia sliding windows au muhtasari (summarization)?

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