Chrome AI प्रॉम्प्ट चैट प्लेग्राउंड
प्रायोगिक Chrome बिल्ट-इन प्रॉम्प्ट API (LanguageModel) को सीधे अपने ब्राउज़र में परीक्षण करें। Gemini Nano को डिवाइस पर प्रॉम्प्ट भेजें, सिस्टम प्रॉम्प्ट और सैंपलिंग पैरामीटर कॉन्फ़िगर करें, रीयल-टाइम में प्रतिक्रियाएं स्ट्रीम करते हुए देखें, और मॉडल डाउनलोड और context window उपयोग की निगरानी करें — कोई सर्वर आवश्यक नहीं।
रीडमी
Prompt API क्या है?
Prompt API, W3C Web Machine Learning Community Group का एक प्रायोगिक वेब प्लेटफॉर्म प्रस्ताव है जो ब्राउज़र द्वारा प्रदान किए गए बड़े भाषा मॉडल को window.LanguageModel इंटरफेस के माध्यम से JavaScript को उजागर करता है। पृष्ठ LanguageModel.create() के साथ एक session बनाते हैं, वैकल्पिक रूप से इसे एक system prompt के साथ कॉन्फ़िगर करते हैं, और फिर प्रतिक्रिया प्राप्त करने के लिए prompt() या promptStreaming() को कॉल करते हैं।
होस्ट किए गए LLM API को कॉल करने के विपरीत, मॉडल उपयोगकर्ता के डिवाइस पर चलता है। इसका मतलब है कि इनपुट कभी मशीन से बाहर नहीं जाता, पृष्ठ एक बार मॉडल को cache करने के बाद ऑफलाइन काम करता है, और कोई प्रति-अनुरोध लागत नहीं है। Chrome में अंतर्निहित मॉडल Gemini Nano है, लेकिन API जानबूझकर मॉडल-अज्ञेयवादी है ताकि अन्य ब्राउज़र विभिन्न कार्यान्वयन प्लग इन कर सकें।
एक session stateful है: यह context window के भीतर conversation history को ट्रैक करता है जिसे tokens में मापा जाता है। जब window भर जाता है, तो सबसे पुरानी non-system messages स्वचालित रूप से निष्कासित कर दी जाती हैं (एक contextoverflow event fires), और आप किसी भी समय session.contextUsage और session.contextWindow को inspect कर सकते हैं यह देखने के लिए कि कितनी जगह बची है।
Tool विवरण
यह playground एक interactive chat surface है जो window.LanguageModel से जुड़ा हुआ है। यह आपको एक system prompt सेट करने, संदेश भेजने, और मॉडल को real time में tokens stream करते हुए देखने देता है। एक progress bar मॉडल की उपलब्धता और download progress दिखाता है, और एक token-usage bar रिपोर्ट करता है कि session के context window का कितना हिस्सा consume किया जा रहा है।
Session को पहली बार भेजने पर lazily बनाया जाता है और संदेशों के बीच पुनः उपयोग किया जाता है जब तक आप system prompt को नहीं बदलते, जिस बिंदु पर इसे destroy किया जाता है और नई instructions के साथ एक नया बनाया जाता है।
विशेषताएं
- Streaming responses —
promptStreaming()का उपयोग करता है ताकि tokens chat में तब दिखाई दें जब वे produce होते हैं। - System prompt editor — एक persistent role या behavior को define करें जो हर प्रतिक्रिया को condition करता है।
- Stop button — एक
AbortControllerके साथ in-flight prompt को abort करें बिना session को tear down किए। - Live context usage —
contextUsageकोcontextWindowके विरुद्ध visualize करता है ताकि आप देख सकें कि conversation कब overflow होने वाली है। - Availability और download progress —
availability()state औरdownloadprogressevents को surface करता है जबकि मॉडल को fetch किया जा रहा है।
उपयोग के मामले
- Prompts को locally try करना — system prompts और few-shot patterns पर iterate करें बिना cloud API के लिए भुगतान किए।
- On-device AI feasibility को test करना — verify करें कि Prompt API उपलब्ध है, देखें कि context window कितना बड़ा है, और अपने hardware पर response speed को benchmark करें।
- Privacy-sensitive drafting — text को brainstorm या rephrase करें जो third-party server को नहीं भेजा जाना चाहिए।
आवश्यकताएं
- एक ब्राउज़र जो Prompt API को implement करता है। Chrome 138+ इसे experimentally expose करता है; पुराने versions में आपको इसे
chrome://flags/#prompt-api-for-gemini-nanoके माध्यम से enable करने की आवश्यकता हो सकती है और on-device model को download किया जाना चाहिए। - एक secure context (HTTPS या
localhost)। - एक device जो मॉडल की hardware requirements को पूरा करता है (पर्याप्त disk space, RAM, और एक supported GPU/CPU)। Unsupported devices पर
availability()unavailablereturn करता है। - मॉडल को download करने के लिए initial bandwidth। Subsequent sessions cached model को reuse करते हैं।
यह कैसे काम करता है
- Mount पर, tool
typeof window.LanguageModelको check करता है। यदि absent है, तो एक warning chat input को replace करता है। LanguageModel.availability()available,downloadable,downloading, याunavailableमें से एक को report करता है। परिणाम progress bar में दिखाया जाता है।- पहली बार जब आप Send को press करते हैं, tool
LanguageModel.create()को एकmonitorके साथ कॉल करता है जोdownloadprogressevents को UI में stream करता है। यदि एक system prompt सेट है, तो इसेinitialPrompts: [{ role: "system", content: ... }]के माध्यम से pass किया जाता है। - User message को
session.promptStreaming(text, { signal })के माध्यम से भेजा जाता है। ReturnedReadableStream<string>को chunk by chunk consume किया जाता है और assistant message में append किया जाता है। - प्रत्येक response के बाद,
session.contextUsageऔरsession.contextWindowको read किया जाता है और token-usage bar में reflect किया जाता है। - Stop को press करने से
controller.abort()को कॉल किया जाता है, जो in-flight stream को एकAbortErrorके साथ reject करता है जबकि session को अगले prompt के लिए alive रखता है। - System prompt को edit करने से cached session को invalidate किया जाता है: existing को
destroy()किया जाता है और अगला send updated instructions के साथ एक नया session बनाता है।
विकल्प समझाए गए
- System prompt — एक free-form instruction जो पहली
system-role message के रूप में pass की जाती है। यह सभी subsequent turns को condition करता है। इसे blank रखने से एक session बनता है बिना system message के। - Send / Stop — Send input को एक
usermessage के रूप में submit करता है। Stop streaming response को abort करता है बिना prior messages को delete किए। - Token usage — current session के लिए
used / totaltokens। जबusedtotalके करीब पहुंचता है, तो अगले prompt पर पुरानी user/assistant pairs को evict किया जाएगा। - Model status —
availability()औरdownloadprogressका combined readout। जबकि मॉडल download होता है, bar animate होता है और एक percentage दिखाता है।
सीमाएं
- Prompt API experimental है। Method names, options (जैसे
inputUsagevscontextUsage), और event semantics Chrome releases के बीच change हो सकते हैं। - Output quality, factuality, और instruction-following पूरी तरह से browser-provided model पर depend करते हैं और guaranteed नहीं हैं।
- Context window hosted LLMs की तुलना में छोटा है। Long conversations overflow होंगे और silently earliest turns को drop करेंगे।
- API को web workers को expose नहीं किया जाता है और cross-origin iframes पर Permissions Policy (
language-model) delegation की आवश्यकता हो सकती है। - यह tool जानबूझकर
temperature,topK, tool use, multimodal inputs, structured output (responseConstraint), या session cloning को expose नहीं करता है। वे spec का हिस्सा हैं लेकिन plain chat पर focused रहने के लिए playground से बाहर रखे गए हैं।
FAQ
यह क्यों कहता है कि API unsupported है?
window.LanguageModel आपके ब्राउज़र में undefined है। Latest Chrome को desktop पर try करें और, यदि आवश्यक हो, तो Prompt API flag को enable करें और chrome://components के माध्यम से on-device model को download होने के लिए wait करें।
पहली response slow क्यों है? पहली call एक मॉडल download (progress bar को watch करें) और एक session-creation step को trigger कर सकती है। Later prompts same session को reuse करते हैं और लगभग तुरंत streaming शुरू करते हैं।
क्या मेरा prompt device से बाहर जाता है? नहीं। मॉडल locally चलता है। आपका text इस tool द्वारा किसी भी server को नहीं भेजा जाता है।
जब context भर जाता है तो क्या होता है?
Session एक contextoverflow event fire करता है और जगह बनाने के लिए सबसे पुरानी non-system turns को evict करता है। System prompt को preserve किया जाता है।
System prompt को बदलने से response style को mid-conversation clear क्यों किया गया? System prompt को edit करने से current session को destroy किया जाता है और अगले send पर एक नया बनाया जाता है। नए session को previous turns की कोई memory नहीं है।