रेजेक्स स्क्रिप्ट

रेजेक्स स्क्रिप्ट यानी ऐसा फ़ाइंड-एंड-रिप्लेस नियम जो चैट के टेक्स्ट को अपने आप बदल देता है। इससे AI का जवाब साफ़ कर सकते हैं, अपने संदेश को नया रूप दे सकते हैं, या मॉडल तक पहुँचने वाला टेक्स्ट बदल सकते हैं। इसे इस्तेमाल करने के लिए कोडिंग आना ज़रूरी नहीं है।

रेजेक्स "regular expression" का छोटा रूप है। रेगुलर एक्सप्रेशन एक सर्च पैटर्न है, जो किसी नियम से मेल खाने वाला टेक्स्ट ढूँढता है। पैटर्न एक बार सेट कर दें, फिर वह हर मेल खाते संदेश पर चलता है।

उदाहरण: कुछ मॉडल एक्शन को तारांकनों के बीच लपेट देते हैं।

*She smiles* Hello there.

यह पैटर्न हूबहू कॉपी करें: \([^]+)\*। इसे $1 से बदलें, तो तारांकन हट जाते हैं और उनके अंदर का टेक्स्ट बचा रहता है:

She smiles Hello there.

$1 का मतलब है "पहले कोष्ठक-जोड़े में पकड़ा गया टेक्स्ट"। दूसरे आम इस्तेमाल हैं: कोष्ठक में लिखे आउट-ऑफ़-कैरेक्टर नोट मिटाना, किसी शब्द को सेंसर करना, और किसी एक कैरेक्टर की फ़ॉर्मैटिंग की आदतें ठीक करना।

रेजेक्स स्क्रिप्ट बनाएँ

आपकी ग्लोबल स्क्रिप्ट Presets (प्रीसेट) पैनल के Regexes हिस्से में रहती हैं। ऊपर की पट्टी में Presets बटन से इसे खोलें।

रेजेक्स स्क्रिप्ट बनाना

  1. Presets खोलें और Regexes ढूँढें।
  2. Create regex पर क्लिक करें। पूरा एडिटर खुल जाता है।
  3. सबसे ऊपर नाम टाइप करें। नई स्क्रिप्ट का नाम "New Regex Script" होता है।
  4. Find Pattern (Regex) में \([^]+)\* टाइप करें (एडिटर के फ़ील्ड देखें)।
  5. Replace With में $1 टाइप करें।
  6. Apply To में AI Output चुना रहने दें। लागू करने का डिफ़ॉल्ट मोड Only Display सुरक्षित विकल्प है (स्क्रिप्ट कहाँ चले, यह चुनें देखें)।
  7. Live Test में She smiles Hello there. पेस्ट करें। Result: में She smiles Hello there. दिखना चाहिए।
  8. Save पर क्लिक करें। कुछ पल के लिए हरे रंग का Saved नोट दिखता है।
  9. किसी चैट में जाँचें: जब 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 शुरू से चालू रहते हैं।

फ़्लैगमतलब
gGlobal: सिर्फ़ पहला नहीं, हर मैच बदलता है
iCase-insensitive, यानी छोटे-बड़े अक्षर का फ़र्क नहीं पड़ता
mMultiline: ^ और $ लाइन ब्रेक पर मैच करते हैं
sdotAll: . न्यूलाइन वर्ण पर भी मैच करता है
u, y, dUnicode, sticky और match indices, खास मामलों के लिए

Trim Strings

सादे टेक्स्ट की एक वैकल्पिक लिस्ट, जिसे रिप्लेसमेंट चलने के बाद हटा दिया जाता है। पंक्ति जोड़ने के लिए Add trim string पर क्लिक करें, और हटाने के लिए X बटन पर। इसे ऐसे तय टेक्स्ट के लिए इस्तेमाल करें जिसे पैटर्न से मैच कराने के बजाय टाइप करना आसान हो।

Live Test

नमूना टेक्स्ट पेस्ट करें, और नतीजा Result: के नीचे दिखता है। Live Test सिर्फ़ फ़ाइंड, रिप्लेस और ट्रिम का तर्क जाँचता है। प्लेसमेंट, चालू/बंद की हालत, कैरेक्टर स्कोप और डेप्थ असली चैट में जाँचे जाते हैं। पैटर्न, रिप्लेसमेंट और ट्रिम स्ट्रिंग में {{user}} और {{char}} जैसे मैक्रो इस्तेमाल कर सकते हैं। Live Test में ये नमूना वैल्यू इस्तेमाल करते हैं। मैक्रो देखें।

स्क्रिप्ट कहाँ चले, यह चुनें

Apply To

Apply To तय करता है कि स्क्रिप्ट चैट के किस पक्ष पर नज़र रखे। कम से कम एक चुना रखें। दोनों भी चुन सकते हैं।

Apply Mode

Apply Mode Advanced Options के अंदर है। यह तय करता है कि बदलाव किस चीज़ को बदलता है। नई स्क्रिप्ट Only Display पर शुरू होती है।

अपने संदेशों के लिए, Only Display या Both पर सेट User Input स्क्रिप्ट संदेश को भेजे जाने से ठीक पहले बदल देती है। सेव और भेजा जाने वाला संदेश बदलता है, सिर्फ़ उसका दिखने वाला रूप नहीं। भेजे जाने वाले संदेशों के लिए सिर्फ़-दिखावे वाला कोई मोड नहीं है।

Execution Order और Depth Range

दोनों Advanced Options में हैं।

ग्रुप चैट

यह Individual (अलग-अलग जवाब) ग्रुप मोड वाली Roleplay चैट में Only Prompt और Both पर लागू होता है।

