विकिपीडिया:बॉट बनाने की प्रक्रिया

मुक्त ज्ञानकोश विकिपीडिया से
यहाँ जाएँ: भ्रमण, खोज


रोबोट या बोट्स स्वचालित प्रक्रियाएं हैं जो कि विकिपीडिया (और अन्य विकिमीडिया परियोजनाओं) के साथ सहभागिता करती हैं जैसे कि वे मानव संपादकों थे यह पृष्ठ विकिमीडिया प्रोजेक्ट्स पर उपयोग के लिए एक बॉट के विकास को कैसे समझा सकता है और इसके बारे में अधिक जानकारी मीडियाविकि के आधार पर अन्य विकी के लिए हस्तांतरणीय है। स्पष्टीकरण मुख्य रूप से कुछ पूर्व प्रोग्रामिंग अनुभव वाले लोगों के प्रति है, लेकिन विकिपीडिया बॉट बनाने के लिए इस ज्ञान को कैसे लागू किया जाए, इसके बारे में अनिश्चितता है।

बॉट बनाने की आवश्यकता क्यों ?[संपादित करें]

बोट्स कार्यों को स्वचालित कर सकते हैं और मानवों की तुलना में उन्हें बहुत तेज़ प्रदर्शन कर सकते हैं। यदि आपके पास एक साधारण कार्य है जिसे आपको कई बार प्रदर्शन करने की ज़रूरत होती है (एक उदाहरण 1000 पृष्ठों के साथ किसी श्रेणी में सभी पृष्ठों पर एक टेम्प्लेट जोड़ना है), तो यह एक ऐसा कार्य है जो किसी इंसान के मुकाबले बेहतर है।

बॉट बनाने से पहले ध्यान रखने योग्य बातें[संपादित करें]

यह वर्तमान बॉट से बॉट जॉब का अनुरोध करने के लिए अक्सर आसान होता है यदि आपके पास केवल आवधिक अनुरोध हैं या प्रोग्रामिंग के साथ असहज हैं, तो यह आमतौर पर सबसे अच्छा समाधान है। इन अनुरोधों को बॉट अनुरोधों पर बनाया जा सकता है। इसके अलावा, किसी भी व्यक्ति के लिए कई अर्ध-बॉट उपलब्ध हैं इनमें से ज्यादातर मीडियाविकी-विशिष्ट कार्यक्षमता के साथ बढ़े हुए वेब ब्राउज़र के रूप लेते हैं इनमें से सबसे लोकप्रिय ऑटोविकीब्राइवर (एडब्ल्यूबी) है, विशेष रूप से विकिपीडिया और अन्य विकिमीडिया परियोजनाओं पर संपादन के लिए सहायता के लिए बनाया गया एक ब्राउज़र। अर्ध-बॉट की एक पूरी सूची उपकरण / संपादन उपकरण पर पाई जा सकती है। अर्ध-बॉट्स, जैसे कि एडब्लूबी, अक्सर प्रोग्रामिंग की बहुत कम या कोई समझ के साथ संचालित हो सकते हैं।

यदि आप अपनी आवश्यकताओं की आवृत्ति या नवीनता के कारण आपको अपनी खुद की एक बॉट की जरूरत है, तो आपको एक से खरोंच से लिखने की आवश्यकता नहीं है। विकिपीडिया पर पहले से ही चल रहे कई बॉट हैं और इनमें से कई बॉट्स उनके स्रोत कोड को प्रकाशित करते हैं, जिसे कभी-कभी कुछ अतिरिक्त विकास समय के साथ पुन: उपयोग किया जा सकता है वहाँ भी उपलब्ध मानक बॉट फ़्रेमवर्क उपलब्ध हैं एक मौजूदा बॉट को संशोधित करना या एक ढांचा का उपयोग करना, विकास के समय को बहुत तेज करता है। इसके अलावा, क्योंकि ये कोड आधार सामान्य उपयोग में हैं और सामुदायिक परियोजनाओं को बनाए रखा है, उपयोग के लिए स्वीकृत इन चौखटे के आधार पर बॉट्स प्राप्त करना आसान है। इन चौखटे के सबसे लोकप्रिय और सामान्य हैं Pywikibot (पीडब्लूबी), एक बॉट फ्रेमवर्क जो पायथन में लिखे गए हैं। यह अच्छी तरह से प्रलेखित और परीक्षण किया गया है और कई मानकीकृत Pywikibot स्क्रिप्ट (बोट निर्देश) पहले से ही उपलब्ध हैं। बोट चौखटे के अन्य उदाहरण नीचे पाये जा सकते हैं इन बॉट फ्रेमवर्क में से कुछ के लिए, जैसे पीडब्लूबी, स्क्रिप्ट के साथ एक सामान्य परिचित सफलतापूर्वक बीट को चलाने के लिए आवश्यक है (इन चौखटे को नियमित रूप से अपडेट करना महत्वपूर्ण है)

