मैंने अपने ऐप में AI चैट जोड़ने की कोशिश की और एक बड़ी बाधा का सामना किया

मैंने अपने प्रोजेक्ट मैनेजमेंट टूल में एक AI चैट असिस्टेंट जोड़ने की कोशिश की। मुझे लगा कि यह आसान होगा। मैंने पूरी चैट हिस्ट्री को एक API पर भेजने की योजना बनाई थी।

यह विफल रहा।

15 मैसेज के बाद, रिस्पॉन्स धीमे हो गए या खराब होने लगे। टोकन लिमिट के कारण टेक्स्ट बहुत लंबा हो गया, जिससे API एरर देने लगा।

यहाँ बताया गया है कि मैंने क्या कोशिश की और क्या काम आया।

मुझे जिन समस्याओं का सामना करना पड़ा:

  • हिस्ट्री को छोटा करना (Truncating history): मैंने केवल पिछले कुछ मैसेज ही रखे। इससे स्पीड तो ठीक हो गई, लेकिन AI चैट की शुरुआत की सारी बातें भूल गया।
  • सारांश बनाना (Summarization): मैंने AI को हर 5 मैसेज के बाद चैट का सारांश (summarize) बनाने के लिए कहा। इससे मेमोरी में मदद मिली, लेकिन मेरी लागत (costs) और वेटिंग टाइम बढ़ गया।
  • वेक्टर स्टोर्स (Vector stores): मैंने मैसेज को उनकी प्रासंगिकता (relevance) के आधार पर स्कोर करने की कोशिश की। इससे मेरी ज़रूरतों के हिसाब से बहुत अधिक जटिलता (complexity) बढ़ गई।

समाधान:

मैंने सब कुछ भेजने की कोशिश करना बंद कर दिया। अनुभव को बेहतर बनाने के लिए मैंने दो मुख्य तरीकों का उपयोग किया।

  1. स्ट्रीमिंग (Streaming): मैंने टेक्स्ट को जनरेट होते ही दिखाने के लिए Server-Sent Events का उपयोग किया। इससे ऐप तेज़ महसूस होता है, भले ही AI को सोचने में समय लगे।

  2. थ्री-स्लॉट कॉन्टेक्स्ट विंडो (A Three-Slot Context Window): मैंने अपने टोकन बजट को विशिष्ट भागों में विभाजित किया।

  • सिस्टम प्रॉम्प्ट (System Prompt): 500 टोकन। यह स्थिर रहता है।
  • डायनेमिक कॉन्टेक्स्ट (Dynamic Context): 2000 टोकन। इसमें हालिया प्रोजेक्ट अपडेट और टास्क स्टेट्स रखे जाते हैं।
  • कन्वर्सेशन हिस्ट्री (Conversation History): 4000 टोकन। यह हालिया मैसेज की एक स्लाइडिंग विंडो है।

इस तरह बजट को मैनेज करके, मैंने अपने पेलोड साइज (payload size) को 40% तक कम कर दिया। इससे पैसे की बचत हुई और लेटेंसी (latency) भी कम हुई।

मेरी सलाह:

AI जोड़ना केवल एक API को कॉल करने के बारे में नहीं है। आपको यह मैनेज करना होगा कि आप कितना डेटा भेज रहे हैं। स्ट्रीमिंग से यूजर को स्पीड का बेहतर अनुभव मिलता है। एक स्मार्ट कॉन्टेक्स्ट रणनीति से AI की बुद्धिमत्ता (smartness) बेहतर महसूस होती है।

आप अपने ऐप्स में कन्वर्सेशन मेमोरी को कैसे मैनेज करते हैं? क्या आप स्लाइडिंग विंडो का उपयोग करते हैं या सारांश (summarization) का?

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

वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi