บอทจะช่วยเรา

บอทจะช่วยเรา

เมื่อปีที่แล้ว ฝ่ายทรัพยากรบุคคลอันเป็นที่รักของเราได้ติดต่อมาหาเราพร้อมกับคำขอให้เขียนแชทบอทที่จะช่วยต้อนรับพนักงานใหม่เข้าสู่บริษัท

ขอชี้แจงว่าเราไม่ได้พัฒนาผลิตภัณฑ์เอง แต่เราให้บริการพัฒนาผลิตภัณฑ์ครบวงจรแก่ลูกค้า เรื่องนี้เกี่ยวกับโครงการภายในของเรา ซึ่งลูกค้าไม่ใช่บริษัทภายนอก แต่เป็นฝ่ายทรัพยากรบุคคลของเราเอง เนื่องจากเรามีบุคลากร ทรัพยากร และเวลาจำกัด เป้าหมายหลักคือการทำให้โครงการเสร็จทันเวลาและเปิดตัวผลิตภัณฑ์

ก่อนอื่นเรามาอธิบายงานที่ต้องแก้ไขกันก่อน

นักพัฒนาส่วนใหญ่มักเป็นคนเก็บตัวและไม่ชอบพูดคุย ดังนั้นการเขียนคำถามในอีเมลแชทจึงง่ายกว่ามาก ด้วยบอท คุณไม่ต้องกังวลว่าจะถามใคร โทรหาใคร ไปไหน หรือแม้แต่หาข้อมูลจากที่ไหน หรือข้อมูลนั้นอัปเดตหรือไม่

ปัญหาที่สองคือข้อมูล ซึ่งมีอยู่มากมาย มาจากแหล่งต่างๆ กัน ไม่สามารถหาได้ตลอดเวลา และจำเป็นต้องมีการเสริมและอัปเดตอย่างต่อเนื่อง

บริษัทมีพนักงานเกือบ 500 คน ประจำอยู่ในสำนักงาน เขตเวลา เมืองต่างๆ ทั่วรัสเซีย และแม้แต่ในต่างประเทศ โดยปกติแล้วมักจะมีคำถามมากมาย อีกหนึ่งความท้าทายคือการลดภาระงานของฝ่ายทรัพยากรบุคคลที่เกี่ยวข้องกับคำถามที่พบบ่อยที่สุด

นอกจากนี้ ยังจำเป็นต้องทำให้กระบวนการต่อไปนี้เป็นระบบอัตโนมัติด้วย ได้แก่ การรับพนักงานใหม่ การส่งข้อความถึงผู้จัดการและที่ปรึกษาของพนักงานใหม่ และการส่งคำเตือนอัตโนมัติเกี่ยวกับหลักสูตรและการทดสอบที่พนักงานใหม่ต้องทำเพื่อให้ปรับตัวได้สำเร็จ

ตามความต้องการทางธุรกิจ จึงกำหนดข้อกำหนดทางเทคนิคขึ้นมา

บอทควรทำงานบน Skype ได้ (โดยในอดีต บริษัทก็ใช้มันเช่นกัน) ดังนั้นจึงเลือกบริการบน Azure

เพื่อจำกัดการเข้าถึง เราจึงเริ่มใช้กลไกการอนุญาตของ Skype
ไลบรารี ParlAI ถูกใช้สำหรับการจดจำข้อความ

จำเป็นต้องมีพอร์ทัลเว็บการดูแลระบบสำหรับการกำหนดค่า การฝึกอบรม การดีบัก การตั้งค่ารายการส่งจดหมาย และงานอื่นๆ

บอทจะช่วยเรา

ในระหว่างกระบวนการทำงานในโครงการ เราพบปัญหาและความยากลำบากหลายประการ

ตัวอย่างเช่น เราประสบปัญหาทางเทคนิคกับบัญชี Azure ของเรา Microsoft ปฏิเสธที่จะเปิดใช้งานการสมัครใช้งานของเราเนื่องจากปัญหาทางเทคนิคบางประการภายในบริการของพวกเขา เป็นเวลาเกือบสองเดือนที่เราไม่สามารถทำอะไรได้เลย และในที่สุดฝ่ายสนับสนุนของ Microsoft ก็ยอมแพ้และแนะนำเราให้กับพันธมิตร ซึ่งตั้งค่าทุกอย่างสำเร็จและออกบัญชีให้เรา