एक नई बॉट को लिखना महत्वपूर्ण प्रोग्रामिंग क्षमता की आवश्यकता है। नियमित ऑपरेशन के लिए स्वीकृत होने से पहले एक पूरी तरह से नए बॉट को पर्याप्त परीक्षण से गुजरना होगा। एक सफल बॉट लिखने के लिए, योजना महत्वपूर्ण है निम्नलिखित विचार महत्वपूर्ण हैं:

  • क्या बॉट को मैन्युअल रूप से सहायता मिलेगी या पूरी तरह से स्वचालित?
  • क्या आप अकेले बॉट बना सकते हैं या अन्य प्रोग्रामर्स की सहायता से?
  • बॉट के अनुरोध, संपादन, या अन्य कार्यों को लॉग किया जाएगा? यदि हां, तो क्या लॉग स्थानीय मीडिया पर, या विकी पृष्ठों पर संग्रहीत किए जाएंगे?
  • क्या कोई वेब ब्राउज़र (उदाहरण के लिए, जावास्क्रिप्ट में लिखा) के अंदर बॉट चलाएगा, या यह एक स्टैंडअलोन प्रोग्राम होगा?
  • यदि बॉट एक स्टैंडअलोन प्रोग्राम है, तो क्या वह आपके स्थानीय कंप्यूटर पर चलाया जाएगा, या दूरस्थ सर्वर पर जैसे कि विकिमीडिया लैब्स?
  • यदि बॉट एक रिमोट सर्वर पर चलता है, तो क्या अन्य संपादक बोट को संचालित कर सकते हैं या इसे चालू कर सकते हैं?

विकिपीडिया बॉट कैसे काम करता है?[संपादित करें]

अवलोकन[संपादित करें]

Wikieditcycle.svg

मानव संपादक की तरह, एक विकिपीडिया बॉट विकिपीडिया पृष्ठ पढ़ता है, और परिवर्तन करता है जहां यह सोचता है कि परिवर्तन किए जाने की आवश्यकता है। अंतर यह है कि हालांकि बोट तेजी से और कम मनुष्यों की तुलना में थकान से ग्रस्त हैं, वे कहीं भी नहीं हैं जैसे हम हैं। बॉट्स दोहराए जाने वाले कार्यों में अच्छा है, जो आसानी से परिभाषित पैटर्न हैं, जहां कुछ फैसले किए जाने हैं।

सबसे विशिष्ट परिस्थिति में, एक बॉट अपने खाते में लॉग करता है और विकिपीडिया से पृष्ठों को अनुरोध करता है जैसे एक ब्राउज़र के समान होता है - हालांकि यह स्क्रीन पर पृष्ठ प्रदर्शित नहीं करता है, लेकिन इसके लिए मेमोरी में काम करता है - और फिर प्रोग्राम की जांच करता है पृष्ठ को देखने के लिए कि क्या कोई भी परिवर्तन किए जाने की आवश्यकता है। यह तब बनाता है और प्रस्तुत करता है कि जो कुछ भी करने के लिए डिज़ाइन किया गया था, फिर से उसी तरह से एक ब्राउज़र जिस तरह से होगा

क्योंकि बोट्स पेजों को उसी तरह से उपयोग करते हैं, जैसे लोग करते हैं, बॉट्स उसी तरह की कठिनाइयों का अनुभव कर सकते हैं जो मानव उपयोगकर्ता करते हैं वे संपादन विरोध में पकड़े जा सकते हैं, पेज टाइमआउट्स कर सकते हैं, या अन्य अप्रत्याशित जटिलताओं में चल सकते हैं, जबकि पृष्ठों का अनुरोध करते हैं या संपादन करते हैं। क्योंकि किसी बॉट द्वारा किए गए काम की मात्रा एक जीवित व्यक्ति की तुलना में अधिक है, क्योंकि बॉट इन मुद्दों का सामना करने की अधिक संभावना है। इस प्रकार, एक बोट लिखते समय इन स्थितियों पर विचार करना महत्वपूर्ण है।

बॉट के लिए ए.पी.आई[संपादित करें]

विकिपीडिया पृष्ठों में परिवर्तन करने के लिए, एक बॉट को आवश्यक रूप से विकिपीडिया से पृष्ठों को पुनः प्राप्त करना होगा और संपादन वापस भेजना होगा। उस प्रयोजन के लिए उपलब्ध कई अनुप्रयोग प्रोग्रामिंग इंटरफेस (एपीआई) हैं

