Script
मान लीजिए आप कपड़ों की एक ऑनलाइन दुकान चलाते हैं। हर बार उत्पाद जोड़ते समय एक-एक करके आकर्षक विस्तृत विवरण लिखना झंझट भरा काम है। इसलिए आप चाहते हैं कि बस उत्पाद का नाम और कुछ कीवर्ड डालते ही AI आपके बदले विस्तृत विवरण लिख दे। पर उस AI लेखन सेवा को बुलाने के लिए एक गुप्त चाबी (access token, यानी वह चाबी जिससे बाहरी सेवा जाँचती है कि “यह शुल्क चुकाने वाला सही उपयोगकर्ता है या नहीं”) चाहिए होती है। अगर यह चाबी ग्राहक को दिखने वाली वेबसाइट (ब्राउज़र) में रख दें, तो कोई भी उसे निकालकर देख सकता है और वह लीक हो जाती है। लीक हुई चाबी से कोई और इस सेवा को मनमाने ढंग से इस्तेमाल करके आप पर शुल्क चढ़ा सकता है।
इसलिए एक ऐसी चीज़ चाहिए जो चाबी को ग्राहक की नज़र से दूर किसी जगह छिपाकर रखे, और वेबसाइट के बदले खुद AI को बुलाकर उसका नतीजा उत्पाद में भर दे। Script वही चीज़ है। Script में “इस चाबी से AI को बुलाओ, और मिले हुए वाक्य को इस उत्पाद के विस्तृत विवरण में भर दो” इस तरह करने के काम क्रम से लिख रखे जाते हैं। इसे कोड के रूप में नहीं, बल्कि एक तय प्रारूप (JSON, यानी मदों और मानों को कर्ली ब्रैकेट में लिखने वाली डेटा-लेखन शैली) में लिखा जाता है। वेबसाइट को बस इस Script को इंटरनेट के ज़रिए बुलाना होता है, और चाबी Script के अंदर छिपी रहती है, ग्राहक को नहीं दिखती।
इसकी तुलना पहले से लिखकर रसोई में टाँग रखी गई रेसिपी (पाककला विधि) से की जा सकती है। ग्राहक जब वह व्यंजन ऑर्डर करता है (वेबसाइट जब Script को बुलाती है), तो रसोई (WEEGLOO) रेसिपी में लिखे क्रम से बनाकर तैयार व्यंजन परोस देती है। मालिक ने बस रेसिपी लिखकर टाँग रखी थी, हर ऑर्डर आने पर वह खुद खाना नहीं पकाता। इस पृष्ठ पर हम पहले देखेंगे कि Script क्या है और कैसी दिखती है, बुलाने पर क्या लौटाती है, फिर कपड़ों की दुकान की “उत्पाद विवरण भरना” Script को उदाहरण मानकर उसका रूप देखेंगे। आख़िर में यह भी देखेंगे कि इस Script को इस तरह कैसे जोड़ें कि उत्पाद जोड़े जाने पर यह अपने-आप चल पड़े।
Script आपके बदले जो काम करती है
बस एक उत्पाद का विवरण भरने के काम में भी, पीछे कई काम करने होते हैं। बुलाने वाले के पास अनुमति है या नहीं यह जाँचना, भेजे गए मान सही हैं या नहीं यह परखना, छिपाकर रखी चाबी से बाहरी AI सेवा को बुलाना, मिले हुए नतीजे को मनचाही जगह (उत्पाद के विस्तृत विवरण) में डालना, और जवाब लौटाना। पहले इस तरह के काम करने वाला एक बीच का प्रोग्राम खुद बनाकर सर्वर पर चढ़ाना और उसका रखरखाव करना पड़ता था। Script का लक्ष्य इन कामों को बिना कोड के एक ही जगह लिख रखकर आपके बदले करवाना है।
- एक Script यानी बुलाने की एक खिड़की। वेबसाइट इंटरनेट के ज़रिए जिस एक खिड़की को बुला सकती है, वही एक Script है। बुलाते समय इस्तेमाल होने वाले तरीके (
method) से तय होता है कि कौन-सी Script चलानी है। - करने के काम ऊपर से नीचे क्रम में सजाए जाते हैं। Script के अंदर चलाई जाने वाली क्रियाएँ क्रम से लिखी जाती हैं। ये ऊपर से एक-एक करके चलती हैं, और पिछली क्रिया का नतीजा अगली क्रिया आगे ले लेती है।
- तय की गई क्रियाओं में से चुनकर उन्हें जोड़ा जाता है। इसमें कोई भी मनमाना कोड नहीं डाला जाता, बल्कि पहले से तैयार क्रियाओं (संसाधन बनाना·पढ़ना·बदलना·हटाना, बाहरी सेवा को बुलाना, मान सँभालकर रखना, शर्त जाँचना, दोहराना आदि) में से चुनकर उन्हें क्रम में सजाया जाता है।
क्या करना है, यह लिख रखने वाली परिभाषा
एक Script तीन बातें तय कर रखने वाली “परिभाषा” से बनती है।
- बुलाने का तरीका(
method): इस Script को बुलाते समय इस्तेमाल होने वाला तरीका।Get·Post·Put·Patch·Deleteमें से एक होता है, और बुलाते समय इसी मान से तय होता है कि यह कौन-सी Script है। - करने के काम(
statements): ऊपर से नीचे क्रम में चलाई जाने वाली क्रियाओं की सूची। कम-से-कम एक क्रिया होनी ही चाहिए। - इनपुट जाँच(
payloadSchema, वैकल्पिक): बुलाते समय साथ भेजे जाने वाले इनपुट को चलाने से पहले जाँचने का प्रारूप। इसे तय कर देने पर, प्रारूप से मेल न खाने वाला इनपुट चलाए बिना ही लौटा दिया जाता है।
कपड़ों की दुकान की “उत्पाद विवरण भरना” Script को उदाहरण के रूप में देखते हैं। यह Script जिस चीज़ को सँभालती है, वह है उत्पाद का नाम और कीवर्ड रखने वाला एक उत्पाद। वेबसाइट से जो इनपुट भेजा जाता है (आगे देखे जाने वाले अपने-आप चलने के समय, जोड़ा गया उत्पाद ज्यों-का-त्यों भेज दिया जाता है), वह कुछ इस रूप का होता है।
{
"sys": { "id": "3trmXRMKq7bd0Prbef1... (उत्पाद नंबर)" },
"fields": {
"productName": { "hi-IN": "स्टेनलेस टम्बलर 500ml" },
"keywords": { "hi-IN": "गर्म रखना, हल्कापन, कैंपिंग" }
}
}यह उस Script की परिभाषा है जो इस उत्पाद को लेकर बाहरी AI से विस्तृत विवरण बनवाती है, और उस उत्पाद के विस्तृत विवरण (body) को भर देती है।
{
"method": "Post",
"statements": [
{ "type": "Http", "method": "POST",
"url": "https://api.ai-writer.example.com/v1/generate",
"headers": [
{ "key": "Authorization", "value": "Bearer <गुप्त access token>", "secret": true }
],
"body": {
"product": "{ /payload/fields/productName/hi-IN }",
"keywords": "{ /payload/fields/keywords/hi-IN }"
},
"name": "gen" },
{ "type": "ResourcePatch", "resource": "Content",
"target": { "sys": { "id": "{ /payload/sys/id }" } },
"fields": { "body": { "hi-IN": "{ /gen/body/text }" } },
"publish": true },
{ "type": "Return", "value": { "id": "{ /payload/sys/id }" }, "statusCode": 200 }
]
}- पहली क्रिया (
Http) छिपाकर रखी चाबी से बाहरी AI सेवा को बुलाती है। चाबी रखने वाले हेडर परsecret: trueलगा देने से, वह मान ग्राहक को नहीं दिखता और बुलाने से ठीक पहले ही खुलता है। मिला हुआ नतीजाgenनाम में सँभालकर रखा जाता है। - दूसरी क्रिया (
ResourcePatch) पहले मिले वाक्य ({ /gen/body/text }) से उस उत्पाद के केवल विस्तृत विवरण (body) को भरती है। उत्पाद के बाकी मानों को यह नहीं छूती। - मान को अगले चरण तक बहा ले जाने वाला प्लेसहोल्डर
{ /… }इस्तेमाल होता है।{ /payload/fields/productName/hi-IN }भेजे गए उत्पाद के नाम को,{ /payload/sys/id }उस उत्पाद के नंबर को, और{ /gen/body/text }AI के लौटाए वाक्य को इंगित करता है। - आख़िरी क्रिया (
Return) जिस उत्पाद का विवरण भरा गया, उसका नंबर लौटाती है। - Content के मान को
{ "hi-IN": … }की तरह भाषा-वार क्यों लिखा जाता है,statementsमें डाली जा सकने वाली क्रियाओं की पूरी किस्में, और प्लेसहोल्डर तथा शर्त·गणना की वाक्य-रचना, इन्हें मान अभिव्यक्ति और Statement कैटलॉग में बताया गया है।
बुलाने पर क्या लौटाता है
Script सबसे अंत में Return क्रिया का मान बुलाने वाले को लौटाती है। लौटाए जाने वाले जवाब में ये बातें होती हैं।
requestId: इस बार के निष्पादन को इंगित करने वाला पहचान-नंबर।durationMs: निष्पादन में लगा समय (मिलीसेकंड)।statusCode: जिसReturnतक पहुँचा उसका स्टेटस कोड (अलग से तय न करने पर 200)।returnयाerror:Returnका लौटाया हुआ मान। आम तौर पर यहreturnमें आता है, और उस मान को त्रुटि के रूप में चिह्नित कर रखने परerrorमें आता है। दोनों एक साथ नहीं आते।
“उत्पाद विवरण भरना” भी बुलाने पर उसी जगह चल जाती है, और ऊपर बताया गया जवाब सीधे वापस आ जाता है। हाँ, इसमें बाहरी AI को बुलाने वाली क्रिया है, इसलिए जवाब आने में कुछ सेकंड लग सकते हैं। एक बार के निष्पादन में कितना समय इस्तेमाल किया जा सकता है, यह नीचे निष्पादन को मिलने वाला समय में बताया गया है। वापस आया जवाब कुछ इस रूप का होता है।
{
"requestId": "3trmXRMZ8kqLb2Prdf1eYc0axWnKv",
"durationMs": 1840,
"statusCode": 200,
"return": { "id": "3trmXRMKq7bd0Prbef1... (उत्पाद नंबर)" }
}वेबसाइट इस return के id से उस उत्पाद को पहचान सकती है जिसका विवरण अभी-अभी भरा गया, और नया विस्तृत विवरण ग्राहक को दिखा सकती है।
अगर Script Return तक पहुँचे बिना ख़त्म हो जाए, तो return और error दोनों के बिना केवल statusCode 200 के रूप में वापस आता है। Return से जवाब का मुख्य भाग और स्टेटस कोड तय करने के विस्तृत नियम Statement कैटलॉग का Return में बताए गए हैं।
निष्पादन को मिलने वाला समय
Script जहाँ से बुलाई गई, वहीं चलती है। बुलाने वाला उस निष्पादन का नतीजा जवाब के रूप में सीधे पा लेता है। नतीजे को बाद में दोबारा पूछकर लाने वाला कोई प्रवाह नहीं है।
एक बार के निष्पादन में इस्तेमाल हो सकने वाले समय का एक बजट होता है। मूल रूप से यह 30 सेकंड है। अगर उसमें बाहरी सेवा को बुलाने वाली कोई क्रिया हो, तो उस क्रिया के लिए तय की गई प्रतीक्षा-अवधि जितना बजट बढ़ जाता है। इस तरह बढ़ने पर भी अधिकतम 180 सेकंड तक ही।
जो क्रिया किसी चीज़ को दोहराती है, वह बजट बहुत ख़र्च करती है। ऐसा इसलिए, क्योंकि दोहराव के अंदर की क्रिया के लिए तय की गई प्रतीक्षा-अवधि को दोहराव की संख्या से गुणा करके गिना जाता है। दोहराव की संख्या बड़ी रख देने पर बजट भी उतना ही बड़ा गिना जाता है।
तय समय बीत जाने पर वह निष्पादन वहीं रोक दिया जाता है। “उत्पाद विवरण भरना” बाहरी AI को एक बार बुलाती है, इसलिए मूल 30 सेकंड में उस एक बार की प्रतीक्षा-अवधि जोड़कर जितना बनता है, वही इस Script का बजट है।
हर क्रिया पर कितना बजट गिना जाता है, और निष्पादन पर लगने वाली बाकी बाधाएँ, ये निष्पादन सिमेंटिक्स, बाधाएँ, सुरक्षा में बताई गई हैं।
Script कौन बनाता है
जटिल क्रियाओं को इंसान के हाथ से एक-एक करके लिखने के बजाय, Script को इस तरह डिज़ाइन किया गया है कि उसे AI एजेंट या प्रोग्राम बनाए। AI एजेंट से बोलकर “उत्पाद का विवरण भर देने वाली एक खिड़की बना दो” कहने पर, एजेंट ऊपर देखी गई जैसी परिभाषा आपके बदले बना देता है। एक वाक्य कहते ही वेबसाइट के पीछे काम करने वाली एक खिड़की बन जाती है।
AI एजेंट से Script बनाने का विस्तृत तरीका एक वाक्य में बैकएंड बनाना में बताया गया है।
बनी हुई Script को प्रबंधन स्क्रीन (कंटेंट स्टूडियो) में इंसान देखता और प्रबंधित करता है। नाम और परिभाषा जाँचता है, ज़रूरत हो तो बदलता या मिटाता है। असल में Script को बुलाने वाला पक्ष वह वेबसाइट या ऐप (फ़्रंटएंड) है जो ग्राहक देखता है। उत्पाद में शामिल हुए सदस्य (ServiceUser) की पहचान से Script को केवल चलाया जा सकता है, बनाया या बदला नहीं जा सकता।
Webhook से यह कैसे अलग है
Script और Webhook दोनों बाहर से जोड़ने वाले साधन हैं, पर इनके बुलाने की दिशा उलटी है।
- Webhook तब अपने-आप प्रतिक्रिया देता है जब तय किया गया बदलाव हो जाए (जैसे कोई उत्पाद जुड़ जाए)। इंसान के बुलाए बिना भी, घटना घटते ही यह अपने-आप चल पड़ता है। पर यह बुलाने वाले को नतीजा नहीं लौटाता।
- Script वह खिड़की है जिसे वेबसाइट ज़रूरत होने पर खुद बुलाती है। बुलाने पर ही यह चलती है, और उस निष्पादन का नतीजा सीधे वापस मिल जाता है।
“मालिक ‘विवरण भरना’ दबाए तो AI को बुलाकर विस्तृत विवरण पाकर भर देना” ऐसा काम है जिसमें बुलाने वाला नतीजे का इंतज़ार करता है, इसलिए इसके लिए Script उपयुक्त है; और “उत्पाद जुड़ने पर अपने-आप कुछ हो जाना” घटना पर प्रतिक्रिया देने वाला काम है, इसलिए इसके लिए Webhook उपयुक्त है। और इन दोनों को साथ मिलाकर भी इस्तेमाल किया जा सकता है। इसे ठीक आगे देखेंगे।
जोड़ते ही विवरण अपने-आप भर जाए
अब तक मालिक “विवरण भरना” बटन दबाकर Script को खुद बुलाता रहा है। इससे एक कदम आगे बढ़कर, बिना बटन दबाए भी, उत्पाद जोड़ने के क्षण ही Script को अपने-आप चलाया जा सकता है। ऐसा इसलिए, क्योंकि Webhook उस घटना को पकड़कर हमारी Script को आपके बदले बुला देता है।
प्रवाह इस प्रकार है।
- मालिक एक उत्पाद जोड़ता है। इस समय बस उत्पाद का नाम और कीवर्ड भरता है, और विस्तृत विवरण खाली छोड़ देता है।
- उत्पाद नया जोड़े जाने की घटना को Webhook भाँप लेता है।
- Webhook अभी-अभी जोड़े गए उत्पाद को ज्यों-का-त्यों हमारी “उत्पाद विवरण भरना” Script को सौंपकर उसे चला देता है।
- Script बाहरी AI से विस्तृत विवरण बनवाकर उस उत्पाद के विस्तृत विवरण (
body) को भर देती है। - थोड़ी देर बाद उत्पाद का विस्तृत विवरण अपने-आप भरा हुआ मिलता है।
यहाँ Script वही है जो पहले थी। बदलता सिर्फ़ बुलाने का ज़रिया है। बटन के बजाय “उत्पाद जुड़ गया” यह घटना उसे बुलाती है। जोड़ा गया उत्पाद ज्यों-का-त्यों Script का इनपुट बन जाता है, इसलिए Script { /payload/sys/id } से उस उत्पाद को पकड़कर उसका विस्तृत विवरण भरती है।
Webhook की तरफ़ तीन बातें तय करनी होती हैं। किस घटना पर प्रतिक्रिया देनी है (जब उत्पाद नया जोड़ा जाए), किन उत्पादों पर ही प्रतिक्रिया देनी है (उत्पाद के प्रकार तक सीमित), और क्या करना है (बाहरी पते पर सूचना देने के बजाय हमारी Script को बुलाना)।
आपको यह चिंता हो सकती है कि Script का भरा हुआ विस्तृत विवरण फिर से “उत्पाद बदल गया” वाली घटना पैदा कर दे और यह सिलसिला बिना रुके चलता रहे। ऐसा नहीं होता। Script का लिखना, जब तक अलग से चालू न किया जाए, कोई नई घटना पैदा नहीं करता, और प्लेटफ़ॉर्म भी इस अंतहीन दोहराव को रोकता है।
किसी Script को इस तरह भी रखा जा सकता है कि वह केवल Webhook के ज़रिए ही चले, और बाहर से पते पर सीधे बुलाना रोक दिया जाए। तब वह Script सिर्फ़ तय की गई घटनाओं पर ही प्रतिक्रिया देती है, और सीधे बुलाने पर मना कर देती है। इसे सेट करने का तरीका Script संसाधन और एंडपॉइंट में बताया गया है।
इस तरह जोड़ने की विस्तृत सेटिंग Webhook में बताई गई है।
Script किन हालात में ख़ास उपयोगी है
अगर काम बस इतना हो कि बाहर “ऐसा कुछ हुआ है” यह बता देना है, तो Webhook अकेला ही काफ़ी है। पर अगर बाहरी सेवा को बुलाने के बाद उसके नतीजे को देखकर आगे फ़ैसला करना और काम को निपटाना हो, तो उस पूरे प्रवाह को एक जगह बाँधने वाली Script चाहिए।
शुल्क लेकर AI इमेज बनाकर देने वाली एक सुविधा को उदाहरण के रूप में लेते हैं। जब ग्राहक इमेज बनाने का अनुरोध करता है, तो क्रम से नीचे लिखे काम होने चाहिए।
- ग्राहक के पास पर्याप्त क्रेडिट है या नहीं, यह जाँचते हैं। कम हो तो यहीं रुककर “क्रेडिट पर्याप्त नहीं है” बता देते हैं।
- पर्याप्त हो तो, लागत के बराबर क्रेडिट पहले ही काट लेते हैं।
- बाहरी AI सेवा को बुलाकर इमेज बनाते हैं।
- बनी हुई इमेज को Content के रूप में सहेजते हैं।
- तीसरे या चौथे चरण में कोई समस्या आ जाए, तो अभी-अभी काटा गया क्रेडिट वापस लौटा देते हैं।
Webhook बाहर यह तो बता सकता है कि “अनुरोध आ गया है”, पर इस तरह नतीजे को देखकर क्रेडिट काटना, या नाकाम होने पर उसे पलट देना, यह वह नहीं कर सकता। कई चरणों को शर्त के हिसाब से जोड़ना, और नाकाम होने पर पिछले चरण को पलट देना, यह काम Script सँभालती है। Script ख़ास तौर पर जिन हालात में अपना काम दिखाती है, वे ये हैं।
- नतीजा देखकर आगे की कार्रवाई करनी हो, तब: बाहरी सेवा से मिले जवाब के हिसाब से सहेजना है, काटना है या पलटना है, यह उसी जगह तय कर लेती है।
- एक साथ आ जाने पर भी टकराव न हो, तब: एक ही ग्राहक कम अंतराल में दो बार अनुरोध कर दे, तब भी क्रेडिट दो बार नहीं कटना चाहिए। Script मान को पढ़ने के बाद, सहेजने से ठीक पहले, वर्शन के ज़रिए यह जाँच लेती है कि “इस बीच किसी और अनुरोध ने इस मान को बदल तो नहीं दिया”, और टकराव हुआ हो तो रुक जाती है।
- बुलाने वाले के पास जो अनुमति न हो, वह चाहिए हो तब: ग्राहक के पास अपने क्रेडिट बैलेंस को ख़ुद सीधे बदलने की अनुमति नहीं होती। फिर भी कटौती सुरक्षित ढंग से हो पाती है, क्योंकि Script उसे बनाने वाले की अनुमति उधार लेकर चलती है। बुलाने वाले को बस Script चलाने की अनुमति देना ही काफ़ी है। अनुमति उधार लेने की इस बात को नीचे चलाने और प्रबंधित करने की अनुमति में विस्तार से बताया गया है।
इस उदाहरण को असल Script परिभाषा के रूप में कैसे लिखा जाता है, यह कुकबुक के क्रेडिट जाँचने·काटने·पलटने वाले उदाहरण में बताया गया है।
चलाने और प्रबंधित करने की अनुमति
Script को चलाने या प्रबंधित करने के लिए भूमिका (SpaceRole) में उससे मेल खाती अनुमति होनी चाहिए।
- चलाना: Script को बुलाने के लिए भूमिका में Script चलाने की अनुमति (Execute) होनी चाहिए। न हो तो चलाना रुक जाता है।
- प्रबंधन: Script को बनाने, बदलने और मिटाने के लिए क्रमशः बनाने·बदलने·हटाने की अनुमति चाहिए।
Script चलाते समय जो जाँचा जाता है वह बस यही एक बात है: बुलाने वाले के पास चलाने की अनुमति (Execute) है या नहीं। Script के अंदर सजाई गई अलग-अलग क्रियाओं की, चलाने के उस क्षण, अलग से अनुमति नहीं जाँची जाती। यह वैसा ही है जैसे किसी ऐसे प्रोग्राम को बुलाते समय जिसे चलाने की इजाज़त है, केवल उस प्रोग्राम को चलाने की अनुमति देखी जाती है, न कि उसके अंदर होने वाले एक-एक काम की हर बार इजाज़त ली जाती है।
इसके बजाय अलग-अलग क्रियाओं की अनुमति चलाते समय नहीं, बल्कि Script को सहेजते समय पहले ही जाँच ली जाती है। बनाने वाले के पास उस Script के अंदर की क्रियाएँ जिन Content·Media पर काम करती हैं, उनकी अनुमति सचमुच होनी चाहिए, तभी वह सहेजी जाती है। उदाहरण के लिए “उत्पाद विवरण भरना” Script उत्पाद Content के विस्तृत विवरण को बदलती है, इसलिए अगर बनाने वाले के पास उत्पाद को बदलने की अनुमति न हो, तो सहेजना लौटा दिया जाता है। जिस Script में बिना-अनुमति वाली क्रिया शामिल हो, वह पहले से ही सहेजी नहीं जाती।
इस तरह देखें तो Script का चलना ऐसा है मानो वह उसे बनाने वाले की अनुमति उधार लेकर उसके बदले काम कर रही हो। बुलाने वाले के पास खुद जो काम करने की शक्ति न हो, वह भी अगर बनाने वाला कर सकता है, तो Script के ज़रिए वह वैसे ही हो जाता है। इसलिए Script बनाते समय यह सोच-समझकर तय करना चाहिए कि उसके अंदर कौन-सी क्रियाएँ रखी जाएँ। बनाने वाले की अनुमति ही उस Script के करने योग्य कामों का दायरा बन जाती है।
भूमिका में अनुमति डालने का तरीका भूमिका और अनुमतियाँ में बताया गया है।
जानने योग्य बातें
- इसमें प्रकाशन नहीं होता। Script उस तरह का संसाधन नहीं है जिसे प्रकाशित करके आगंतुक तक पहुँचाया जाता है, बल्कि यह वह खिड़की है जिसे प्रबंधन स्क्रीन में बनाकर रखा जाता है और वेबसाइट बुलाकर इस्तेमाल करती है। इसीलिए Content·Media के उलट इसमें प्रकाशन·प्रकाशन-रद्द जैसी स्थिति नहीं होती, और बनते ही इसे तुरंत इस्तेमाल किया जा सकता है। हर बार बदलने पर बस इसका वर्शन एक-एक करके बढ़ता है, और मिटाते समय भी प्रकाशन-रद्द जैसे किसी पहले के चरण के बिना यह सीधे मिट जाती है।
- इनकी संख्या पर एक सीमा है। Script शुल्क के दायरे में आती है, इसलिए एक Organization कितनी Script रख सकता है, यह हर योजना (प्लान) के हिसाब से तय है (Free 10, Basic 30, Pro 100, Enterprise असीमित)। सीमा तक पहुँच जाने पर नई Script नहीं बनाई जा सकती, और इस्तेमाल में न आने वाली Script मिटाने पर एक जगह फिर से खाली हो जाती है।
कंटेंट स्टूडियो में प्रबंधन
बनी हुई Script को कंटेंट स्टूडियो की Script स्क्रीन में देखा और प्रबंधित किया जाता है। बाईं ओर के मेन्यू में Scripts दबाने पर अब तक बनाई गई Script एक सूची के रूप में दिखाई देती हैं। सूची की हर पंक्ति में नाम, Endpoint (बुलाने का तरीका और पता, दोनों साथ दिखते हैं), अनाम कॉल की अनुमति है या नहीं, अपडेट किया गया, और द्वारा अपडेट किया गया दिखते हैं।