ขั้นตอนที่ท้าทายที่สุดคือการเปิดตัวโครงการ เมื่อเราต้องเลือกสิ่งที่เราจะใช้ สถาปัตยกรรมจะเป็นอย่างไร วิธีและสถานที่จัดเก็บข้อมูล และวิธีที่ส่วนประกอบและโมดูลของระบบจะโต้ตอบกัน

ในกรณีของเรา ความท้าทายทั่วไปของการเปิดตัวโครงการใดๆ ก็ตามนั้นซับซ้อนยิ่งขึ้นไปอีกจากปัญหาเรื่องบุคลากร ลักษณะธุรกิจของเราแตกต่างจากโครงการเชิงพาณิชย์ โครงการภายในมักเกี่ยวข้องกับนักพัฒนาที่ขาดความรู้เพียงพอในสาขาที่เกี่ยวข้อง พวกเขาถูกทิ้งไว้ข้างสนาม รอคอยโครงการเชิงพาณิชย์ขนาดใหญ่ที่น่าตื่นเต้นโครงการต่อไป แน่นอนว่าแรงจูงใจในสถานการณ์เช่นนี้ก็ค่อนข้างท้าทายเช่นกัน ประสิทธิภาพการทำงานลดลง ทีมงานมักจะว่างงาน และท้ายที่สุด เราก็ต้องโน้มน้าว (กระตุ้น) หรือเปลี่ยนนักพัฒนา เมื่อเปลี่ยนนักพัฒนา เราต้องจัดการฝึกอบรม ถ่ายทอดความรู้ และเริ่มต้นโครงการใหม่ นักพัฒนาใหม่แต่ละคนมองสถาปัตยกรรมต่างกัน และวิพากษ์วิจารณ์สถาปัตยกรรมเดิมเกี่ยวกับการตัดสินใจและโค้ดที่พวกเขาเขียนขึ้น การเขียนใหม่จึงเริ่มต้นจากศูนย์

เป็นแบบนี้มาประมาณหกเดือนแล้ว เราแค่จับเวลา รีแฟกเตอร์โค้ด และไม่ได้เขียนอะไรใหม่เลย

โครงการภายในมักขาดเอกสารประกอบ ทำให้ยากต่อการทำความเข้าใจว่าต้องทำอะไรในแต่ละช่วงเวลา และลำดับความสำคัญคืออะไร จำเป็นต้องจัดตั้งทีมงานประจำ ปรับปรุงกระบวนการ และวางแผนและประเมินผลอย่างน้อยสามเดือน แต่จะทำอย่างไรจึงจะสำเร็จได้ ในเมื่อโครงการไม่ใช่เชิงพาณิชย์ หมายถึงการลงทุนด้านชั่วโมงทำงานน้อยที่สุด แต่ยังคงให้ผลลัพธ์ไม่ด้อยไปกว่าลูกค้าภายนอก

เราได้ระบุกลุ่มทรัพยากรที่มีส่วนร่วมในการพัฒนาโครงการ คุ้นเคยกับโครงการ และเต็มใจที่จะทำงานในโครงการนี้ เราจึงจัดทำตารางภาระงานของบุคลากรสำหรับแต่ละโครงการ ประเมินและประสานงานการทำงาน จากนั้นจึงนำข้อมูลไปผสานกับช่องว่างระหว่างโครงการหลัก สี่เดือนต่อมา เราก็ได้ต้นแบบแอปพลิเคชันที่ใช้งานได้จริง

ตอนนี้มาพูดถึงฟังก์ชัน สถาปัตยกรรม และโซลูชันทางเทคนิคของบอทกันในรายละเอียดเพิ่มเติม

