हाल ही की एक पोस्ट में हमने देखा कि Amazon Interactive Video Service (Amazon IVS) लाइव स्ट्रीम में चैट को कैसे जोड़ा जाए। चैट रूम इंटरैक्टिव लाइव स्ट्रीमिंग अनुभव बनाने का एक बड़ा हिस्सा हैं, लेकिन दुर्भाग्य से वे अपरिहार्य संभावना के साथ आते हैं कि कुछ उपयोगकर्ता ऐसे संदेश पोस्ट कर सकते हैं जो असंवेदनशील या अन्यथा आक्रामक हैं। इस पोस्ट में, मैं आपको चीजों को मजेदार और मैत्रीपूर्ण रखने के लिए अपने Amazon IVS चैट रूम को मॉडरेट करने का एक बहुत ही सरल, लेकिन प्रभावी तरीका दिखाऊंगा।
चैट मॉडरेशन को संबोधित करने के दो तरीके हैं: मैन्युअल और स्वचालित। मैन्युअल विधि, जिसे हम भविष्य की पोस्ट में शामिल करेंगे, के लिए एक अमेज़ॅन आईवीएस चैट एसडीके डॉक्स के माध्यम से हटाने के लिए एक चैट संदेश को 'ध्वजांकित' करने के लिए एक मॉडरेटर (ब्रॉडकास्टर या अन्य नामित उपयोगकर्ता) की आवश्यकता होती है। किसी संदेश को फ़्लैग करने से सभी कनेक्टेड WebSocket क्लाइंट को एक ईवेंट भेजा जाता है जिसका उपयोग आपत्तिजनक संदेश को अपडेट करने या हटाने के लिए किया जा सकता है। स्वचालित विधि, जिसे हम इस पोस्ट में शामिल करेंगे, हमें चैट संदेश पर प्रतिस्थापन करने या एप्लिकेशन की व्यावसायिक आवश्यकताओं के आधार पर डिलीवरी को अस्वीकार करने के लिए AWS लैम्ब्डा फ़ंक्शन का उपयोग करने देती है।
मैनुअल और स्वचालित मॉडरेशन दोनों के पक्ष और विपक्ष दोनों हैं। मैन्युअल मॉडरेशन के लिए एक "समर्थक" यह है कि चूंकि इसमें मानवीय हस्तक्षेप की आवश्यकता होती है, इसलिए आपके पास "गलत सकारात्मक" होने की संभावना कम होती है जो स्वचालित मॉडरेशन के साथ संभव है। मानवीय हस्तक्षेप का एक और सकारात्मक पहलू यह है कि आम तौर पर मानव उन संदेशों की पहचान करने में मशीनों से बेहतर होते हैं जिन्हें मॉडरेट किया जाना चाहिए। हालांकि, मैन्युअल मॉडरेशन का एक "शंकु" यह है कि संदेशों को चैट रूम में पोस्ट किए जाने के बाद ही हटाया जा सकता है। और जैसा कि कहा जाता है, "आप टूथपेस्ट को वापस ट्यूब में नहीं डाल सकते"। दूसरे शब्दों में, संभावित रूप से आपत्तिजनक संदेशों को आपके उपयोगकर्ताओं द्वारा पहले ही देखा जा चुका है - आप उन्हें उस संदेश को "अनदेखा" नहीं कर सकते जो उन्होंने पहले ही देख लिया हो।
दूसरी ओर, स्वचालित मॉडरेशन हमें चैट रूम में पोस्ट किए जाने से पहले हानिकारक संदेशों को अस्वीकार (या सेंसर) करने की क्षमता देता है। लेकिन, जैसा कि ऊपर उल्लेख किया गया है, चैट संदेशों के लिए एक मशीन द्वारा अत्यधिक सटीकता के साथ उचित रूप से मॉडरेट किया जाना वास्तव में कठिन है। क्या आप कभी किसी चैट रूम में गए हैं या किसी ब्लॉग पोस्ट पर कोई टिप्पणी पोस्ट की है जो विशुद्ध रूप से निर्दोष है और इसे गलत तरीके से अस्वीकार या सेंसर किया गया है? यह एक चैट उपयोगकर्ता के लिए बहुत निराशाजनक हो सकता है जो "यह व्यक्ति हमारी टीम के लिए एक वास्तविक संपत्ति होगा" कहते हुए एक संदेश सबमिट करता है, केवल यह देखने के लिए कि "यह व्यक्ति हमारी टीम के लिए वास्तविक *** होगा" चैट रूम में पोस्ट किया गया है ( या बस खारिज कर दिया)!
इसके साथ ही, चैट मॉडरेशन के लिए सबसे अच्छा तरीका आपके लक्षित दर्शकों और व्यावसायिक आवश्यकताओं के आधार पर आपके आवेदन के लिए एक व्यक्तिगत निर्णय है। मुझे संदेह है कि मॉडरेशन की आवश्यकता वाले कई एप्लिकेशन अंततः मैन्युअल और स्वचालित मॉडरेशन के संयोजन का उपयोग करेंगे।
अब जबकि हमने दोनों संभावित दृष्टिकोणों के बारे में बात कर ली है, आइए जानें कि आप अपने Amazon IVS चैट रूम के लिए स्वचालित मॉडरेशन करने के लिए AWS लैम्ब्डा फ़ंक्शन का उपयोग कैसे कर सकते हैं।
अमेज़ॅन आईवीएस कंसोल, एडब्ल्यूएस सीएलआई, या अमेज़ॅन आईवीएस एसडीके में से एक के माध्यम से एक अमेज़ॅन आईवीएस चैट रूम बनाते (या अपडेट) करते समय, हम एक एडब्ल्यूएस लैम्ब्डा फ़ंक्शन निर्दिष्ट कर सकते हैं जो हमारे संदेश समीक्षा हैंडलर के रूप में काम करेगा। इस पोस्ट में, हम Amazon IVS कंसोल का उपयोग करने पर ध्यान केंद्रित करेंगे, लेकिन यदि आप किसी अन्य विधि का उपयोग करना चाहते हैं, तो आप उपयुक्त दस्तावेज़ीकरण का संदर्भ ले सकते हैं। एक हैंडलर जोड़ने के लिए, अमेज़ॅन आईवीएस चैट रूम बनाते या संपादित करते समय * संदेश समीक्षा हैंडलर * अनुभाग तक नीचे स्क्रॉल करें। डिफ़ॉल्ट रूप से, 'अक्षम' विकल्प चुना जाएगा।
आइए AWS लैम्ब्डा के साथ हैंडल का चयन करके इसे बदलें।
यह हमें कुछ और विकल्पों के साथ प्रस्तुत करता है। पहला विकल्प, फ़ॉलबैक परिणाम हमें यह चुनने देता है कि हम अपने हैंडलर फ़ंक्शन से अमान्य प्रतिक्रियाओं, त्रुटियों और टाइमआउट को कैसे संभालना चाहते हैं। दोबारा, यह आपकी व्यावसायिक आवश्यकताओं पर निर्भर करता है। यदि आप इस मामले में संदेशों को अस्वीकार करना चाहते हैं, तो अस्वीकार करें चुनें। यदि आप अनुमति दें चुनते हैं, तो संभावित रूप से हानिकारक संदेश आपके चैट रूम में पोस्ट किए जा सकते हैं। यह वह जगह है जहां एक संयोजन दृष्टिकोण आपको 'बैकअप योजना' प्रदान कर सकता है ताकि एक मॉडरेटर अभी भी उन संदेशों को हटा सके जो किसी भी कारण से हैंडलर द्वारा छूटे हुए हैं। इस डेमो के लिए, मैं अनुमति चुनूंगा । अगला, हमें AWS लैम्ब्डा फ़ंक्शन निर्दिष्ट करने की आवश्यकता होगी जो हमारे हैंडलर के रूप में कार्य करेगा। हम इस डेमो के लिए कंसोल के माध्यम से एक नया फंक्शन बनाएंगे, तो आइए क्रिएट लैम्ब्डा फंक्शन पर क्लिक करें।
इस बटन पर क्लिक करने से हम अपने वर्तमान कार्यों की सूची पर पहुंच जाएंगे। इस पेज पर, क्रिएट फंक्शन पर क्लिक करें।
अगले पृष्ठ पर, ivs-chat-मॉडरेशन-फ़ंक्शन नाम दर्ज करें, बाकी विकल्पों के लिए चुने गए डिफॉल्ट्स को छोड़ दें, और फिर क्रिएट फंक्शन पर क्लिक करें।
अब हमारे फंक्शन के लिए कोड को अपडेट करते हैं। प्रलेखन हमें बताता है कि फ़ंक्शन निम्नलिखित प्रारूप में एक ईवेंट ऑब्जेक्ट प्राप्त करेगा:
{ "Content": "string", "MessageId": "string", "RoomArn": "string", "Attributes": {"string": "string"}, "Sender": { "Attributes": { "string": "string" }, "UserId": "string", "Ip": "string" } }
नोड का उपयोग करके हमारे फ़ंक्शन से मान वापस करने के लिए, हमें एक async फ़ंक्शन का उपयोग करना चाहिए (अधिक जानकारी के लिए AWS लैम्ब्डा दस्तावेज़ देखें)। हम जो वस्तु लौटाते हैं, उसे निम्नलिखित प्रारूप का उपयोग करना चाहिए:
{ "Content": "string", "ReviewResult": "string", "Attributes": {"string": "string"}, }
ReviewResult के लिए हम जो मान सेट करते हैं वह ALLOW
या DENY
होना चाहिए और यह निर्धारित करेगा कि संदेश चैट रूम में पहुंचा है या नहीं। हम संदेश सामग्री को आवश्यकतानुसार संशोधित कर सकते हैं, जिसका अर्थ है कि हम संभावित आपत्तिजनक या असंवेदनशील सामग्री को हटा सकते हैं या बदल सकते हैं और संदेश को पोस्ट करने की ALLOW
दे सकते हैं। किसी भी अतिरिक्त विशेषता को Attributes
के साथ पारित किया जा सकता है। यदि आप ReviewResult
का DENY
भेजना चुनते हैं, तो आप एक Reason
विशेषता पास कर सकते हैं, जिसका उपयोग Reason
के रूप में निर्दिष्ट मान सहित ग्राहक को 406 Not Acceptable
प्रतिक्रिया देने के लिए किया जाएगा।
को देखें
चैट संदेश समीक्षा हैंडलर दस्तावेज़ लंबाई की कमी और मान्य मान सहित अधिक जानकारी के लिए।
अब हम आने वाली सामग्री में तारांकन के साथ 'खराब शब्द' को बदलने के लिए फ़ंक्शन के कोड को संशोधित कर सकते हैं।
exports.handler = async (event) => { return { ReviewResult: 'ALLOW', Content: event.Content.replace(/bad word/ig, '*** ****'), Attributes: { username: event.Attributes.username } }; };
आइए अपने चैट रूम में वापस जाएं, कार्यों की सूची को ताज़ा करें, हमारे नए कार्य का चयन करें और परिवर्तन सहेजें पर क्लिक करें।
अब हम अपने चैट रूम में संदेश पोस्ट कर सकते हैं और देख सकते हैं कि क्या होता है।
उत्कृष्ट! हमारे चैट संदेश हैंडलर को उचित रूप से आमंत्रित किया गया था और चैट रूम में पोस्ट किए जाने से पहले हमारे 'बुरे शब्द' को हटा दिया गया था।
वास्तव में, आप ऊपर उपयोग किए जा रहे साधारण रेगेक्स की तुलना में हानिकारक पाठ को बदलने के लिए अधिक परिष्कृत समाधान का उपयोग करना चाहेंगे। मैंने @2toad/अपवित्रता पुस्तकालय का परीक्षण किया है और इसे आने वाले संदेश में अपशब्दों की पहचान करने और सेंसर करने का एक अच्छा काम करने के लिए पाया है। आपके लिए जो भी समाधान काम करता है, उसका बेझिझक उपयोग करें, लेकिन ध्यान रखें कि आपके फ़ंक्शन को 200ms के भीतर प्रतिक्रिया देनी चाहिए या यह समय समाप्त हो जाएगा, इसलिए तृतीय-पक्ष API कॉल प्रश्न से बाहर हो सकते हैं।
यहां एक हैंडलर का उदाहरण दिया गया है जो हानिकारक शब्दों को सेंसर करने के लिए @2toad/profanity
लाइब्रेरी का उपयोग करता है:
exports.censorChat = async (event) => { console.log('censorChat:', JSON.stringify(event, null, 2)); return { ReviewResult: 'ALLOW', Content: profanity.censor(event.Content), Attributes: { username: event.Attributes.username } }; };
और सेंसर करने के बजाय संदेश को अस्वीकार करने का एक उदाहरण।
exports.rejectInappropriateChat = async (event) => { console.log('rejectInappropriateChat:', JSON.stringify(event, null, 2)); const profane = profanity.exists(event.Content); return { ReviewResult: profane ? 'DENY' : 'ALLOW', Content: profane ? '' : event.Content, Attributes: { username: event.Attributes.username } }; };
इस पोस्ट में हमने चैट संदेशों को मॉडरेट करने के दो अलग-अलग तरीकों के बारे में सीखा: मैन्युअल और स्वचालित। हमने तब AWS लैम्ब्डा फ़ंक्शन बनाया और इसे स्वचालित चैट मॉडरेशन करने के लिए Amazon IVS चैट रूम से जोड़ा। भविष्य की पोस्ट में, हम देखेंगे कि आप चैट संदेशों को मैन्युअल रूप से मॉडरेट करने के लिए Amazon IVS चैट SDK का उपयोग कैसे कर सकते हैं। यदि आपके कोई प्रश्न हैं, तो एक टिप्पणी छोड़ें या ट्विटर पर मुझसे संपर्क करें।