Bot sẽ giúp chúng ta

Bot sẽ giúp chúng ta

Một năm trước, bộ phận nhân sự yêu quý của chúng tôi đã yêu cầu chúng tôi viết một bot trò chuyện có thể giúp những người mới làm quen với công ty thích nghi.

Hãy đặt trước rằng chúng tôi không phát triển sản phẩm của riêng mình nhưng chúng tôi cung cấp cho khách hàng đầy đủ các dịch vụ phát triển. Câu chuyện sẽ kể về dự án nội bộ của chúng tôi, trong đó khách hàng không phải là công ty bên thứ ba mà là bộ phận nhân sự của chính chúng tôi. Và nhiệm vụ chính, do nguồn nhân lực, nguồn lực và thời gian có hạn, là hoàn thành dự án đúng thời hạn và phát hành sản phẩm.

Đầu tiên, hãy mô tả các vấn đề cần giải quyết.

Các nhà phát triển hầu hết là những người sống nội tâm và không thích nói chuyện; việc viết câu hỏi của bạn trong cuộc trò chuyện qua email sẽ dễ dàng hơn nhiều. Với bot, bạn không cần phải suy nghĩ xem nên hỏi ai, gọi cho ai, đi đâu và nói chung là tìm thông tin ở đâu và liệu thông tin đó có liên quan hay không.

Vấn đề thứ hai là thông tin - có rất nhiều, ở nhiều nguồn khác nhau, không phải lúc nào cũng có sẵn và cần được bổ sung, cập nhật liên tục.

Công ty có gần 500 nhân viên, họ làm việc ở các văn phòng, múi giờ, thành phố khác nhau của Nga và thậm chí ở nước ngoài, thường có rất nhiều câu hỏi, vì vậy một nhiệm vụ khác là giảm gánh nặng cho nhân sự nhân sự liên quan đến những câu hỏi thường gặp nhất bởi nhân viên.

Cũng cần phải tự động hóa các quy trình: người mới gia nhập công ty, gửi tin nhắn đến người quản lý và cố vấn của người mới, gửi lời nhắc tự động về các khóa học và bài kiểm tra mà người mới cần phải vượt qua để thích nghi thành công.

Yêu cầu kỹ thuật được hình thành dựa trên yêu cầu nghiệp vụ.

Bot phải hoạt động trên nền tảng Skype (trong lịch sử, họ sử dụng nó trong công ty), vì vậy dịch vụ trên Azura đã được chọn.

Để hạn chế quyền truy cập vào nó, chúng tôi bắt đầu sử dụng cơ chế ủy quyền qua Skype.
Thư viện ParlAI được sử dụng để nhận dạng văn bản

Một cổng web quản trị cũng được yêu cầu để cấu hình, đào tạo, gỡ lỗi, thiết lập gửi thư và các tác vụ khác.

Bot sẽ giúp chúng ta

Trong quá trình thực hiện dự án, chúng tôi đã gặp phải một số vấn đề và khó khăn.

Ví dụ: đã xảy ra sự cố kỹ thuật với tài khoản Azure. Microsoft không muốn kích hoạt đăng ký của chúng tôi do một số khó khăn kỹ thuật trong dịch vụ của họ. Trong gần hai tháng, chúng tôi không thể làm gì được; bộ phận hỗ trợ của Microsoft cuối cùng đã ra tay và gửi chúng tôi đến các đối tác, những người đã thiết lập thành công mọi thứ và cấp cho chúng tôi một tài khoản.

Giai đoạn khó khăn nhất là bắt đầu dự án, khi bạn cần chọn những gì chúng ta sẽ sử dụng, kiến ​​trúc sẽ là gì, cách thức và nơi lưu trữ dữ liệu cũng như cách các thành phần và mô-đun của hệ thống sẽ tương tác với nhau.

Trong trường hợp của chúng tôi, những vấn đề cơ bản thông thường khi bắt đầu bất kỳ dự án nào còn phức tạp hơn nữa do vấn đề nhân sự. Đặc thù trong hoạt động kinh doanh của chúng tôi là, không giống như các dự án thương mại, các dự án nội bộ thường được thực hiện bởi các nhà phát triển không có đủ kiến ​​​​thức trong các lĩnh vực cần thiết - đơn giản là, theo ý muốn của số phận, họ đã phải ngồi trên băng ghế dự bị để chờ đợi lần tiếp theo. dự án thương mại lớn mát mẻ. Điều hợp lý là mọi thứ cũng rất khó khăn với động lực trong tình huống như vậy. Năng suất giảm xuống thấp, nhóm thường nhàn rỗi và kết quả là bạn phải thuyết phục (động viên) hoặc thay đổi người đó. Khi thay đổi nhà phát triển, bạn cần tiến hành đào tạo, chuyển giao kiến ​​thức và về cơ bản là bắt đầu lại dự án. Mỗi nhà phát triển mới nhìn nhận kiến ​​trúc theo cách riêng của mình và chỉ trích những người đi trước về những quyết định mà họ đưa ra cũng như mã của người khác. Việc viết lại bắt đầu từ đầu.