หนึ่งในข้อกำหนดหลักของฝ่ายทรัพยากรบุคคลคือการรู้จำข้อความที่ผู้ใช้เขียนเพื่อตอบคำถามได้อย่างถูกต้อง คุณสามารถเขียนข้อความเช่น "ฉันอยากไปพักร้อน" "ฉันอยากไปพักร้อน" หรือ "ฉันอยากไปพักร้อน" ซึ่งระบบจะเข้าใจและตอบสนองตามนั้น หรือบางทีเก้าอี้ของพนักงานอาจหักและต้องการเขียนข้อความเช่น "เก้าอี้หัก" หรือ "เก้าอี้ของฉันแตก" หรือ "พนักพิงเก้าอี้หลุด" ด้วยการฝึกอบรมที่เหมาะสม บอทจะสามารถรู้จำข้อความเหล่านี้ได้ คุณภาพของการรู้จำข้อความขึ้นอยู่กับการฝึกอบรมของบอท ซึ่งเราจะกล่าวถึงในภายหลัง

ข้อกำหนดถัดไปและส่วนหนึ่งของฟังก์ชันการทำงานคือระบบการสนทนาของบอท เราได้พัฒนาระบบที่ช่วยให้บอทสามารถสนทนาและเข้าใจบริบทของคำถามปัจจุบันได้ บอทสามารถถามคำถามเพื่อชี้แจงคำตอบของคุณ และสนทนาต่อได้หากเราฝึกบอทให้ทำเช่นนั้น Skype รองรับรายการเมนูแบบง่าย ๆ เพื่อแจ้งผู้ใช้เกี่ยวกับตัวเลือกที่เป็นไปได้สำหรับการสนทนาต่อ นอกจากนี้ หากเรากำลังสนทนาอยู่แต่จู่ ๆ ก็เกิดคำถามนอกประเด็น บอทก็จะเข้าใจเช่นกัน

บอทช่วยให้ผู้ใช้สามารถส่งข้อมูลต่างๆ ตามข้อมูลส่วนบุคคล เช่น ตำแหน่งที่อยู่ ตัวอย่างเช่น หากใครต้องการค้นหาห้องน้ำ ระบบจะแสดงแผนที่สำนักงานเพื่อนำทางไปยังห้องน้ำ โดยแผนที่จะถูกเลือกตามตำแหน่งปัจจุบันของพนักงาน

การปกป้องข้อมูลส่วนบุคคลของผู้ใช้คือสิ่งสำคัญที่สุด เราไม่สามารถอนุญาตให้ใครก็ตามเข้าถึงข้อมูลสำคัญที่บอทของเราจัดการได้ การอนุญาต (Authorization) เป็นส่วนสำคัญของบอทนี้ บอทจะแจ้งให้ผู้ใช้อนุญาตก่อนเริ่มการสนทนาใดๆ ซึ่งจะเกิดขึ้นครั้งแรกที่พนักงานโต้ตอบกับบอท การอนุญาตจะนำผู้ใช้ไปยังหน้าที่เหมาะสม ซึ่งผู้ใช้จะได้รับโทเค็น ซึ่งผู้ใช้จะนำไปวางในข้อความ Skype หากการอนุญาตสำเร็จ ผู้ใช้ก็สามารถเริ่มสื่อสารกับบอทได้

บอทจะช่วยเรา

การอนุญาตจะเกิดขึ้นผ่านพอร์ทัลบริการการอนุญาตของ Skype เครือข่ายองค์กร และ LDAP ดังนั้น การอนุญาตจึงขึ้นอยู่กับข้อมูลปัจจุบันของผู้ใช้บนเครือข่ายองค์กร

ระหว่างการพัฒนาบอท เราตระหนักว่าจำเป็นต้องมีระบบที่ผสานรวมเข้ากับฟังก์ชันการทำงานของพอร์ทัล ซึ่งจะช่วยให้ฝ่ายทรัพยากรบุคคลสามารถแก้ไขบ็อตได้อย่างรวดเร็ว เราจึงเพิ่มหน้าพอร์ทัลที่ฝ่ายทรัพยากรบุคคลสามารถดูข้อผิดพลาดที่ผู้ใช้รายงานขณะทำงานกับบอท และแก้ไขปัญหาเหล่านั้นผ่านการฝึกอบรมใหม่ หรือปล่อยให้นักพัฒนาแก้ไขเอง

