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

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

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

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

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

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

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

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

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

const session = await LanguageModel.create({
  initialPrompt: [
    {
      type: 'system',
      content: `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 पूरी स्ट्रिंग वाला जवाब देता है. इसलिए, आपको नतीजों को खुद से नहीं जोड़ना पड़ता.

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

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

डेमो

खास जानकारी

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