9 điểm bởi GN⁺ 2024-12-25 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • 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

  1. 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.
  2. 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

  1. Thêm liên kết nguồn: Bao gồm nguồn tài liệu trong phản hồi Slack.
  2. 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.
  3. Tự động hóa đồng bộ dữ liệu: Dùng CloudWatch Events để đồng bộ hàng tuần.
  4. Sử dụng Confluence API: Chuyển từ upload PDF thủ công sang kết nối API.
  5. 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

  1. 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.
  2. 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.
  3. Độ 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.

Chưa có bình luận nào.