ओपनवेबयूआई एक व्यापक मीडिया प्लेटफॉर्म है जिसमें एआई उपकरणों का एक समूह शामिल है: ओपनएआई, ओलामा, ऑटोमैटिक1111, कॉम्फीयूआई, व्हिस्पर एपीआई, कस्टम मॉडल प्रशिक्षण, क्रोमाडीबी के साथ लैंगचैन-आधारित आरएजी, हाइब्रिड बीएम25/वेब सर्च, और बहुत कुछ।
जबकि यह सब कुछ समय से उपलब्ध है, प्रलेखित है, और पायथन प्रोग्रामिंग ज्ञान के साथ कार्यान्वयन योग्य है, ओपनवेबयूआई व्यापक कोडिंग अनुभव के बिना भी आकर्षक और उपयोगी चैटबॉट बनाने का एक अनूठा अवसर प्रदान करता है।
इस लेख में, हम एक तकनीकी सहायता चैटबॉट बनाने की अपनी यात्रा को साझा करेंगे, जिसे उपयोगकर्ताओं के प्रश्नों का उत्तर देकर हमारी फ्रंट-लाइन टीम की सहायता करने के लिए डिज़ाइन किया गया है (और अंततः हमारी टीम का हिस्सा बन गया है)।
तत्काल तैनाती के साथ GPU सर्वर या पेशेवर-ग्रेड NVIDIA Tesla A100 / H100 80Gb या A5000 / A4000 कार्ड के साथ कस्टम कॉन्फ़िगरेशन वाला सर्वर किराए पर लें। गेमिंग RTX4090 कार्ड वाले GPU सर्वर भी उपलब्ध हैं।
हमारे पास MkDocs के लिए मटीरियल का उपयोग करके बनाया गया उपयोगकर्ता दस्तावेज़ है। इसके परिणामस्वरूप Markdown स्वरूपण के साथ .md फ़ाइलों वाली निर्देशिका संरचना बनती है। हमारे पास llama3-8b-instruct मॉडल लोड किए गए OpenWebUI और Ollama सेटअप भी है।
परियोजना लक्ष्य:
हमारा आरंभिक प्रयास केवल अपने मौजूदा दस्तावेज़ को उसके मूल मार्कडाउन प्रारूप में लोड करना और बिना किसी संशोधन के लामा3 मॉडल का उपयोग करना था। परिणाम, इसे हल्के ढंग से कहें तो, निराशाजनक थे:
पहला: हमारी मार्कडाउन फ़ाइलों में इमेज टैग, फ़ुटनोट, कोड ब्लॉक, बोल्ड और इटैलिक फ़ॉर्मेटिंग, आंतरिक और बाहरी लिंक, आइकन और यहां तक कि बटन के लिए " ** " निर्माण जैसे विभिन्न तत्व शामिल हैं। यह सभी अतिरिक्त "शोर" दस्तावेज़ को प्रोसेसिंग के लिए टुकड़ों में तोड़ते समय समस्याएँ पैदा करते हैं।
दूसरा: वाक्य-ट्रांसफॉर्मर/ऑल-मिनीएलएम-एल6-वी2 मॉडल, जिसे ओपनवेबयूआई 384-आयामी वेक्टर स्पेस (क्लस्टरिंग और सिमेंटिक सर्च जैसे आरएजी कार्यों के लिए आवश्यक) में वाक्यों और पैराग्राफों का प्रतिनिधित्व करने के लिए डिफ़ॉल्ट रूप से उपयोग करता है, मुख्य रूप से अंग्रेजी पर प्रशिक्षित है। हम चाहते हैं कि हमारा बॉट अंततः अन्य भाषाओं का भी समर्थन करे।
तीसरा: जबकि लामा3 एक निर्देश मॉडल है, फिर भी इसे उपयोगकर्ता प्रश्नों के उत्तर देने पर ध्यान केंद्रित करने के बजाय ऑफ-टॉपिक चर्चाओं में चलाया जा सकता है। 70b मॉडल अधिक उपयुक्त हो सकता है, लेकिन इसके लिए 40GB वीडियो मेमोरी वाले GPU की आवश्यकता होती है, जबकि लामा3-8b केवल 8GB वाले GPU पर चल सकता है।
जबकि तीसरे मुद्दे को संभावित रूप से एक कस्टम मॉडल (ओपनएआई शब्दावली में एजेंट) बनाकर संबोधित किया जा सकता है, पहले दो के लिए अधिक महत्वपूर्ण वर्कअराउंड की आवश्यकता होती है। यहाँ हम अब तक क्या लेकर आए हैं।
सबसे पहले, हम दस्तावेज़ को हमारे RAG (रिट्रीवल ऑगमेंटेड जेनरेशन) सिस्टम में लोड करने के लिए उपयुक्त प्रारूप में बदल देंगे। हमने इस प्रक्रिया को स्वचालित करने के लिए ai_text_generator नामक एक शक्तिशाली बैश स्क्रिप्ट बनाई है।
स्क्रिप्ट सभी डॉक्यूमेंटेशन निर्देशिकाओं को पार करती है और मार्कडाउन मार्कअप को हटाने और बदलने के लिए sed, awk और perl के भीतर नियमित अभिव्यक्तियों का उपयोग करती है जो RAG द्वारा आवश्यक नहीं है। अंत में, यह प्रत्येक दस्तावेज़ के अंत में https://hostkey.com/documentation पर होस्ट किए गए मूल दस्तावेज़ के लिए एक लिंक जोड़ता है।
यह स्क्रिप्ट OpenWebUI में RAG सिस्टम के साथ उपयोग के लिए आपके दस्तावेज़ को सावधानीपूर्वक तैयार करती है। यहाँ इसके कार्यों का चरण-दर-चरण सारांश दिया गया है:
स्क्रिप्ट चलाने के बाद, ai_data निर्देशिका में OpenWebUI के RAG सिस्टम में लोड करने के लिए तैयार फ़ाइलों का एक सेट होगा।
इसके बाद, हमें अपने दस्तावेज़ वेक्टर डेटाबेस और ओलामा एलएलएम के साथ काम करने के लिए ओपनवेबयूआई में एक नया मॉडल जोड़ने की आवश्यकता है। इस मॉडल को केवल अंग्रेजी में ही नहीं, बल्कि अधिक अनौपचारिक, 'आप' (ты) टोन का समर्थन करना चाहिए। हम भविष्य में तुर्की जैसी अन्य भाषाओं के लिए समर्थन जोड़ने की योजना बना रहे हैं।
आरंभ करने के लिए, हम एडमिन पैनल - सेटिंग्स - दस्तावेज़ पर जाएँगे। एम्बेडिंग मॉडल फ़ील्ड में, हम वाक्य-ट्रांसफ़ॉर्मर्स/ऑल-मिनीएलएम-एल12-वी2 का चयन करेंगे। हमने इस सूची (https://www.sbert.net/docs/sentence_transformer/pretrained_models.html) से सभी अनुशंसित मॉडलों का परीक्षण किया है और पाया है कि यह सबसे उपयुक्त है।
हम इसे डाउनलोड और इंस्टॉल करने के लिए एम्बेडिंग मॉडल फ़ील्ड के बगल में स्थित डाउनलोड आइकन पर क्लिक करेंगे।
तुरंत, हम RAG पैरामीटर सेट करेंगे:
• शीर्ष K = 10: इसका मतलब है कि सिस्टम प्रतिक्रिया उत्पन्न करते समय शीर्ष 10 सबसे प्रासंगिक दस्तावेजों पर विचार करेगा।
• खंड आकार = 1024: दस्तावेजों को प्रसंस्करण के लिए 1024 टोकन के खंडों में विभाजित किया जाएगा।
• चंक ओवरलैप = 100: लगातार चंक के बीच 100-टोकन ओवरलैप होगा।
उसके बाद, आप वर्कस्पेस - दस्तावेज़ अनुभाग पर जा सकते हैं और हमारे दस्तावेज़ अपलोड कर सकते हैं। बाद में मॉडल या API अनुरोधों से कनेक्ट करना आसान बनाने के लिए इसे एक विशिष्ट संग्रह टैग (हमारे मामले में, hostkey_en) देना एक अच्छा विचार है।
इसके बाद, हम अपने चैटबॉट के लिए एक कस्टम मॉडल बनाएंगे। ऐसा करने के लिए, हम वर्कस्पेस - मॉडल पर वापस जाएंगे और प्लस आइकन पर क्लिक करेंगे।
हम अपने चैटबॉट को एक नाम देंगे और आधार मॉडल का चयन करेंगे (हमारे मामले में, llama3-latest)।
फिर, हम सिस्टम प्रॉम्प्ट को परिभाषित करेंगे। यह चैटबॉट को बताता है कि उसे खुद को कैसे देखना है और कैसे व्यवहार करना है। यह इसकी भूमिका, सीमाओं और हमारे वांछित परिणामों को रेखांकित करता है।
यहां वह सिस्टम प्रॉम्प्ट है जिसे हमने अपने तकनीकी सहायता चैटबॉट के लिए डिज़ाइन किया है:
You are HOSTKEY an IT Support Assistant Bot, focused on providing users with IT support based on the content from knowledge base. Stay in character and maintain your focus on IT support, avoiding unrelated activities such as creative writing or engaging in non-IT discussions.
If you cannot find relevant information in the knowledge base or if the user asks non-related questions that are not part of the knowledge base, do not attempt to answer and inform the user that you are unable to assist and print text "Visit https://hostkey.com/documentation for more information" at the end.
Provide short step-by-step instructions and external links
Provide a link to relevant doc page about user question started with 'See more information here:'Add text "Visit https://hostkey.com/documentation for more information" at the end.
Example of answer: " User: How can I cancel my server?
Bot:
You can cancel your server at any time. To do this, you need to access the Invapi control panel and follow these steps:
- Go to the "Billing" tab in the specific server management menu.
- Click the [Cancel service] button.
- Describe the reason for the cancellation and select its type.
- Click the [Confirm termination] button.
Please note that for immediate cancellation, we will not refund the hours of actual server usage, including the time to provision the server itself, order software, and process the cancellation request (up to 12 hours). The unused balance will be returned to your credit balance. Withdrawal of funds from the credit balance will be made in accordance with our refund policy.
You can cancel the service cancellation request in the Billing tab using the [Revoke] button.
Additionally, if you need to cancel a service that includes an OS/software license or has a customized/non-standard configuration, please contact us via a ticketing system for manual refund processing.
See more information here: https://hostkey.com/documentation/billing/services_cancellation/ "
इसके बाद, हम आवश्यक दस्तावेज़ संग्रह को कनेक्ट करेंगे। ज्ञान अनुभाग में, हम दस्तावेज़ चुनें बटन पर क्लिक करेंगे और उसके टैग के आधार पर हमें जिस संग्रह की आवश्यकता है उसे चुनेंगे।
तत्काल तैनाती के साथ GPU सर्वर या पेशेवर-ग्रेड NVIDIA Tesla A100 / H100 80Gb या A5000 / A4000 कार्ड के साथ कस्टम कॉन्फ़िगरेशन वाला सर्वर किराए पर लें। गेमिंग RTX4090 कार्ड वाले GPU सर्वर भी उपलब्ध हैं।
हमें एडवांस्ड पैरामीटर्स टैब के अंतर्गत छिपे कुछ अतिरिक्त पैरामीटर्स को भी कॉन्फ़िगर करना होगा। शो पर क्लिक करने से ये सेटिंग्स सामने आ जाएँगी। हम तापमान को 0.3 और संदर्भ लंबाई को 4089 पर सेट करेंगे।
अंत में, हम अपना कस्टम तकनीकी सहायता चैटबॉट मॉडल बनाने के लिए सेव एंड अपडेट पर क्लिक करते हैं।
और अब यह हो गया! हमारा चैटबॉट काम करने और उपयोगकर्ता के अनुरोधों को संभालने के लिए तैयार है। यह विनम्र, धैर्यवान और 24/7 उपलब्ध है।
ध्यान में रखने योग्य कुछ महत्वपूर्ण सुझाव यहां दिए गए हैं:
अब जबकि हमने चैटबॉट का परीक्षण कर लिया है, अगला कदम इसे हमारी कंपनी की मौजूदा चैट प्रणाली में एकीकृत करना है। OpenWebUI एक API प्रदान करता है और Ollama के प्रॉक्सी के रूप में कार्य कर सकता है, जिससे इसकी अपनी अनूठी विशेषताएं जुड़ जाती हैं। हालाँकि, दस्तावेज़ीकरण अभी भी कम है, जिससे एकीकरण थोड़ा चुनौतीपूर्ण हो गया है।
कोड और कमिट इतिहास की जांच करके, हमने API अनुरोधों को संरचित करने के तरीके के बारे में कुछ जानकारी प्राप्त की है, लेकिन यह अभी भी अपेक्षा के अनुसार काम नहीं कर रहा है। हम कस्टम मॉडल को कॉल करने में कामयाब रहे हैं, लेकिन RAG कार्यक्षमता के बिना।
हम आगामी रिलीज में डेवलपर्स द्वारा वादा किए गए फीचर्स का बेसब्री से इंतजार कर रहे हैं, जिनमें RAG, वेब सर्च और विस्तृत उदाहरण और विवरण शामिल हैं।
परीक्षण प्रक्रिया में हमारे दस्तावेज़ीकरण में कुछ विसंगतियां और अतिरेक भी सामने आए। यह चैटबॉट के प्रदर्शन को बढ़ाने और हमारे दस्तावेज़ीकरण की समग्र स्पष्टता और सटीकता में सुधार करने का अवसर प्रस्तुत करता है।
तत्काल तैनाती के साथ GPU सर्वर या पेशेवर-ग्रेड NVIDIA Tesla A100 / H100 80Gb या A5000 / A4000 कार्ड के साथ कस्टम कॉन्फ़िगरेशन वाला सर्वर किराए पर लें। गेमिंग RTX4090 कार्ड वाले GPU सर्वर भी उपलब्ध हैं।