परिभाषा आम तौर पर AI एजेंट आपके बदले बना देता है, पर इस स्क्रीन में इसे सीधे भी बनाया जा सकता है। नई Script सूची के दाईं ओर ऊपर मौजूद बनाएं बटन से बनाई जाती है।
- सूची के दाईं ओर ऊपर मौजूद बनाएं बटन दबाएँ।
- नाम खाने में
उत्पाद विवरण भरनालिखें। - HTTP मेथड को इस Script के बुलाए जाने के तरीके (यहाँ
POST) पर सेट करें। - Statement खाने में करने के काम बताने वाली परिभाषा डालें। ऊपर दिए “उत्पाद विवरण भरना” उदाहरण की परिभाषा को ज्यों-का-त्यों डाला जा सकता है।
बनाने की स्क्रीन में इनके अलावा सीधी कॉल की अनुमति दें (बंद रखने पर कॉल URL से नहीं बुलाया जा सकता, और यह केवल Webhook या Scheduler के माध्यम से चलती है। डिफ़ॉल्ट चालू), अनाम कॉल की अनुमति दें (चालू करने पर Weegloo लॉगिन के बिना भी कोई तीसरा पक्ष बुला सके, ऐसा अनाम कॉल पता साथ बन जाता है। डिफ़ॉल्ट बंद), और कॉल URL (मानक कॉल·अनाम कॉल दो पंक्तियाँ, जो सहेजने पर ही तय होती हैं, इसलिए अभी खाली हैं) खाने भी होते हैं।