स्क्रिप्ट को एक कैरेक्टर तक सीमित करें

स्क्रिप्ट हर जगह चलने के बजाय खास कैरेक्टर से जुड़ी हो सकती है। इसके दो तरीके हैं।

इस कार्ड से पूरा एडिटर खोलने पर Character Editor छूट जाता है। कैरेक्टर में बिना सेव किए बदलाव हों, तो ऐप पहले चेतावनी देता है।

हर चैट की Scoped Regex Scripts सेटिंग

कैरेक्टर तक सीमित स्क्रिप्ट अपने आप हर चैट में नहीं चलतीं। इन्हें हर चैट की एक सेटिंग नियंत्रित करती है। Chat Settings (चैट सेटिंग्स) खोलें। Scoped Regex Scripts हिस्सा तभी दिखता है जब उस चैट के कम से कम एक कैरेक्टर के पास सीमित स्क्रिप्ट हों।

मोडक्या होता है
Disabled (डिफ़ॉल्ट)सीमित स्क्रिप्ट बंद रहती हैं। सिर्फ़ ग्लोबल स्क्रिप्ट चलती हैं।
Exclusiveहर सीमित स्क्रिप्ट सिर्फ़ अपने कैरेक्टर के संदेश बदलती है।
Chatहर सीमित स्क्रिप्ट चैट के हर संदेश को बदलती है।

Use preset default (प्रीसेट डिफ़ॉल्ट इस्तेमाल करें) प्रॉम्प्ट प्रीसेट के Scoped regex default (सीमित रेजेक्स का डिफ़ॉल्ट) के हिसाब से चलता है। कोई मोड चुनने पर इस चैट में उसकी जगह वही मोड चलता है। नई चैट किसी मोड के साथ शुरू करने के लिए इनमें से कोई तरीका अपनाएँ:

मोड के नीचे पैनल हर कैरेक्टर की सीमित स्क्रिप्ट गिनाता है, हर स्क्रिप्ट के अपने स्विच के साथ। यह स्विच स्क्रिप्ट का अपना है, इसलिए इसे बदलने पर स्क्रिप्ट हर चैट में बदल जाती है। मोड दिखावे वाली स्क्रिप्ट को नियंत्रित करता है। प्रॉम्प्ट वाली स्क्रिप्ट हमेशा उसी कैरेक्टर के साथ चलती हैं जो जवाब जेनरेट कर रहा है।

स्क्रिप्ट इंपोर्ट करें और बदलें

SillyTavern से इंपोर्ट करें

Marinara SillyTavern के कैरेक्टर कार्ड में बंडल की गई रेजेक्स स्क्रिप्ट पढ़ता है। कार्ड इंपोर्ट करते समय Imported regex scripts हिस्सा दो विकल्प देता है:

यह विकल्प एक कैरेक्टर वाली इंपोर्ट विंडो में भी आता है और थोक वाले Import from SillyTavern Folder तरीके में भी। जिन स्क्रिप्ट का पैटर्न खाली हो या जो सुरक्षा जाँच में फ़ेल हो जाएँ, उन्हें छोड़ दिया जाता है। स्क्रिप्ट की सादी JSON फ़ाइल इंपोर्ट करने के लिए Regexes में Import regexes from JSON इस्तेमाल करें। SillyTavern से इंपोर्ट करना देखें।

रेजेक्स पैक बदलें

  1. Presets → Regexes (प्रीसेट → रेजेक्स) में Select regex scripts (रेजेक्स स्क्रिप्ट चुनें) चुनें।
  2. पुराने पैक की एंट्री चेक करें, या Select all regex scripts (सारी रेजेक्स स्क्रिप्ट चुनें) चुनें।
  3. एक्शन बार में Export (एक्सपोर्ट करें) या Delete (डिलीट करें) इस्तेमाल करें। डिलीट करने से पहले एक बार पूछा जाता है, और इसे वापस नहीं लिया जा सकता।
  4. अपडेट किया हुआ पैक इंपोर्ट करें।

जिन स्क्रिप्ट का डिलीट होना फ़ेल हो, वे चुनी हुई रहती हैं, ताकि आप दोबारा कोशिश कर सकें। न चुनी गई स्क्रिप्ट अपनी जगह बनी रहती हैं। प्रीसेट से जोड़ने का विकल्प रेजेक्स एडिटर में उपलब्ध रहता है।

सुरक्षा और परफ़ॉर्मेंस

हर पैटर्न सेव होने या चलने से पहले जाँचा जाता है। जो पैटर्न धीमे चलकर ऐप को अटका सकता है, उसे इस संदेश के साथ रोक दिया जाता है, और उसे ठीक करने तक सेव रुका रहता है:

Regex pattern is unsafe: avoid nested quantifiers, ambiguous quantified alternatives, and oversized patterns.

यह संदेश दिखे तो पैटर्न को छोटा और सरल बनाएँ। इस तरह के ढाँचों से बचें:

a+ या (a+) जैसा अकेला दोहराव, या इकलौते .* जैसा एक चौड़ा वाइल्डकार्ड ठीक है।

सुरक्षित पैटर्न पर भी लंबे संदेश में हर रिप्लेसमेंट की एक समय सीमा होती है। कोई स्क्रिप्ट एक संदेश पर बहुत देर लगा दे, तो ऐप सिर्फ़ उसी संदेश के लिए उस स्क्रिप्ट को छोड़ देता है। स्क्रिप्ट चालू रहती है और अगले संदेश पर फिर कोशिश करती है। नया पैटर्न पहले Live Test में छोटे नमूना टेक्स्ट पर जाँचें।

मिलती-जुलती गाइड