Việc này diễn ra trong khoảng sáu tháng. Chúng tôi chỉ đánh dấu thời gian, tái cấu trúc mã và không viết bất cứ điều gì mới.

Ngoài ra, theo quy định, đối với các dự án nội bộ, hầu như không có tài liệu và rất khó để hiểu những gì cần phải làm tại mỗi thời điểm và những ưu tiên hiện tại là gì. Cần phải thành lập một nhóm thường trực, thiết lập các quy trình và tiến hành lập kế hoạch và đánh giá trong ít nhất ba tháng. Nhưng làm thế nào để làm điều này khi dự án không mang tính thương mại, điều đó có nghĩa là bạn cần đầu tư tối thiểu nhân công, đồng thời đạt được kết quả không tệ hơn đối với khách hàng bên ngoài?

Chúng tôi đã xác định được một nhóm nguồn lực đã tham gia vào quá trình phát triển dự án, quen thuộc với nó và muốn làm việc với nó. Chúng tôi đã lập ra một lịch trình tuyển dụng nhân lực cho các dự án. Chúng tôi đã đánh giá và điều phối công việc, đồng thời lắp những công việc này vào những “khoảng trống” giữa các dự án chính. Sau 4 tháng, chúng tôi đã nhận được nguyên mẫu hoạt động của ứng dụng.

Bây giờ hãy nói chi tiết hơn về chức năng, kiến ​​trúc và giải pháp kỹ thuật của bot.

Một trong những yêu cầu chính của HR là nhận dạng văn bản do người dùng viết để trả lời chính xác câu hỏi. Bạn có thể viết thư cho anh ấy - Tôi muốn đi nghỉ, tôi muốn đi nghỉ hoặc muốn đi nghỉ, và anh ấy sẽ hiểu và phản hồi tương ứng. Hoặc đột nhiên ghế của nhân viên bị gãy và anh ta muốn viết “ghế gãy rồi” hoặc “Ghế của tôi bị nứt” hoặc “Lưng ghế bị rơi ra”; nếu được đào tạo bài bản, bot sẽ nhận ra những yêu cầu đó. Bản thân chất lượng nhận dạng văn bản phụ thuộc vào quá trình đào tạo của bot, điều mà chúng ta sẽ nói đến sau.

Yêu cầu tiếp theo và một phần chức năng là hệ thống đối thoại của bot. Một hệ thống đã được phát triển trong đó bot có thể tiến hành đối thoại và hiểu bối cảnh của vấn đề hiện tại. Để trả lời câu hỏi của bạn, anh ta có thể hỏi bất kỳ câu hỏi làm rõ nào và tiếp tục cuộc trò chuyện nếu chúng tôi đã huấn luyện bot làm việc này. Skype hỗ trợ các tùy chọn menu đơn giản để nhắc người dùng về các tùy chọn để tiếp tục cuộc trò chuyện. Ngoài ra, nếu chúng ta đang đối thoại nhưng đột nhiên quyết định đặt một câu hỏi lạc đề, bot cũng sẽ hiểu điều này.

Bot cho phép gửi nhiều tạo phẩm khác nhau cho người dùng dựa trên dữ liệu cá nhân của họ. Ví dụ, tại vị trí của anh ấy. Giả sử nếu một người muốn tìm nhà vệ sinh thì người đó sẽ được xem bản đồ văn phòng dẫn người đó đến nhà vệ sinh. Và thẻ sẽ được chọn tùy thuộc vào văn phòng công ty mà nhân viên đó đang ở.

Một trong những nhiệm vụ quan trọng nhất là bảo vệ thông tin cá nhân của người dùng. Chúng tôi không thể cho phép mọi người có quyền truy cập vào dữ liệu nhạy cảm mà bot của chúng tôi vận hành. Nhu cầu cấp phép cho một bot như vậy là một phần không thể thiếu. Bot yêu cầu người dùng xác thực trước khi có thể thực hiện bất kỳ cuộc đối thoại nào với anh ta. Điều này xảy ra khi nhân viên liên hệ với bot lần đầu tiên. Bản thân ủy quyền sẽ chuyển hướng người dùng đến trang thích hợp, nơi người dùng nhận được mã thông báo, sau đó anh ta sẽ chèn mã thông báo này vào tin nhắn Skype. Nếu ủy quyền thành công, bạn có thể bắt đầu liên lạc với bot.