मिडियाविकि एपीआई (एपीआई.एफ़पी) यह लाइब्रेरी विशेष रूप से स्वचालित प्रक्रियाओं जैसे बॉट्स को क्वेरीज़ करने और पोस्ट करने के लिए अनुमति देने के लिए लिखा गया था। डेटा कई अलग-अलग मशीन-पठनीय प्रारूपों (जेएसओएन, एक्सएमएल, वाईएएमएल, ...) में उपलब्ध है। विशेषताएं पूरी तरह से पुराने क्वेरी एपीआई इंटरफेस से रखी गई हैं; एपीआई पुस्तिका पेज देखें। स्थिति: सभी विकिमीडिया परियोजनाओं पर उपलब्ध है, जिसमें प्रश्नों का एक बहुत ही पूरा सेट है Api.php के माध्यम से पृष्ठों को संपादित करने की क्षमता को सभी विकिमीडिया प्रोजेक्ट्स पर सक्षम किया गया है, जिससे स्क्रीन को स्क्रैपिंग के बिना पूरी तरह से संचालित करने के लिए बॉट्स को सक्षम किया जा सकता है। उन लोगों के लिए एक एपीआई सैंडबॉक्स भी है, जो कि एपीआई.एफ़पी की विशेषताएं जांचना चाहते हैं। स्क्रीन स्क्रैपिंग (index.php) स्क्रीन स्क्रैपिंग में विकिपीडिया पृष्ठ का अनुरोध करना शामिल है, कच्चे HTML कोड को देखकर (आप देखेंगे कि क्या आप देखेंगे कि अधिकांश ब्राउज़रों में देखें → स्रोत देखें), और उसके बाद पैटर्न के लिए HTML का विश्लेषण करें। इस दृष्टिकोण के साथ कुछ समस्याएं हैं: विकिपीडिया इंटरफ़ेस बिना किसी सूचना के बदल सकते हैं, जो बोट कोड को तोड़ सकते हैं, और एचटीएमएल के लिए बुला रहे विकिक्टिक्ट की प्रक्रिया के मुकाबले एक बड़ा सर्वर लोड बनाता है। मूल रूप से इस तकनीक का अब और उपयोग करने का कोई कारण नहीं है। स्थिति: पदावनत विशेष: निर्यात का इस्तेमाल एक्सएमएल फॉर्म में पृष्ठ सामग्री के थोक निर्यात को प्राप्त करने के लिए किया जा सकता है। मैनुअल देखें: पैरामीटर विशेष: तर्कों के लिए निर्यात; स्थिति: मीडियाविकि की अंतर्निहित विशेषता, सभी विकिमीडिया सर्वर पर उपलब्ध है कच्चे (विकीटेक्स्ट) पेज प्रोसेसिंग: एक्शन = कच्चे या एक्शन = कच्चा और टेम्पलेट्स = विस्तृत भेजने index.php के लिए अनुरोध प्राप्त करें एक पृष्ठ के अप्रसारित विकीटेक्स्ट स्रोत कोड देगा। प्रोप = संशोधन और आरवीपीपी = सामग्री या प्रोप = संशोधन और आरवीपीप्रॉप = सामग्री और आरवीएक्सपैंटैम्प्लेट = 1 के साथ एपीआई क्वेरी मोटे तौर पर बराबर होती है, और अतिरिक्त जानकारी को पुनः प्राप्त करने की अनुमति देती है। स्थिति: मीडियाविकि की अंतर्निहित विशेषता, सभी विकिमीडिया सर्वर पर उपलब्ध है कुछ विकिपीडिया वेब सर्वर को संकुचित (जीज़िप) सामग्री के लिए अनुरोध देने के लिए कॉन्फ़िगर किया गया है। यह HTTP अनुरोध हैडर में एक पंक्ति "स्वीकार-एन्कोडिंग: जीज़िप" को शामिल करके किया जा सकता है; यदि HTTP उत्तर शीर्षक में "सामग्री-एन्कोडिंग: gzip" है, तो दस्तावेज़ gzip प्रपत्र में है, अन्यथा, यह नियमित असम्पीडित रूप में है ध्यान दें कि यह वेब सर्वर के लिए विशिष्ट है और मीडियाविकी सॉफ्टवेयर के लिए नहीं। मिडियाविकि को काम पर रखने वाली अन्य साइटें इस सुविधा को नहीं मिल सकती हैं यदि आप मौजूदा बॉट फ़्रेमवर्क का उपयोग कर रहे हैं, तो इसे इस तरह कम-स्तर के संचालन को संभालना चाहिए।

लॉगिंग[संपादित करें]

