- Benchling vận hành hạ tầng đám mây trên nhiều khu vực và môi trường.
- Họ quản lý hơn 160.000 tài nguyên với Terraform Cloud, và mỗi tháng khoảng 50 kỹ sư phát hành các thay đổi hạ tầng.
- Họ có lượng lớn tài liệu FAQ (20 trang) và bản ghi thread Slack, nhưng vẫn gặp vấn đề về "khả năng tìm kiếm kém hiệu quả".
- Để giải quyết vấn đề này, họ đã xây dựng Slackbot sử dụng RAG LLM.
Mục tiêu triển khai
- Phát triển Slackbot nội bộ xử lý câu hỏi về Terraform Cloud theo thời gian thực.
- Kết hợp nguồn dữ liệu nội bộ và bên ngoài để trả lời cho người dùng thông qua giao diện Slack quen thuộc.
- Trường hợp dùng:
- Trả lời câu hỏi HR
- Tìm kiếm trường hợp khắc phục sự cố khách hàng
- Giải thích mã lỗi phần mềm
Cách thức hoạt động
- Phân tích truy vấn người dùng: Tìm thông tin liên quan trong cơ sở dữ liệu.
- Tạo prompt cho LLM: Tạo lời phản hồi bằng cách kết hợp kết quả tìm kiếm và hướng dẫn.
Công nghệ sử dụng
- Mô hình RAG: Sử dụng Amazon Bedrock.
- Thiết lập cơ sở tri thức được xây dựng trên cơ sở dữ liệu OpenSearch Serverless.
- Dùng mô hình Claude 3.5 Sonnet v2 để tạo câu trả lời.
Nguồn dữ liệu
- Confluence: FAQ Terraform Cloud (lưu dưới dạng PDF rồi tải lên S3).
- Web: Tài liệu Terraform Cloud và tài liệu ngôn ngữ của HashiCorp.
- Slack: Các thread có chứa issue Terraform Cloud đã giải quyết (POC được thu thập thủ công).
- Dữ liệu được lưu trong cơ sở dữ liệu vector để tra cứu khi truy vấn.
Kiến trúc triển khai
- Thành phần:
- Slack App
- AWS API Gateway
- AWS Lambda (sử dụng Python)
- AWS Bedrock
- OpenSearch Serverless (cơ sở dữ liệu vector)
- Mô hình sử dụng:
- Amazon Titan Text Embeddings v2 (tạo embedding)
- Claude 3.5 Sonnet v2 (tạo câu trả lời)
Giới hạn và cải tiến trong tương lai
Giới hạn
- Không thể xử lý hình ảnh: Không bao gồm kiến trúc dạng ảnh hoặc screenshot.
- Thiếu hỗ trợ Terraform: Hiện tại Terraform AWS provider chưa hỗ trợ tài nguyên Bedrock.
Cải tiến trong tương lai
- Thêm liên kết nguồn: Bao gồm nguồn tài liệu trong phản hồi Slack.
- Tự động lưu thread Slack: Cập nhật cơ sở dữ liệu bằng lệnh
@help-terraform-cloud nhớ cho tôi.
- Tự động hóa đồng bộ dữ liệu: Dùng CloudWatch Events để đồng bộ hàng tuần.
- Sử dụng Confluence API: Chuyển từ upload PDF thủ công sang kết nối API.
- Hỗ trợ hội thoại đa lượt: Duy trì bối cảnh hội thoại liên tục với người dùng.
Những bài học trong quá trình xây dựng
- Chiến lược chia nhỏ dữ liệu:
- Ban đầu dùng kích thước chunk 300 token (~1 đoạn), nhưng điều chỉnh lên 1500 token (~5 đoạn) để tránh các câu trả lời dài bị cắt.
- Hiệu quả khi phân tích PDF:
- Loại bỏ ảnh, dữ liệu dựa trên văn bản được trích xuất ổn định.
- Độ dễ dàng thiết lập knowledge base:
- Có thể triển khai bằng Amazon Bedrock trong vài phút.
Trường hợp sử dụng
- Tra cứu FAQ và mã lỗi.
- Tự động trả lời các câu hỏi lặp lại.
- Sử dụng tập dữ liệu tùy chỉnh theo từng đội:
- Lịch sử cuộc trò chuyện, tài liệu dùng chung, v.v.
Lưu ý bảo mật
- Đánh giá rủi ro về mức độ nhạy cảm của dữ liệu và kết quả không chính xác.
- Xác nhận model được tổ chức phê duyệt.
Kết luận
- Slackbot dựa trên LLM đã chứng minh khả năng phát triển nhanh nguyên mẫu.
- Thử nghiệm công nghệ mới có thể tăng hiệu quả và năng suất.
- Dựa trên ví dụ này, bạn cũng có thể thử xây dựng công cụ dựa trên LLM cho riêng mình!
Chưa có bình luận nào.