Prompt API की मदद से, स्थानीय और ऑफ़लाइन काम करने वाला चैटबॉट बनाना

पब्लिश होने की तारीख: 13 जनवरी, 2024

एलएलएम चैटबॉट के बारे में तीन हिस्सों वाली सीरीज़ का यह आखिरी लेख है. पिछले लेखों में, क्लाइंट-साइड एलएलएम की क्षमता के बारे में बताया गया था. साथ ही, वेबएलएलएम की मदद से काम करने वाले चैटबॉट को 'क्या-क्या करें' सूची वाले ऐप्लिकेशन में जोड़ने का तरीका भी बताया गया था.

कुछ नए डिवाइसों में, लार्ज लैंग्वेज और एआई के अन्य मॉडल डिवाइस में पहले से मौजूद होते हैं. Chrome ने ब्राउज़र में पहले से मौजूद एआई एपीआई को इंटिग्रेट करने का प्रस्ताव दिया है. इसके लिए, डेवलपमेंट के अलग-अलग चरणों में कई एपीआई उपलब्ध कराए जाएंगे. इनमें से कई एपीआई, स्टैंडर्ड प्रोसेस से गुज़र रहे हैं, ताकि वेबसाइटें अनुमान लगाने की बेहतरीन परफ़ॉर्मेंस पाने के लिए, एक ही तरीके और मॉडल का इस्तेमाल कर सकें.

Prompt API, एआई एपीआई में से एक है. इसका इस्तेमाल करने के लिए, डेवलपर को रिलीज़ होने से पहले झलक देखने की सुविधा देने वाले कार्यक्रम के लिए साइन अप करने का सुझाव दिया जाता है. अनुमति मिलने के बाद, आपको ब्राउज़र में Prompt API को चालू करने का तरीका बताया जाएगा. Prompt API, Chrome एक्सटेंशन के लिए ऑरिजिन ट्रायल में उपलब्ध है. इससे, एक्सटेंशन के असली उपयोगकर्ताओं के लिए इस एपीआई की जांच की जा सकती है.

शेयर किए गए मॉडल का ऐक्सेस

Prompt API, WebLLM की तरह ही काम करता है. हालांकि, इस बार मॉडल चुनने का विकल्प नहीं है. आपको ब्राउज़र के साथ शिप होने वाले एलएलएम का इस्तेमाल करना होगा. पहले से मौजूद एआई की सुविधा चालू करने पर, Chrome ब्राउज़र में Gemini Nano डाउनलोड करता है. इसके बाद, इस मॉडल को कई ऑरिजिन के साथ शेयर किया जा सकता है और यह बेहतरीन परफ़ॉर्मेंस के साथ काम करता है. GitHub पर एक समस्या है, जिसमें एक डेवलपर ने मॉडल चुनने की सुविधा जोड़ने का अनुरोध किया है.

बातचीत सेट अप करना

मैसेज बातचीत को ठीक उसी तरह से शुरू किया जा सकता है. हालांकि, Prompt API में सिस्टम प्रॉम्प्ट की जानकारी देने के लिए, शॉर्टहैंड सिंटैक्स भी उपलब्ध है. self.ai.languageModel प्रॉपर्टी पर create() तरीके का इस्तेमाल करके, भाषा मॉडल सेशन शुरू करें:

const session = await self.ai.languageModel.create({
  systemPrompt: `You are a helpful assistant. You will answer questions related
  to the user's to-do list. Decline all other requests not related to the user's
  todos. This is the to-do list in JSON: ${JSON.stringify(todos)}`,
});

अपने पहले सवाल का जवाब देना

स्ट्रीमिंग को कॉन्फ़िगर करने के लिए कॉन्फ़िगरेशन ऑब्जेक्ट के बजाय, Prompt API दो अलग-अलग तरीके उपलब्ध कराता है:

  • prompt() पूरी स्ट्रिंग दिखाता है
  • promptStreaming(), एक ऐसा आइटम दिखाता है जिसे एक साथ कई प्रोसेस में इस्तेमाल किया जा सकता है. WebLLM के मुकाबले, Prompt API पूरी स्ट्रिंग के जवाब के साथ रिस्पॉन्स देता है. इसलिए, आपको नतीजों को खुद जोड़ने की ज़रूरत नहीं पड़ती.

अगर किसी दूसरे ऑरिजिन ने पहले मॉडल डाउनलोड करने की प्रोसेस को ट्रिगर नहीं किया है, तो आपके पहले अनुरोध पर, Gemini Nano को आपके ब्राउज़र में डाउनलोड होने में काफ़ी समय लग सकता है. अगर मॉडल पहले से उपलब्ध है, तो अनुमान लगाने की प्रोसेस तुरंत शुरू हो जाती है.

const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
  console.log(reply);
}

डेमो

खास जानकारी

ऐप्लिकेशन में एलएलएम इंटिग्रेट करने से, उपयोगकर्ता अनुभव काफ़ी बेहतर हो सकता है. क्लाउड सेवाएं, उपयोगकर्ता के डिवाइस के बावजूद बेहतर क्वालिटी के मॉडल और बेहतर अनुमान लगाने की सुविधा देती हैं. वहीं, WebLLM और Chrome के Prompt API जैसे ऑन-डिवाइस समाधान, क्लाउड-आधारित विकल्पों की तुलना में ऑफ़लाइन काम करते हैं, निजता को बेहतर बनाते हैं, और लागत को कम करते हैं. इन नए एपीआई को आज़माएं और अपने वेब ऐप्लिकेशन को स्मार्ट बनाएं.