संपादन करने के लिए स्वीकृत बॉट्स को लॉग इन करने की आवश्यकता है यद्यपि एक बॉट बिना लॉग इन किए अनुरोधों को पढ़ सकता है, बॉट जो परीक्षण पूरा कर चुके हैं वह सभी गतिविधियों के लिए लॉग इन होना चाहिए। बोट फ्लैग से किसी खाते से लॉग इन बोट, मीडियाविकि एपीआई (एपीआई.एफ़पी) से प्रति क्वेरी में अधिक परिणाम प्राप्त कर सकते हैं। अधिकांश बोट चौखटे को लॉगिन और कुकीज़ स्वचालित रूप से संभाल करनी चाहिए, लेकिन अगर आप किसी मौजूदा ढांचे का उपयोग नहीं कर रहे हैं, तो आपको इन चरणों का पालन करना होगा। सुरक्षा के लिए, लॉग इन डेटा को HTTP POST विधि का उपयोग कर पास करना होगा। क्योंकि HTTP GET अनुरोध के पैरामीटर यूआरएल में आसानी से दिखाई देते हैं, GET के माध्यम से प्रवेश अक्षम हैं। मिडियाविकी एपीआई के उपयोग में एक बॉट लॉग करने के लिए, 2 POST अनुरोधों की आवश्यकता है: अनुरोध 1 यूआरएल: https://en.wikipedia.org/w/api.php?action=login&format=xml पोस्ट पैरामीटर: Lgname = BOTUSERNAME Lgpassword = BOTPASSWORD अगर पासवर्ड सही है, तो यह एक "NeedToken" परिणाम और XML प्रपत्र में एक "टोकन" पैरामीटर वापस करेगा, जैसा कि mw पर एपिसोड किया गया है: API: Login। अन्य आउटपुट स्वरूप उपलब्ध हैं I यह नीचे वर्णित HTTP कुकीज भी वापस करेगा अनुरोध 2 यूआरएल: https://en.wikipedia.org/w/api.php?action=login&format=xml पोस्ट पैरामीटर: Lgname = BOTUSERNAME Lgpassword = BOTPASSWORD Lgtoken = टोकन जहां टोकेन पिछले परिणाम से टोकन है पिछले अनुरोध से HTTP कुकीज़ दूसरे अनुरोध के साथ भी पास होना चाहिए। एक सफल लॉगिन प्रयास के परिणामस्वरूप विकिमीडिया सर्वर कई HTTP कुकीज स्थापित करेगा। बॉट को इन कुकीज़ को सहेजना होगा और जब भी वह अनुरोध करता है हर बार उन्हें वापस भेजना होगा (यह संपादन के लिए विशेष रूप से महत्वपूर्ण है) अंग्रेजी विकिपीडिया पर, निम्न कुकीज़ का उपयोग किया जाना चाहिए: enwikiUserID, enwikiToken, और enwikiUserName Enwiki_session कुकी को वास्तव में कोई परिवर्तन संपादित करने या कुछ बदलाव करने के लिए आवश्यक है, अन्यथा मिडियाविकी: सत्र विफल पूर्वावलोकन त्रुटि संदेश वापस किया जाएगा

संपादन: टोकन संपादन पद्धति[संपादित करें]

संपादन; टोकन संपादित करें विकिपीडिया विकिपीडिया पृष्ठ पर संपादन करने के लिए संपादन टोकन की एक प्रणाली का उपयोग करता है, साथ ही साथ अन्य कार्यों जैसे रोलबैक जैसी मौजूदा सामग्री को संशोधित करता है। टोकन एक लंबी हेक्साडेसिमल संख्या जैसा दिखता है '+ \', जैसा कि उदाहरण के लिए:

D41d8cd98f00b204e9800998ecf8427e + \ संपादन टोकन की भूमिका "अपहरण को संपादित करना" को रोकने के लिए है, जहां उपयोगकर्ताओं को एक लिंक पर क्लिक करके एक संपादन करने में धोखा दिया जाता है

संपादन प्रक्रिया में दो HTTP अनुरोध शामिल हैं सबसे पहले, एक संपादन टोकन के लिए अनुरोध किया जाना चाहिए। उसके बाद, एक दूसरा HTTP अनुरोध किया जाना चाहिए जो केवल प्राप्त किए गए संपादन टोकन के साथ पृष्ठ की नई सामग्री को भेजता है। एक एकल HTTP अनुरोध में संपादन करना संभव नहीं है एक संपादन टोकन एक लॉग-इन सत्र की अवधि के लिए एक समान रहता है, इसलिए संपादन टोकन को केवल एक बार पुनः प्राप्त करने की आवश्यकता है और उसके बाद के सभी संपादनों के लिए उपयोग किया जा सकता है

संपादन टोकन प्राप्त करने के लिए, इन चरणों का पालन करें:

मिडियाविकि एपीआई (एपीआई.एफ़पी) निम्नलिखित मापदंडों के साथ एक अनुरोध करें (देखें एमडब्ल्यू: एपीआई: संपादित करें - पृष्ठ बनाएं और संपादित करें)। कार्रवाई = क्वेरी Prop = info शीर्षक = PAGENAME Intoken = संपादित करें टोकन प्रतिक्रिया के edittoken विशेषता में वापस किया जाएगा।

अगर बॉट को संपादित टोकन में हेक्साडेसिमल स्ट्रिंग नहीं है (यानी, संपादन टोकन सिर्फ '+') तो बॉट की सबसे अधिक संभावना लॉग इन नहीं है। यह कई कारकों के कारण हो सकता है: साथ प्रमाणीकरण में विफलता सर्वर, एक गिरा दिया कनेक्शन, किसी प्रकार का एक समय समाप्त, या सही कुकीज़ को संग्रहित या वापस करने में त्रुटि। अगर यह प्रोग्रामिंग त्रुटि की वजह से नहीं है, तो लॉग इन कुकीज़ रीफ्रेश करने के लिए बस फिर से लॉग इन करें। बॉट्स यह सुनिश्चित करने के लिए कि वे लॉग इन हैं, संपादन एक्सटेंशन का उपयोग करें।