ความสามารถในการฝึกบอทโดยตรงบนพอร์ทัลไม่ได้ถูกสร้างมาตั้งแต่แรกเริ่ม ในระหว่างการพัฒนา เราพบว่าการฝึกบอทเป็นงานที่เจ้าหน้าที่ฝ่ายทรัพยากรบุคคลส่วนใหญ่มักจะทำเมื่อใช้งานบอท และการส่งไฟล์ข้อความไปยังนักพัฒนาเพื่อฝึกบอทเพิ่มเติมนั้นเป็นสิ่งที่ยอมรับไม่ได้อย่างสิ้นเชิง เพราะมันใช้เวลานานเกินไป ทำให้เกิดข้อผิดพลาดและปัญหาต่างๆ มากมาย

บอทจะช่วยเรา

เราได้พัฒนาส่วนติดต่อผู้ใช้สำหรับพอร์ทัลสำหรับการฝึกอบรมบอทที่ใช้งานง่าย ช่วยให้ฝ่ายทรัพยากรบุคคลสามารถดูการฝึกอบรมปัจจุบันของบอท ให้การฝึกอบรมเพิ่มเติม และปรับแต่งการฝึกอบรมที่มีอยู่ได้ การฝึกอบรมจะแสดงเป็นโครงสร้างแบบต้นไม้ ซึ่งโหนด (หรือสาขา) จะเป็นส่วนขยายของบทสนทนาของบอท คุณสามารถสร้างคำถามและคำตอบแบบง่ายหรือบทสนทนาที่ซับซ้อนได้ ขึ้นอยู่กับฝ่ายทรัพยากรบุคคลและความต้องการของพวกเขา

คำไม่กี่คำเกี่ยวกับสถาปัตยกรรมโซลูชัน

บอทจะช่วยเรา

สถาปัตยกรรมของโซลูชันเป็นแบบโมดูลาร์ ประกอบด้วยบริการที่รับผิดชอบงานต่างๆ ดังต่อไปนี้:
• บริการบอท Skype บน Azure – รับและประมวลผลคำขอของผู้ใช้ บริการนี้ค่อนข้างเรียบง่าย โดยจะรับคำขอก่อนแล้วจึงดำเนินการประมวลผลเบื้องต้น
• พอร์ทัลผู้ดูแลระบบคือบริการที่จัดเตรียมอินเทอร์เฟซบนเว็บสำหรับการกำหนดค่าพอร์ทัลและตัวบอทเอง บอทจะติดต่อกับพอร์ทัลก่อนเสมอ จากนั้นพอร์ทัลจะตัดสินใจว่าจะทำอย่างไรกับคำขอนั้น
• บริการการอนุญาต — มอบกลไกการพิสูจน์ตัวตนสำหรับบอทและพอร์ทัลผู้ดูแลระบบ การอนุญาตจะเกิดขึ้นผ่านโปรโตคอล Oauth2 หากการอนุญาตสำเร็จ บริการจะพิสูจน์ตัวตนผู้ใช้บนเครือข่ายองค์กรโดยใช้ข้อมูลผู้ใช้ที่ถูกต้อง ช่วยให้ระบบสามารถตรวจจับข้อผิดพลาดที่เกี่ยวข้องกับการดีซิงโครไนซ์ข้อมูลได้
• โมดูล AI Text Recognition เขียนด้วย Python และใช้เฟรมเวิร์ก ParlAI สำหรับการรู้จำข้อความ อย่างน้อยก็ในรูปแบบการใช้งานปัจจุบัน โมดูลนี้ใช้อัลกอริทึม tfDiff เพื่อทำความเข้าใจคำถาม โมดูลนี้มี API สำหรับการสื่อสารและการฝึกอบรม

สรุปแล้ว ผมขอบอกว่านี่เป็นความพยายามครั้งแรกของเราในการสร้างแชทบอท และเราพยายามทำให้ระบบนี้เรียบง่ายที่สุดเท่าที่จะเป็นไปได้ แต่ยังคงใช้งานได้จริง โดยใช้ความพยายามน้อยที่สุด ผมคิดว่าเราได้สร้างผลิตภัณฑ์ที่น่าสนใจมาก มีระบบฝึกอบรมของตัวเอง การบันทึกข้อผิดพลาด และการแจ้งเตือน และสามารถผสานรวมกับแอปส่งข้อความอื่นๆ ได้

ที่มา: will.com

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster