Xây Chatbot Hỏi Đáp Wiki Nội Bộ: Chuyện Lười Biếng Mà Hiệu Quả Của Một Lập Trình Viên Microsoft
Lê Lân
0
Xây Dựng Bot Tìm Kiếm Nội Dung Wiki Nội Bộ Với Azure OpenAI và Teams AI Library
Mở Đầu
Với sự phát triển mạnh mẽ của trí tuệ nhân tạo, việc khai thác dữ liệu nội bộ hiệu quả ngày càng trở nên quan trọng. Nhưng khi kho tài liệu wiki nội bộ quá lớn, việc tìm kiếm thông tin cần thiết trở nên khó khăn và mất thời gian.
Bạn có từng gặp tình huống phải hỏi đồng nghiệp để tìm câu trả lời nằm trong wiki, nhưng phải chờ đợi lâu hoặc bị phân tâm không? Chính vì thế, việc tạo ra một bot có thể tương tác trực tiếp với wiki bằng ngôn ngữ tự nhiên sẽ giúp tăng năng suất, rút ngắn thời gian tìm kiếm và giảm tải cho các đồng nghiệp.
Bài viết này sẽ giới thiệu chi tiết cách tôi xây dựng một bot sử dụng Azure OpenAI on Your Data, tích hợp với Teams AI Library và một ít Python để tự động hóa việc truy vấn wiki nội bộ trên nền tảng Azure DevOps, giúp trả lời câu hỏi nhanh chóng và chính xác.
Tổng Quan Giải Pháp
Giải pháp được xây dựng dựa trên các bước chính:
Lấy dữ liệu từ Azure DevOps Wiki tự động và đẩy lên Azure Blob Storage
Tạo chỉ mục tìm kiếm với Azure AI Search
Xây dựng bot tích hợp GPT-4 qua Teams AI Library để trả lời và tương tác với dữ liệu wiki
Tự động cập nhật chỉ mục khi wiki thay đổi bằng một trình lập chỉ mục (Indexer)
Triển khai bot trên Azure và tích hợp vào Microsoft Teams
1. Khởi Đầu Với Azure OpenAI và Teams AI Library
1.1 Tạo tài nguyên Azure cần thiết
Để bắt đầu, cần thiết lập các dịch vụ Azure:
Azure OpenAI Service: phục vụ cho việc gọi các mô hình GPT hiện đại như GPT-4, GPT-3.5-Turbo.
Blob Storage: lưu trữ dữ liệu wiki dưới dạng file.
Azure AI Search: cung cấp khả năng tìm kiếm dựa trên chỉ mục dữ liệu.
Việc tạo các tài nguyên này có thể thực hiện thủ công qua Azure Portal hoặc tự động khi theo dõi tutorial chính thức từ Microsoft. Trong quá trình này, Azure AI Search sẽ tạo một chỉ mục sẵn có và kết nối với Blob Storage để phục vụ việc tìm kiếm dữ liệu.
1.2 Tích hợp bot Teams với Teams AI Library
Teams AI Library cung cấp SDK bằng các ngôn ngữ phổ biến như C#, JavaScript và Python, giúp dễ dàng tích hợp mô hình ngôn ngữ GPT vào ứng dụng Teams.
Tạo một bot Teams đơn giản bằng Visual Studio Code
Kết nối bot với Azure OpenAI và Azure Search dịch vụ
Cấu hình file .env để lưu thông tin đăng nhập và các API Keys
Bạn có thể chạy thử bot trên Teams Test Tool, thử hỏi các câu đơn giản và nhận câu trả lời từ dữ liệu wiki đã được tải lên.
2. Thiết Lập Hệ Thống Indexer Tự Động Trên Azure AI Search
2.1 Vấn đề với dữ liệu thay đổi liên tục
Bởi wiki là hệ thống luôn cập nhật, chỉ việc tải lên lần đầu không đủ để bot có thông tin chính xác theo thời gian thực.
2.2 Sử dụng Indexer để tự động gia tăng chỉ mục
Tạo Data Source kết nối tới Blob Storage chứa các file wiki
Tạo Indexer trong Azure AI Search, cấu hình để chạy thủ công hoặc định kỳ
Chạy Indexer khi có dữ liệu mới đẩy lên Blob để cập nhật chỉ mục tìm kiếm
3. Tự Động Hóa Việc Thu Thập Dữ Liệu Từ Azure DevOps Wiki
3.1 Lấy dữ liệu wiki qua API Azure DevOps
Do số lượng bài viết wiki lớn (hàng trăm trang), việc tải thủ công không khả thi:
Sử dụng Personal Access Token (PAT) để xác thực API Azure DevOps (lưu trữ token an toàn trong Azure KeyVault)
Gọi API wiki để tải danh sách path của các trang wiki cùng nội dung markdown
Phân tích đường dẫn và nội dung từng trang để chuẩn bị dữ liệu
# Ví dụ gọi API wiki để lấy toàn bộ trang chứa nội dung