संपादन:टकराव[संपादित करें]

विरोध तब होते हैं जब एक से अधिक, अतिव्यापी संपादन प्रयास उसी पृष्ठ पर किए जाते हैं लगभग हर बॉट अंततः एक तरह से या किसी अन्य प्रकार के संघर्ष को संपादित करने में पकड़ेगा, और इन मुद्दों के लिए परीक्षण और समायोजित करने के लिए कुछ तंत्र शामिल करना चाहिए। मिडविकविकि एपीआई (एपीआई.एफ़पी) का इस्तेमाल करने वाले बोट्स को संपादित करने की तैयारी में पृष्ठ पाठ लोड करने से पहले, स्टार्टटीमस्टैम्प और अंतिम संशोधन "आधार" टाइमस्टैम्प के साथ संपादन टोकन को पुनः प्राप्त करना चाहिए; प्रोप = जानकारी | संशोधन एक टोकन और पृष्ठ सामग्री दोनों को एक क्वेरी (उदाहरण) में पुनर्प्राप्त करने के लिए उपयोग किया जा सकता है संपादन को सबमिट करते समय, स्टार्टटीमस्टैम्प और बेसैटमस्टैम्प विशेषताओं को सेट करें, और त्रुटियों के संकेतों के लिए सर्वर प्रतिक्रियाओं को जांचें अधिक विवरण के लिए, देखें एमडब्ल्यू: एपीआई: संपादित करें - पृष्ठ बनाएं और संपादित करें। आम तौर पर, अगर कोई संपादन बॉट को पूरा करने में विफल रहता है, तो यह सुनिश्चित करने के लिए कि संपादन अभी भी उपयुक्त है, नया संपादन करने की कोशिश करने से पहले पृष्ठ को फिर से जांचना चाहिए। इसके अलावा, यदि कोई बॉट किसी पृष्ठ को पुन: सबमिट करने के लिए एक पृष्ठ की पुन: जांच करता है, तो किसी भी ऐसे व्यवहार से बचने के लिए सावधान रहना चाहिए जो एक अनन्त लूप और किसी भी व्यवहार को ले सकता है जो संपादन युद्धरत के समान हो सकता है

बॉट की विकास प्रक्रिया[संपादित करें]

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

अवलोकन के विकिपीडिया बॉट विकास चक्र

विचार[संपादित करें]

विकिपीडिया बॉट बनाने में पहला कार्य आवश्यकताओं को निकालने या एक विचार के साथ आ रहा है। यदि आप के लिए एक बॉट लिखने के बारे में कोई विचार नहीं है, तो आप एक बॉट द्वारा किए जाने वाले कार्यों के लिए अनुरोधों पर विचार उठा सकते हैं। सुनिश्चित करें कि एक मौजूदा बॉट पहले से ही नहीं कर रहा है जो आपको लगता है कि आपका बॉट क्या करना चाहिए। यह देखने के लिए कि क्या कार्य पहले से ही एक बॉट द्वारा किया जा रहा है, वर्तमान ऑपरेटिंग बॉट्स की सूची देखें

विनिर्देश[संपादित करें]

विशिष्टता सॉफ्टवेयर के लिखित होने का सटीक वर्णन है, संभवतः एक कठोर तरीके से। आपको एक विस्तृत प्रस्ताव के साथ आना चाहिए कि आप क्या करना चाहते हैं। कुछ संपादकों के साथ इस प्रस्ताव पर चर्चा करने और फीडबैक के आधार पर इसे परिष्कृत करने का प्रयास करें। अन्य संपादकों के विचारों को शामिल करके भी एक महान विचार बेहतर बनाया जा सकता है सबसे बुनियादी रूप में, आपके निर्दिष्ट बॉट को निम्न मानदंडों को पूरा करना होगा: बॉट हानिरहित है (इसे संपादन नहीं करना चाहिए जिसे विश्वकोश के चिकनी चलने के लिए विघटनकारी माना जा सकता है) बॉट उपयोगी है (यह एक उपयोगी सेवा प्रदान करता है जो मानव संपादक की तुलना में अधिक प्रभावी हो सकता है) बॉट सर्वर संसाधनों को बर्बाद नहीं करता है

सॉफ्टवेयर[संपादित करें]

इस बारे में सोचें कि आप इसे कैसे बना सकते हैं और किस प्रोग्रामिंग भाषा और उपकरणों का उपयोग करेंगे वास्तुकला यह सुनिश्चित करने के लिए चिंतित है कि सॉफ़्टवेयर सिस्टम उत्पाद की आवश्यकताओं को पूरा करेगा साथ ही यह सुनिश्चित करने के साथ कि भविष्य की आवश्यकताओं को संबोधित किया जा सकता है। कुछ प्रोग्रामिंग भाषाओं दूसरों की तुलना में कुछ कार्यों के लिए बेहतर अनुकूल हैं, अधिक जानकारी के लिए नीचे प्रोग्रामिंग भाषाओं पर अनुभाग देखें


