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

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

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

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

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

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

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

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

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

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

บอทจะต้องทำงานบนพื้นฐานของ Skype (ในอดีตบอทจะใช้ในบริษัท) ดังนั้นจึงเลือกบริการบน Azura

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

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

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

ในขณะที่ทำงานในโครงการนี้ เราประสบปัญหาและความยากลำบากหลายประการ

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

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

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

สิ่งนี้ดำเนินไปประมาณหกเดือน เราแค่ทำเครื่องหมายเวลา ปรับโครงสร้างโค้ดใหม่ และไม่เขียนอะไรใหม่

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ที่มา: will.com

เพิ่มความคิดเห็น