लोरबुक के लिए सिमैंटिक सर्च

सिमैंटिक सर्च से लोरबुक की कोई एंट्री सिर्फ़ हूबहू कीवर्ड से नहीं, बल्कि अर्थ से भी ट्रिगर हो सकती है। तब "sword" कीवर्ड वाली एंट्री उस संदेश से भी मैच कर सकती है जिसमें "blade" लिखा है। जब आपके लेखन में एक ही बात के लिए कई अलग-अलग शब्द आते हों, तब इसका इस्तेमाल करें।

यह एम्बेडिंग से चलता है, यानी संख्याओं की ऐसी लिस्ट जो किसी टेक्स्ट का अर्थ अपने अंदर समेट लेती है। Marinara हर एंट्री के लिए एक एम्बेडिंग सेव करता है, जिसे वेक्टर भी कहते हैं। इन्हें बनाने को वेक्टराइज़ करना कहते हैं। चैट के दौरान Marinara आपके हाल के संदेशों की एम्बेडिंग बनाता है और सबसे नज़दीकी एंट्री ढूँढता है।

सिमैंटिक सर्च मैच जोड़ता है। आपके कीवर्ड काम करते रहते हैं। बजट के हिसाब से कीवर्ड मैच और सिमैंटिक मैच की प्राथमिकता बराबर होती है, इसलिए जब सब कुछ जगह में न समाए, तो एंट्री का Order फ़ैसला करता है।

सिमैंटिक सर्च सेट करना

पहले एक एम्बेडिंग सोर्स चाहिए, फिर Vectors (वेक्टर) स्विच, और फिर वेक्टराइज़ का एक रन।

स्टेप 1: एम्बेडिंग सोर्स चुनें

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

पहला विकल्प: एम्बेडिंग मॉडल वाला अकाउंट।

  1. Connections (कनेक्शन) पैनल खोलें और किसी अकाउंट को एडिट करने के लिए खोलें।
  2. Advanced (एडवांस्ड) खोलें, फिर More (ज़्यादा), और Semantic search (embeddings) ढूँढें।
  3. एम्बेडिंग मॉडल का नाम लिखें, जैसे text-embedding-3-small। नाम पक्का पता न हो, तो अपनी सेवा का डॉक्यूमेंटेशन देखें, या इसकी जगह बिल्ट-इन मॉडल इस्तेमाल करें।
  4. अकाउंट सेव करें।
  5. जाँचने के लिए Test embedding (एम्बेडिंग टेस्ट करें) पर क्लिक करें। Marinara पहले सेव करता है, फिर एक छोटे सैंपल की एम्बेडिंग बनाता है, और वेक्टर साइज़ दिखाता है, जैसे "1536 dimensions", या सेवा से लौटी एरर।

एम्बेडिंग रिक्वेस्ट किसी दूसरे अकाउंट की कुंजी और पते से भेजने के लिए Embedding provider के नीचे वह अकाउंट चुनें। डिफ़ॉल्ट Same as this provider (यही प्रोवाइडर) है। अगर चुने गए अकाउंट का अपना एम्बेडिंग मॉडल है, तो Marinara उसी का इस्तेमाल करता है। नहीं तो यहाँ टाइप किया गया मॉडल नाम इस्तेमाल होता है।

दूसरा विकल्प: बिल्ट-इन मॉडल। यह बिना किसी API कुंजी के आपके कंप्यूटर पर चलता है, और पिकर में इसका नाम Built-in model (बिल्ट-इन मॉडल) है। यह डाउनलोड करने के बाद दिखता है, और Lite बिल्ड पर छिपा रहता है। बिल्ट-इन मॉडल का सेटअप देखें।

जिन अकाउंट में अपना कोई सोर्स सेट नहीं है, उन सबके लिए किसी एक सोर्स को डिफ़ॉल्ट बनाने के लिए Connections खोलें और उसे Embeddings (एम्बेडिंग) काम में चुनें। किसी अकाउंट की अपनी सेटिंग फिर भी प्राथमिकता पाती है। डिफ़ॉल्ट विकल्प Marinara's own search (Marinara की अपनी सर्च) बिल्ट-इन फ़ॉलबैक बनाए रखता है।

स्टेप 2: Vectors चालू करें

नई लोरबुक में सिमैंटिक सर्च बंद रहता है।

  1. लोरबुक खोलें और Overview (ओवरव्यू) टैब पर ही रहें।
  2. Vectors चालू करें। यह चालू हो, तो एंट्री अर्थ के हिसाब से भी मिल सकती हैं। यह बंद हो, तो कीवर्ड फिर भी काम करते हैं और लोरबुक वेक्टराइज़ नहीं होती।

जब तक Vectors बंद है, पैनल में यह नोट दिखता है: "Semantic search is disabled by the lorebook-level Vectors toggle."