कार्यान्वयन[संपादित करें]

कार्यान्वयन (या कोडिंग) कोड में डिजाइन और नियोजन बदलना शामिल है यह सॉफ्टवेयर इंजीनियरिंग नौकरी का सबसे स्पष्ट हिस्सा हो सकता है, लेकिन यह सबसे बड़ा हिस्सा जरूरी नहीं है। कार्यान्वयन के चरण में आपको चाहिए: अपने बॉट के लिए एक खाता बनाएं खाता बनाने के लिए लॉग इन करते समय यहां क्लिक करें, इसे अपने साथ जोड़कर। (यदि आप लॉग इन करते समय बॉट खाते नहीं बनाते हैं, तो संभवत: जब तक आप स्वामित्व सत्यापित नहीं करते हैं, तब तक संभावित सोकपॉपेट या अनधिकृत बॉट के रूप में अवरुद्ध होने की संभावना है) अपने बॉट के लिए एक उपयोगकर्ता पृष्ठ बनाएं आपके बॉट के संपादनों को अपने खाते के तहत नहीं बनाया जाना चाहिए। आपके बॉट को अपना स्वयं का खाता अपने स्वयं के उपयोगकर्ता नाम और पासवर्ड से होगा। बॉट के उपयोगकर्ता पृष्ठ पर एक ही जानकारी जोड़ें प्रत्येक फ़ंक्शन के लिए अनुमोदन पृष्ठ (चाहे स्वीकृत हो या नहीं) के लिए लिंक जोड़ने का एक अच्छा विचार होगा

परीक्षण[संपादित करें]

जैसा कि आप विकसित कर रहे हैं, आपके बॉट को जांचने का एक अच्छा तरीका यह है कि यह परिवर्तनों को दिखाता है (यदि कोई है) तो यह वास्तव में लाइव विकी को संपादित करने के बजाय एक पेज पर होता। कुछ बॉट चौखटे (जैसे कि प्विविकिबोट) में diffs दिखाने के लिए पूर्व-कोडित विधियां हैं। अनुमोदन प्रक्रिया के दौरान, बॉट को सबसे अधिक संभावना एक परीक्षण अवधि दी जाएगी (आमतौर पर संपादन की संख्या या दिनों के लिए चलने वाली प्रतिबन्ध के साथ), जिसके दौरान यह वास्तव में ठीक-ट्यूनिंग को सक्षम करने के लिए संपादित कर सकता है और किसी भी कीड़े को लौह कर सकता है परीक्षण अवधि के अंत में, अगर योजना के अनुसार सब कुछ चला गया, तो बॉट को पूर्ण-पैमाने पर ऑपरेशन के लिए स्वीकृति मिलनी चाहिए।

प्रलेखन[संपादित करें]

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

प्रश्न / शिकायतें[संपादित करें]

आप अपने उपयोगकर्ता चर्चा पेज पर अपने बॉट के बारे में प्रश्नों या आपत्तियों के उत्तर देने के लिए तैयार रहें, खासकर अगर यह संभावित संवेदनशील क्षेत्र में काम कर रहा हो, जैसे निष्पक्ष-उपयोग की छवि सफाई

रखरखाव[संपादित करें]

को बनाए रखने और बढ़ाने के अपने बॉट से निपटने के लिए नव की खोज कीड़े या नई आवश्यकताओं को ले जा सकते हैं अभी तक अधिक बार की तुलना में प्रारंभिक विकास के सॉफ्टवेयर है । करने के लिए आसानी से रखरखाव, दस्तावेज़ से अपने कोड की शुरुआत की ।


सामान्य दिशा निर्देश[संपादित करें]

आधिकारिक बॉट पॉलिसी के अलावा, जो आपके बिॉट को विकसित करते समय विचार करने के लिए मुख्य बिंदुओं को शामिल करता है, आपके बोट को विकसित करते समय अधिक सामान्य सलाहकार बिंदु हैं।

बॉट : सर्वोत्तम युक्ति[संपादित करें]

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

आम बॉट सुविधाये जिन्हें लागू करने पर विचार करना चाहिए[संपादित करें]

मानवीय सहायता[संपादित करें]

यदि आपका बॉट कुछ भी कर रहा है जिसके लिए संदर्भ या संदर्भ के मूल्यांकन की आवश्यकता है (उदाहरण के लिए, वर्तनी को सुधारना), तो आपको अपने बॉट को मैन्युअल रूप से सहायता प्रदान करने पर विचार करना चाहिए, जिसका अर्थ है कि कोई भी व्यक्ति सहेजे जाने से पहले सभी संपादनों का सत्यापन करता है। यह बोट की गति को काफी कम करता है, लेकिन यह त्रुटियों को काफी कम करता है

बॉट अक्षम करना[संपादित करें]