Bot sẽ giúp chúng ta

Việc ủy ​​quyền diễn ra thông qua Skype - dịch vụ ủy quyền cổng thông tin, mạng công ty và LDAP. Do đó, việc ủy ​​quyền phụ thuộc vào dữ liệu người dùng hiện tại trên mạng công ty.

Trong quá trình phát triển bot, chúng tôi nhận ra rằng chúng tôi cần một số loại hệ thống được tích hợp trong chức năng cổng thông tin có thể giúp HR nhanh chóng gỡ lỗi bot. Chúng tôi đã thêm một trang cổng thông tin nơi bộ phận nhân sự có thể xem các lỗi do người dùng ghi lại khi làm việc với bot và giải quyết chúng bằng cách đào tạo lại hoặc để lại cho các nhà phát triển.

Ngay từ đầu, khả năng huấn luyện bot trực tiếp trên cổng đã không được đưa vào. Trong quá trình phát triển, chúng tôi nhận thấy rằng đào tạo bot là nhiệm vụ phổ biến nhất mà nhân viên bộ phận nhân sự sẽ thực hiện khi làm việc với nó và việc gửi tệp văn bản cho nhà phát triển để đào tạo thêm về bot là hoàn toàn không thể chấp nhận được. Điều này ngốn quá nhiều thời gian và tạo ra quá nhiều lỗi và vấn đề.

Bot sẽ giúp chúng ta

Chúng tôi đã viết giao diện người dùng trên cổng thông tin để đào tạo bot thân thiện với người dùng. Nó cho phép HR xem quá trình đào tạo hiện tại của bot, đào tạo thêm và điều chỉnh quá trình đào tạo hiện tại. Quá trình đào tạo được thể hiện bằng cấu trúc cây trong đó các nút, tức là các nhánh, là sự tiếp nối của cuộc đối thoại với bot. Bạn có thể tạo những câu hỏi và câu trả lời đơn giản hoặc bạn có thể tạo những cuộc đối thoại có sức thuyết phục, tất cả đều phụ thuộc vào bộ phận nhân sự và nhu cầu của họ.

Một vài lời về kiến ​​trúc giải pháp.

Bot sẽ giúp chúng ta

Kiến trúc giải pháp là mô-đun. Nó bao gồm các dịch vụ chịu trách nhiệm cho các nhiệm vụ khác nhau, cụ thể là:
• Dịch vụ bot Skype trên Azure - chấp nhận và xử lý yêu cầu của người dùng. Đây là một dịch vụ khá đơn giản, là dịch vụ đầu tiên nhận được yêu cầu và thực hiện quá trình xử lý ban đầu.
• Cổng quản trị - một dịch vụ cung cấp giao diện web để thiết lập cổng và cho chính bot. Bot luôn liên hệ với cổng trước và cổng sẽ quyết định việc cần làm tiếp theo với yêu cầu.
• Dịch vụ ủy quyền - cung cấp cơ chế xác thực cho bot và cổng quản trị. Việc ủy ​​quyền diễn ra thông qua giao thức Oauth2. Với ủy quyền tích cực, dịch vụ thực hiện ủy quyền trong mạng công ty theo dữ liệu người dùng hợp lệ, để hệ thống có thể kiểm soát các lỗi liên quan đến dữ liệu không đồng bộ.
• Mô-đun nhận dạng văn bản AI, được viết bằng Python và sử dụng khung ParlAI để nhận dạng văn bản. Đây là một mạng lưới thần kinh, ít nhất là trong cách triển khai hiện tại của nó. Chúng tôi sử dụng thuật toán tfDiff để hiểu các câu hỏi. Mô-đun này cung cấp một API để giao tiếp với nó và học tập.

Tóm lại, tôi muốn nói rằng đây là trải nghiệm đầu tiên của chúng tôi trong việc tạo bot trò chuyện và chúng tôi đã cố gắng làm cho hệ thống đơn giản nhất có thể, nhưng đồng thời hoạt động tốt với chi phí lao động tối thiểu. Tôi nghĩ chúng tôi có một sản phẩm rất thú vị. Với hệ thống đào tạo riêng, ghi nhật ký lỗi, gửi thông báo, nó cũng có thể được tích hợp với bất kỳ trình nhắn tin nào khác.

Nguồn: www.habr.com

Thêm một lời nhận xét