रेजेक्स स्क्रिप्ट
रेजेक्स स्क्रिप्ट यानी ऐसा फ़ाइंड-एंड-रिप्लेस नियम जो चैट के टेक्स्ट को अपने आप बदल देता है। इससे AI का जवाब साफ़ कर सकते हैं, अपने संदेश को नया रूप दे सकते हैं, या मॉडल तक पहुँचने वाला टेक्स्ट बदल सकते हैं। इसे इस्तेमाल करने के लिए कोडिंग आना ज़रूरी नहीं है।
रेजेक्स "regular expression" का छोटा रूप है। रेगुलर एक्सप्रेशन एक सर्च पैटर्न है, जो किसी नियम से मेल खाने वाला टेक्स्ट ढूँढता है। पैटर्न एक बार सेट कर दें, फिर वह हर मेल खाते संदेश पर चलता है।
उदाहरण: कुछ मॉडल एक्शन को तारांकनों के बीच लपेट देते हैं।
*She smiles* Hello there.यह पैटर्न हूबहू कॉपी करें: \([^]+)\*। इसे $1 से बदलें, तो तारांकन हट जाते हैं और उनके अंदर का टेक्स्ट बचा रहता है:
She smiles Hello there.$1 का मतलब है "पहले कोष्ठक-जोड़े में पकड़ा गया टेक्स्ट"। दूसरे आम इस्तेमाल हैं: कोष्ठक में लिखे आउट-ऑफ़-कैरेक्टर नोट मिटाना, किसी शब्द को सेंसर करना, और किसी एक कैरेक्टर की फ़ॉर्मैटिंग की आदतें ठीक करना।
रेजेक्स स्क्रिप्ट बनाएँ
आपकी ग्लोबल स्क्रिप्ट Presets (प्रीसेट) पैनल के Regexes हिस्से में रहती हैं। ऊपर की पट्टी में Presets बटन से इसे खोलें।
रेजेक्स स्क्रिप्ट बनाना
- Presets खोलें और Regexes ढूँढें।
- Create regex पर क्लिक करें। पूरा एडिटर खुल जाता है।
- सबसे ऊपर नाम टाइप करें। नई स्क्रिप्ट का नाम "New Regex Script" होता है।
- Find Pattern (Regex) में
\([^]+)\*टाइप करें (एडिटर के फ़ील्ड देखें)। - Replace With में
$1टाइप करें। - Apply To में AI Output चुना रहने दें। लागू करने का डिफ़ॉल्ट मोड Only Display सुरक्षित विकल्प है (स्क्रिप्ट कहाँ चले, यह चुनें देखें)।
- Live Test में
She smiles Hello there.पेस्ट करें। Result: मेंShe smiles Hello there.दिखना चाहिए। - Save पर क्लिक करें। कुछ पल के लिए हरे रंग का Saved नोट दिखता है।
- किसी चैट में जाँचें: जब AI के जवाब में तारांकनों के बीच टेक्स्ट हो, तो तारांकन अब नहीं दिखते।
अगर यह काम न करे: Find Pattern (Regex) के नीचे लाल एरर सेव रोक देती है। पैटर्न गलत या असुरक्षित है; सुरक्षा और परफ़ॉर्मेंस देखें।
अपनी स्क्रिप्ट संभालें
Regexes लिस्ट की हर पंक्ति में स्क्रिप्ट का नाम, AI या User टैग, /pattern/flags के रूप में पैटर्न, चालू/बंद टॉगल (तुरंत लागू होता है), Edit regex (पेंसिल) और Delete regex (कूड़ेदान) दिखते हैं। कोई स्क्रिप्ट न हो तो लिस्ट में "No regexes yet" दिखता है। चलने का क्रम बदलने के लिए पंक्ति को उसके हैंडल से खींचें।
हिस्से के हेडर में तीन आइकन बटन हैं: Create regex, Import regexes from JSON और Export regexes to JSON (आपकी सारी ग्लोबल स्क्रिप्ट एक फ़ाइल में सेव करता है)। किसी एक कैरेक्टर से जुड़ी स्क्रिप्ट अलग रखी जाती हैं; स्क्रिप्ट को एक कैरेक्टर तक सीमित करें देखें।
एडिटर के फ़ील्ड
Find Pattern (Regex)
सर्च पैटर्न। सिर्फ़ पैटर्न लिखें, शुरू या आखिर में स्लैश के बिना। प्लेसहोल्डर में उदाहरण दिखता है: \([^]+)\*।
Replace With
वह टेक्स्ट जो हर मैच की जगह आता है। मैच मिटाना हो तो इसे खाली छोड़ दें। पकड़े गए टेक्स्ट को $1, $2 वगैरह से दोबारा इस्तेमाल करें। कैप्चर से पहले ये केस-बदलाव काम करते हैं:
| लिखें | नतीजा |
\u$1 | कैप्चर का पहला अक्षर बड़ा करता है |
\U$1\E | पूरे कैप्चर को बड़े अक्षरों में बदलता है |
\l$1 | कैप्चर का पहला अक्षर छोटा करता है |
\L$1\E | पूरे कैप्चर को छोटे अक्षरों में बदलता है |
बैकस्लैश वाला अक्षरशः टेक्स्ट, जैसे Windows का पाथ C:\Users, जैसा लिखा है वैसा ही रहता है।
Regex Flags
टॉगल बटन, जो पैटर्न के मैच करने का तरीका बदलते हैं। नई स्क्रिप्ट में g और i शुरू से चालू रहते हैं।
| फ़्लैग | मतलब |
g | Global: सिर्फ़ पहला नहीं, हर मैच बदलता है |
i | Case-insensitive, यानी छोटे-बड़े अक्षर का फ़र्क नहीं पड़ता |
m | Multiline: ^ और $ लाइन ब्रेक पर मैच करते हैं |
s | dotAll: . न्यूलाइन वर्ण पर भी मैच करता है |
u, y, d | Unicode, sticky और match indices, खास मामलों के लिए |
Trim Strings
सादे टेक्स्ट की एक वैकल्पिक लिस्ट, जिसे रिप्लेसमेंट चलने के बाद हटा दिया जाता है। पंक्ति जोड़ने के लिए Add trim string पर क्लिक करें, और हटाने के लिए X बटन पर। इसे ऐसे तय टेक्स्ट के लिए इस्तेमाल करें जिसे पैटर्न से मैच कराने के बजाय टाइप करना आसान हो।
Live Test
नमूना टेक्स्ट पेस्ट करें, और नतीजा Result: के नीचे दिखता है। Live Test सिर्फ़ फ़ाइंड, रिप्लेस और ट्रिम का तर्क जाँचता है। प्लेसमेंट, चालू/बंद की हालत, कैरेक्टर स्कोप और डेप्थ असली चैट में जाँचे जाते हैं। पैटर्न, रिप्लेसमेंट और ट्रिम स्ट्रिंग में {{user}} और {{char}} जैसे मैक्रो इस्तेमाल कर सकते हैं। Live Test में ये नमूना वैल्यू इस्तेमाल करते हैं। मैक्रो देखें।
स्क्रिप्ट कहाँ चले, यह चुनें
Apply To
Apply To तय करता है कि स्क्रिप्ट चैट के किस पक्ष पर नज़र रखे। कम से कम एक चुना रखें। दोनों भी चुन सकते हैं।
- AI Output: AI के जवाबों पर, उनके दिखने से पहले चलता है।
- User Input: आपके संदेशों पर, उनके भेजे जाने से पहले चलता है।
Apply Mode
Apply Mode Advanced Options के अंदर है। यह तय करता है कि बदलाव किस चीज़ को बदलता है। नई स्क्रिप्ट Only Display पर शुरू होती है।
- Only Display: वह बदलता है जो आपको चैट में दिखता है। सेव किया संदेश और मॉडल का आगे का कॉन्टेक्स्ट वैसे ही रहते हैं। जवाब के दिखने का रूप सुधारने के लिए यही सबसे सुरक्षित है।
- Only Prompt: वह बदलता है जो मॉडल तक पहुँचता है, और प्रॉम्प्ट प्रीव्यू में भी यही दिखता है। दिखने वाला रूप और सेव किया संदेश वैसे ही रहते हैं। मॉडल जिस चीज़ की बार-बार नकल करता है, उसे हटाने के लिए इसे इस्तेमाल करें।
- Both: दिखने वाला रूप और प्रॉम्प्ट का टेक्स्ट, दोनों बदलता है।
अपने संदेशों के लिए, Only Display या Both पर सेट User Input स्क्रिप्ट संदेश को भेजे जाने से ठीक पहले बदल देती है। सेव और भेजा जाने वाला संदेश बदलता है, सिर्फ़ उसका दिखने वाला रूप नहीं। भेजे जाने वाले संदेशों के लिए सिर्फ़-दिखावे वाला कोई मोड नहीं है।
Execution Order और Depth Range
दोनों Advanced Options में हैं।
- Execution Order एक संख्या है। छोटी संख्या पहले चलती है, जो तब मायने रखता है जब एक ही टेक्स्ट पर कई स्क्रिप्ट मैच कर सकती हों। नई स्क्रिप्ट 0 से शुरू होती है, और सेव करते समय ऐप अगली खाली संख्या दे देता है। Regexes लिस्ट में पंक्तियाँ खींचकर भी क्रम बदल सकते हैं।
- Depth Range Min और Max से तय करता है कि स्क्रिप्ट कितना पीछे तक चले। सबसे नया संदेश डेप्थ 0 है, उससे पहले वाला डेप्थ 1, और इसी तरह आगे। हर डेप्थ पर चलाना हो तो दोनों खाली छोड़ दें। Min Max से बड़ा हो तो सेव रुक जाता है।
ग्रुप चैट
यह Individual (अलग-अलग जवाब) ग्रुप मोड वाली Roleplay चैट में Only Prompt और Both पर लागू होता है।
- प्लेसमेंट प्रॉम्प्ट पाने वाले कैरेक्टर के हिसाब से चलता है।
- आपके संदेश और दूसरे कैरेक्टर के संदेश User Input गिने जाते हैं।
- जवाब देने वाले कैरेक्टर के अपने जवाब AI Output गिने जाते हैं, उसी ग्रुप टर्न में पहले आए जवाब भी।
- कैरेक्टर की सीमाएँ अब भी तय करती हैं कि बदला हुआ प्रॉम्प्ट किसे मिलेगा। विचार छिपाने वाली स्क्रिप्ट से बाहर रखे गए नैरेटर के पास मूल विचार बने रहते हैं।
स्क्रिप्ट को एक कैरेक्टर तक सीमित करें
स्क्रिप्ट हर जगह चलने के बजाय खास कैरेक्टर से जुड़ी हो सकती है। इसके दो तरीके हैं।
- एडिटर में: Apply To कार्ड में Specific Characters चालू करें और एक या कई कैरेक्टर चुनें। टॉगल बंद हो तो स्क्रिप्ट पर "Applies to all characters" लिखा रहता है। टॉगल चालू हो तो कम से कम एक कैरेक्टर चुनें।
- कैरेक्टर पर: कैरेक्टर खोलें, Advanced टैब पर जाएँ और Regex Scripts कार्ड ढूँढें। इसमें सिर्फ़ उसी कैरेक्टर की स्क्रिप्ट दिखती हैं, और इसके अपने Create regex, इंपोर्ट और एक्सपोर्ट बटन होते हैं। पहले कैरेक्टर सेव करें, वरना कार्ड बताता है कि अभी स्क्रिप्ट नहीं जोड़ी जा सकतीं।
इस कार्ड से पूरा एडिटर खोलने पर Character Editor छूट जाता है। कैरेक्टर में बिना सेव किए बदलाव हों, तो ऐप पहले चेतावनी देता है।
हर चैट की Scoped Regex Scripts सेटिंग
कैरेक्टर तक सीमित स्क्रिप्ट अपने आप हर चैट में नहीं चलतीं। इन्हें हर चैट की एक सेटिंग नियंत्रित करती है। Chat Settings (चैट सेटिंग्स) खोलें। Scoped Regex Scripts हिस्सा तभी दिखता है जब उस चैट के कम से कम एक कैरेक्टर के पास सीमित स्क्रिप्ट हों।
| मोड | क्या होता है |
| Disabled (डिफ़ॉल्ट) | सीमित स्क्रिप्ट बंद रहती हैं। सिर्फ़ ग्लोबल स्क्रिप्ट चलती हैं। |
| Exclusive | हर सीमित स्क्रिप्ट सिर्फ़ अपने कैरेक्टर के संदेश बदलती है। |
| Chat | हर सीमित स्क्रिप्ट चैट के हर संदेश को बदलती है। |
Use preset default (प्रीसेट डिफ़ॉल्ट इस्तेमाल करें) प्रॉम्प्ट प्रीसेट के Scoped regex default (सीमित रेजेक्स का डिफ़ॉल्ट) के हिसाब से चलता है। कोई मोड चुनने पर इस चैट में उसकी जगह वही मोड चलता है। नई चैट किसी मोड के साथ शुरू करने के लिए इनमें से कोई तरीका अपनाएँ:
- उसे प्रीसेट का डिफ़ॉल्ट बनाएँ।
- उसे अपनी डिफ़ॉल्ट सेटिंग्स प्रोफ़ाइल में सेव करें।
- उसे चुनें, फिर Reset View (व्यू रीसेट करें) के पास वाला पसंदीदा लेआउट का स्टार दबाएँ (नई चैट का लेआउट चुनना देखें)।
मोड के नीचे पैनल हर कैरेक्टर की सीमित स्क्रिप्ट गिनाता है, हर स्क्रिप्ट के अपने स्विच के साथ। यह स्विच स्क्रिप्ट का अपना है, इसलिए इसे बदलने पर स्क्रिप्ट हर चैट में बदल जाती है। मोड दिखावे वाली स्क्रिप्ट को नियंत्रित करता है। प्रॉम्प्ट वाली स्क्रिप्ट हमेशा उसी कैरेक्टर के साथ चलती हैं जो जवाब जेनरेट कर रहा है।
स्क्रिप्ट इंपोर्ट करें और बदलें
SillyTavern से इंपोर्ट करें
Marinara SillyTavern के कैरेक्टर कार्ड में बंडल की गई रेजेक्स स्क्रिप्ट पढ़ता है। कार्ड इंपोर्ट करते समय Imported regex scripts हिस्सा दो विकल्प देता है:
- Character only (डिफ़ॉल्ट): स्क्रिप्ट उसी कैरेक्टर तक सीमित रहती हैं।
- Global: स्क्रिप्ट Presets में जुड़ जाती हैं और हर चैट में चलती हैं।
यह विकल्प एक कैरेक्टर वाली इंपोर्ट विंडो में भी आता है और थोक वाले Import from SillyTavern Folder तरीके में भी। जिन स्क्रिप्ट का पैटर्न खाली हो या जो सुरक्षा जाँच में फ़ेल हो जाएँ, उन्हें छोड़ दिया जाता है। स्क्रिप्ट की सादी JSON फ़ाइल इंपोर्ट करने के लिए Regexes में Import regexes from JSON इस्तेमाल करें। SillyTavern से इंपोर्ट करना देखें।
रेजेक्स पैक बदलें
- Presets → Regexes (प्रीसेट → रेजेक्स) में Select regex scripts (रेजेक्स स्क्रिप्ट चुनें) चुनें।
- पुराने पैक की एंट्री चेक करें, या Select all regex scripts (सारी रेजेक्स स्क्रिप्ट चुनें) चुनें।
- एक्शन बार में Export (एक्सपोर्ट करें) या Delete (डिलीट करें) इस्तेमाल करें। डिलीट करने से पहले एक बार पूछा जाता है, और इसे वापस नहीं लिया जा सकता।
- अपडेट किया हुआ पैक इंपोर्ट करें।
जिन स्क्रिप्ट का डिलीट होना फ़ेल हो, वे चुनी हुई रहती हैं, ताकि आप दोबारा कोशिश कर सकें। न चुनी गई स्क्रिप्ट अपनी जगह बनी रहती हैं। प्रीसेट से जोड़ने का विकल्प रेजेक्स एडिटर में उपलब्ध रहता है।
सुरक्षा और परफ़ॉर्मेंस
हर पैटर्न सेव होने या चलने से पहले जाँचा जाता है। जो पैटर्न धीमे चलकर ऐप को अटका सकता है, उसे इस संदेश के साथ रोक दिया जाता है, और उसे ठीक करने तक सेव रुका रहता है:
Regex pattern is unsafe: avoid nested quantifiers, ambiguous quantified alternatives, and oversized patterns.यह संदेश दिखे तो पैटर्न को छोटा और सरल बनाएँ। इस तरह के ढाँचों से बचें:
- 1000 वर्ण से लंबे पैटर्न।
- दोहराव वाला ग्रुप किसी दूसरे दोहराव वाले ग्रुप के अंदर, जैसे
(a+)+। - लगातार दो चौड़े वाइल्डकार्ड, जैसे
..या\s\w। चौड़ा वाइल्डकार्ड यानी.,\sया\w+जैसा टोकन, जो कितना भी टेक्स्ट मैच कर सकता है। - एक ही पैटर्न में कहीं भी तीन या उससे ज़्यादा चौड़े वाइल्डकार्ड, चाहे उनके बीच और टेक्स्ट भी हो।
a+ या (a+) जैसा अकेला दोहराव, या इकलौते .* जैसा एक चौड़ा वाइल्डकार्ड ठीक है।
सुरक्षित पैटर्न पर भी लंबे संदेश में हर रिप्लेसमेंट की एक समय सीमा होती है। कोई स्क्रिप्ट एक संदेश पर बहुत देर लगा दे, तो ऐप सिर्फ़ उसी संदेश के लिए उस स्क्रिप्ट को छोड़ देता है। स्क्रिप्ट चालू रहती है और अगले संदेश पर फिर कोशिश करती है। नया पैटर्न पहले Live Test में छोटे नमूना टेक्स्ट पर जाँचें।
मिलती-जुलती गाइड
- मैक्रो
- कैरेक्टर बनाना और एडिट करना
- SillyTavern से इंपोर्ट करना