आपके बोट को जल्दी से अक्षम करना आसान होना चाहिए। यदि आपकी बॉट खराब हो जाती है, तो उसके बाद साफ करने की आपकी ज़िम्मेदारी है! आप बोट को चलाने के लिए इंकार कर सकते हैं, यदि इस बात पर धारणा है कि संदेश उसकी गतिविधियों के विरुद्ध एक शिकायत हो सकता है, तो उसके भाषण पृष्ठ पर कोई संदेश छोड़ा गया है; यह एपीआई मेटा = यूज़रइनोफ़ा क्वेरी (उदाहरण) का उपयोग कर जांच की जा सकती है। या आपके पास एक ऐसा पृष्ठ हो सकता है जो बदले में बॉट बंद कर देगा; प्रत्येक संपादित करने से पहले पृष्ठ सामग्री को लोड करके यह जांच की जा सकती है।


हस्ताक्षर[संपादित करें]

बस एक इंसान की तरह, अगर आपका बोट विकिपीडिया पर एक चर्चा पेज पर संपादन करता है, तो उसे चार टिल्डस (स्वप्निल करंबेलकर (वार्ता) 07:17, 7 मार्च 2017 (UTC)) के साथ अपनी पोस्ट पर हस्ताक्षर करना चाहिए। सहभागिता केवल चर्चा के नाम स्थानों पर ही चर्चा के लिए प्रयुक्त परियोजना पृष्ठों के अपवाद के साथ ही हैं (उदा।, विलोपन के लिए लेख)

ओपन-सोर्स बॉट[संपादित करें]

कई बोट ऑपरेटर्स अपने कोड को ओपन सोर्स बनाने का विकल्प चुनते हैं, और कभी-कभी इसे विशेष रूप से जटिल बॉट्स के लिए स्वीकृति से पहले आवश्यक हो सकता है। अपना कोड ओपन सोर्स बनाने में कई फायदे हैं: यह अन्य संभावित बग के लिए आपके कोड की समीक्षा करने की अनुमति देता है गद्य के रूप में, कोड के लेखक के लिए पर्याप्त रूप से इसकी समीक्षा करने के लिए अक्सर यह मुश्किल होता है। दूसरों को अपने कोड का उपयोग करने के लिए अपने स्वयं के बॉट का निर्माण कर सकते हैं बोट लेखन के लिए नया उपयोगकर्ता आपके कोड को अपने स्वयं के बॉट के लिए उदाहरण या टेम्पलेट के रूप में उपयोग करने में सक्षम हो सकता है यह दुर्बलता के जरिए सुरक्षा के बजाय अच्छे सुरक्षा अभ्यासों को प्रोत्साहित करता है। यदि आप परियोजना को छोड़ देते हैं, तो यह अन्य उपयोगकर्ताओं को नए कोड लिखने के बिना आपके बॉट कार्य चलाने की अनुमति देता है। ओपन सोर्स कोड, जो शायद ही कभी आवश्यक होता है, आमतौर पर विकिपीडिया की खुली और पारदर्शी प्रकृति के साथ रखने में प्रोत्साहित किया जाता है। कोड साझा करने से पहले, सुनिश्चित करें कि पासवर्ड जैसे संवेदनशील जानकारी सार्वजनिक रूप से नहीं की गई फ़ाइल में अलग हो गई है अपने कोड को खोलने के इच्छुक उपयोगकर्ता के लिए कई विकल्प उपलब्ध हैं बोट के यूज़रस्पेस के उप-पृष्ठ में कोड की मेजबानी की जा सकती है यदि इसे स्वचालित नहीं बनाया गया है और इसके परिणामस्वरूप विकिपीडिया की लायसेंसिंग शर्तों के तहत कोड को बहु-लाइसेंस प्राप्त किया जा सकता है, तो आप निर्दिष्ट कर सकते हैं कि किसी अन्य शब्द के अलावा। बेहतर समाधान एक संशोधन नियंत्रण प्रणाली जैसे कि एसवीएन, गीट, या मर्क्यूरिअल का उपयोग करना है। विकिपीडिया में लेखों की मेजबानी के लिए विभिन्न सॉफ़्टवेयर विकल्प और वेबसाइटों की तुलना की गई लेख हैं, जिनमें से बहुत से लागत नहीं हैं

प्रोग्रामिंग भाषायें और लाइब्रेरी[संपादित करें]

बॉट्स लगभग किसी भी प्रोग्रामिंग भाषा में लिखी जा सकती हैं। एक भाषा का चुनाव बोट लेखक के अनुभव और प्राथमिकताओं पर निर्भर करता है, और बॉट विकास से संबंधित पुस्तकालयों की उपलब्धता पर निर्भर करता है। निम्न सूची में सामान्यतः बॉट्स के लिए उपयोग की जाने वाली कुछ भाषाओं में शामिल हैं:

पर्ल[संपादित करें]

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