बुलाते समय साथ भेजे जाने वाले इनपुट को चलाने से पहले जाँचना हो, तो Payload Schema के Payload सत्यापन को चालू करके जाँचने का प्रारूप लिख रखें। सब भर जाने पर दाईं ओर ऊपर मौजूद बनाएं बटन दबाएँ।
सूची में से किसी एक Script को दबाने पर विवरण स्क्रीन खुल जाती है। विवरण स्क्रीन निष्पादन लॉग और सेटिंग, इन दो टैब में बँटी होती है, और पहली बार खोलने पर निष्पादन लॉग दिखता है। सेटिंग टैब में नाम और परिभाषा जाँची जाती है, और दाईं ओर इस Script का नंबर (ID), संस्करण, तथा परिवर्तन (बनाया गया·द्वारा बनाया गया·अपडेट किया गया·द्वारा अपडेट किया गया) साथ देखे जाते हैं। परिभाषा बदलने के बाद सहेजें करने पर संस्करण एक बढ़ जाता है। जिस Script का अब इस्तेमाल नहीं होता, उसे हटाएं से मिटाया जाता है।

निष्पादन लॉग टैब में इस Script के असल में चलने के रिकॉर्ड एक-एक पंक्ति करके जमा होते हैं। हर पंक्ति में निष्पादन समय, उस निष्पादन को किसने शुरू किया (ट्रिगर), परिणाम, अवधि, और उस निष्पादन को इंगित करने वाली अनुरोध ID दिखती है। ऊपर के परिणाम खाने से केवल सफल या केवल नाकाम रिकॉर्ड छानकर देखे जा सकते हैं, और लॉग रीफ़्रेश करें दबाने पर अभी-अभी चले रिकॉर्ड तक दोबारा पढ़ लिए जाते हैं।
रिकॉर्ड ज़्यादा समय तक नहीं रहते। सफल निष्पादन 1 घंटे बाद और नाकाम निष्पादन 3 दिन बाद अपने-आप मिट जाते हैं। सफल वाले पहले मिट जाते हैं, इसलिए कभी सूची में केवल नाकाम रिकॉर्ड ही बचे हुए दिखते हैं।

आगे क्या करें
- Script अवलोकन: Script को बनाने वाली परिभाषा की सबसे ऊपरी संरचना, निष्पादन के नियम, और वाक्य-रचना के दस्तावेज़ों का पूरा समूह बताता है।
- Statement कैटलॉग:
statementsमें डाली जा सकने वाली क्रियाओं (संसाधन बनाना·पढ़ना·बदलना·हटाना, बाहरी सेवा को बुलाना, शर्त·दोहराव आदि) की किस्में और Field बताता है। - Webhook: जैसे उत्पाद जुड़ने पर Script अपने-आप चल पड़े इस तरह जोड़ना, वैसे ही तय किए गए बदलाव होने पर अपने-आप प्रतिक्रिया कराने का तरीका बताता है।