स्टेप 3: एंट्री को वेक्टराइज़ करें

  1. Semantic search (embeddings) पैनल के ड्रॉपडाउन में एक सोर्स चुनें। पहला विकल्प No semantic search होता है। उपलब्ध हो, तो उसके बाद Built-in model आता है, फिर आपके काम आने लायक अकाउंट।
  2. Vectorize N missing पर क्लिक करें, जैसे "Vectorize 5 missing"।
  3. इंतज़ार करें। एक चिप प्रोग्रेस दिखाती है, जैसे "8/12 entries vectorized", और सब पूरा होने पर हरी हो जाती है।

अगर यह काम नहीं किया: किसी भी अकाउंट में एम्बेडिंग मॉडल न हो, तो पैनल में यह नोट दिखता है: "No connections with an embedding model configured. Set an Embedding Model on a connection first." स्टेप 1 पूरा करें और फिर कोशिश करें।

Semantic search (embeddings) पैनल

Vectors चालू करने के बाद यह पैनल Overview टैब पर इन सेटिंग्स के साथ दिखता है।

सेटिंगयह क्या करती हैडिफ़ॉल्टरेंज
Query Messagesहाल के कितने यूज़र संदेशों से सर्च करना है। 0 रखने पर सारे उपलब्ध संदेश इस्तेमाल होते हैं।100 से 100
Score Thresholdएंट्री के ट्रिगर होने के लिए कितनी समानता चाहिए। वैल्यू जितनी ऊँची, नियम उतना सख्त।0.30 से 1
Vector Limitएक जवाब में यह लोरबुक अर्थ के आधार पर ज़्यादा से ज़्यादा कितनी एंट्री जोड़ सकती है।101 से 100

Include character context कैरेक्टर के हाल के जवाबों में भी, आपके संदेशों से अलग, सर्च करता है और जो मैच ज़्यादा मज़बूत हो उसे रखता है। इससे ज़्यादा टेक्स्ट की एम्बेडिंग बनती है, और यह डिफ़ॉल्ट रूप से बंद रहता है। तब Query Messages कैरेक्टर के जवाबों पर भी लागू होता है।

0.2 जैसा कम Score Threshold ज़्यादा एंट्री को आने देता है, पर विषय से हटकर मैच होने का खतरा रहता है। 0.5 जैसा ऊँचा थ्रेशोल्ड सिर्फ़ नज़दीकी अर्थ से मैच करता है। डिफ़ॉल्ट से शुरू करें।

Vector Limit सिर्फ़ अर्थ वाले मैच गिनता है। आपके सामान्य टोकन बजट फिर भी लागू होते हैं।

दोबारा वेक्टराइज़ करना, डिलीट करना और छोड़ना

एम्बेडिंग मॉडल बदलने के बाद

सेव किए हुए वेक्टर उसी मॉडल के होते हैं जिसने उन्हें बनाया था। मॉडल बदलने के बाद Re-vectorize N entries या Re-vectorize all इस्तेमाल करें, ताकि हर एंट्री एक ही मॉडल पर रहे। "missing only" वाला रन अगर अलग साइज़ का वेक्टर लौटाए, तो उसे इस संदेश के साथ मना कर दिया जाता है: "Embedding dimensions changed. Use Re-vectorize all entries instead of only missing entries before switching embedding models."

एक गड़बड़ी चुपचाप होती है। चैट के दौरान Marinara आपके संदेशों की एम्बेडिंग सक्रिय अकाउंट के एम्बेडिंग मॉडल से बनाता है, या उसके Embedding provider वाले मॉडल से। अगर अकाउंट में इन दोनों में से कुछ भी सेट न हो, तो वह Embeddings काम का सोर्स इस्तेमाल करता है, या बिल्ट-इन मॉडल। अगर उस मॉडल का वेक्टर साइज़ आपकी एंट्री के वेक्टर से अलग हो, तो Marinara सिमैंटिक मैचिंग में उन एंट्री को छोड़ देता है और कोई एरर नहीं दिखाता। उसी सोर्स से वेक्टराइज़ करें जिसे आप चैट में इस्तेमाल करते हैं, और मॉडल बदलने के बाद हर बार दोबारा वेक्टराइज़ करें।

सिमैंटिक सर्च और Knowledge Router

जब कोई लोरबुक वेक्टराइज़ हो चुकी हो, तो Knowledge Router एजेंट भी अपनी छोटी लिस्ट बनाने के लिए अर्थ वाले मैच इस्तेमाल करता है। वेक्टर के बिना वह सिर्फ़ कीवर्ड मैच इस्तेमाल करता है। नॉलेज सोर्स: Retrieval और Router एजेंट देखें।

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