पुस्तकालयों:

  • मीडियाविकि::बॉट – एक काफी पूरा मीडियाविकि बॉट ढांचे के पर्ल में लिखा है. प्रदान करता है, अमूर्त के एक उच्च स्तर की तुलना में MediaWiki::एपीआई. Plugins प्रदान प्रशासक और प्रबंधक कार्यक्षमता है ।

PHP[संपादित करें]

PHP भी इस्तेमाल किया जा सकता प्रोग्रामिंग के लिए बॉट । मीडियाविकि डेवलपर्स पहले से ही परिचित हैं PHP के साथ, के बाद से है कि भाषा मीडियाविकि और उसके एक्सटेंशन में लिखा जाता है । PHP एक विशेष रूप से अच्छा विकल्प है यदि आप चाहते हैं प्रदान करने के लिए एक वेबफ़ार्म-आधारित इंटरफ़ेस करने के लिए अपने बॉट है. उदाहरण के लिए, मान लीजिए कि आप चाहते बनाने के लिए एक बॉट का नाम बदलने के लिए श्रेणियों. आप बना सकते हैं एक HTML फार्म में जो आप टाइप करेंगे वर्तमान और वांछित नाम की एक श्रेणी है. जब फार्म प्रस्तुत है, अपने बॉट पढ़ सकता है इन आदानों, तो सभी संपादित लेख में वर्तमान श्रेणी के लिए और उन्हें स्थानांतरित करने के लिए इच्छित श्रेणी है । (जाहिर है, किसी भी बॉट के एक फार्म के साथ इंटरफेस की आवश्यकता होगी किया जा करने के लिए सुरक्षित किसी भी तरह से यादृच्छिक वेब surfers.) {{Wikipedia:PHP bot framework table}}

पाइथन[संपादित करें]

पुस्तकालयों:

  • Pywikibot–सबसे अधिक इस्तेमाल किया अजगर बॉट ढांचे.
  • ceterach
  • wikitools—एक हल्के बॉट ढांचे का उपयोग करता है जो मीडियाविकि एपीआई के लिए विशेष रूप से डेटा हो रही है और संपादन, इस्तेमाल किया और बनाए रखा द्वारा श्री Z-आदमी (डाउनलोड)
  • mwclient—एक एपीआई आधारित ढांचे द्वारा बनाए रखा ब्रायन
  • mwparserfromhell - एक अजगर पार्सर के लिए मीडियाविकि पाठ, द्वारा बनाए रखा के Earwig

माइक्रोसॉफ्ट .NET[संपादित करें]

माइक्रोसॉफ्ट। नेट सी #, सी ++ / सीएलआई, विज़ुअल बेसिक .NET, जे #, जेस्क्रिप्ट। नेट, आयरनपथाथन और विंडोज पॉवरशेल सहित भाषाओं का एक समूह है। मोनो प्रोजेक्ट का उपयोग करना, एनआईटी प्रोग्राम्स लिनक्स, यूनिक्स, बीएसडी, सोलारिस और मैक ओएस एक्स तथा साथ ही विंडोज के अंतर्गत भी चला सकते हैं। पुस्तकालय: डॉटनेट वॉटबिकबॉट फ्रेमवर्क - एक पूर्ण-फ़ीचर्ड क्लाइंट एपीआई पर एनआईटी, जो कि मीडियाविकी संचालित साइटों पर सूचनाओं का प्रबंधन करने के लिए आसानी से प्रोग्राम और वेब रोबोट तैयार करने की अनुमति देता है। अब कई भाषाओं में अनुवाद किया है विस्तृत संकलित प्रलेख अंग्रेजी में उपलब्ध है। WikiFunctions .NET लाइब्रेरी - AWB के साथ बंडल, बॉट्स के लिए उपयोगी सामग्री की एक लाइब्रेरी है, जैसे कि सूची बनाने, लोडिंग / संपादन आलेख, आईआरसी चैनल और हालिया परिवर्तनों से जोड़ने के लिए

जावा[संपादित करें]

पुस्तकालयों:

  • जावा विकी बॉट रूपरेखा - एक जावा विकी बॉट ढांचे
  • विकी-जावा - जावा विकी बॉट रूपरेखा है कि केवल एक ही फाइल
  • WPCleaner - पुस्तकालय द्वारा इस्तेमाल किया WPCleaner उपकरण
  • jwiki - एक सरल और आसान करने के लिए उपयोग जावा विकी बॉट ढांचे

जावास्क्रिप्ट[संपादित करें]

जावास्क्रिप्ट एक पटकथा भाषा का इस्तेमाल किया मुख्य रूप से वेब पृष्ठों की है । जावास्क्रिप्ट इस्तेमाल किया जा सकता बढ़ाने के लिए विकिपीडिया से जोड़ने के लिए स्क्रिप्ट अपने common.js पेज है ।

पुस्तकालयों:

  • एक मीडियाविकि मॉड्यूल के लिए मौजूद है Node.jsहै । मॉड्यूल भी कर सकते हैं जोड़ा जा करने के लिए अपने common.js पृष्ठ के रूप में इस्तेमाल किया पुस्तकालय के लिए पर-विकी