Nâng cao chất lượng RAG bằng cách thu thập dữ liệu web tùy chỉnh cho Amazon Bedrock
AWS hướng dẫn sử dụng Crawl4AI để tiền xử lý nội dung web thành Markdown và metadata trước khi đưa vào Amazon Bedrock Knowledge Bases, nhằm cải thiện độ chính xác của việc truy xuất.
Được dịch tự động từ bản gốc tiếng Anh.
Amazon Web Services đã công bố một hướng dẫn kỹ thuật chi tiết về cách nâng cao các ứng dụng Retrieval Augmented Generation (RAG) bằng cách tiền xử lý nội dung web trước khi nạp dữ liệu. Bài hướng dẫn, được phát hành vào tháng 11 năm 2026, giải thích cách các nhà phát triển có thể sử dụng công cụ mã nguồn mở Crawl4AI để làm sạch và cấu trúc hóa dữ liệu trước khi đưa chúng vào Amazon Bedrock Knowledge Bases. Phương pháp này nhắm mục tiêu vào các kịch bản mà trình thu thập dữ liệu mặc định không thể cô lập thông tin liên quan hoặc thiếu ngữ cảnh metadata cần thiết.
Chuyện gì đã xảy ra
Việc xây dựng các hệ thống RAG hiệu quả phụ thuộc rất nhiều vào chất lượng dữ liệu được nạp. Amazon Bedrock Knowledge Bases cung cấp một dịch vụ quản lý xử lý việc lập chỉ mục, lưu trữ và truy xuất, bao gồm cả một trình thu thập dữ liệu web tích hợp sẵn cho các trang web công khai. Mặc dù connector được quản lý này đủ dùng cho nhiều trường hợp sử dụng, nó hoạt động trong các ranh giới nghiêm ngặt. Nó tuân thủ các tệp robots.txt và ghi nhận thay đổi thông qua đồng bộ hóa theo lịch trình, nhưng không cho phép tùy chỉnh sâu cách phân tích cú pháp hoặc lọc nội dung trang trước khi chúng đi vào kho vector.
Đối với các tổ chức yêu cầu kiểm soát tinh tế hơn, AWS đề xuất một quy trình làm việc lai. Thay vì chỉ dựa vào connector được quản lý, các nhà phát triển có thể chèn thêm một bước chuẩn bị sử dụng Crawl4AI. Trình thu thập dữ liệu dựa trên Python này trích xuất các vùng nội dung cụ thể, loại bỏ các phần mẫu thừa điều hướng và gắn các thuộc tính metadata tùy chỉnh. Dữ liệu đã xử lý sau đó được lưu dưới dạng các tệp Markdown và sidecar JSON trong Amazon S3, đóng vai trò là nguồn dữ liệu cho cơ sở kiến thức. Phương pháp này đảm bảo rằng chỉ những nội dung có tín hiệu cao mới tiếp cận được các mô hình nhúng (embedding models), từ đó có khả năng cải thiện mức độ liên quan của câu trả lời.
Giải pháp được cung cấp phác thảo một quy trình nạp dữ liệu theo lô (batch ingestion) thay vì truy cập web thời gian thực. Nó sử dụng AWS Fargate để chạy các tác vụ thu thập dữ liệu theo lịch trình, đảm bảo hạ tầng tự động mở rộng quy mô mà không cần quản lý máy chủ thủ công. Quy trình làm việc được thiết kế để có thể mở rộng, cho phép các nhóm xác định các quy tắc phân tích cú pháp và lược đồ metadata riêng trong khi tận dụng Amazon Bedrock cho các công việc nặng như chia đoạn (chunking) và tạo vector nhúng.
Cách thức hoạt động
Cơ chế cốt lõi bao gồm ba giai đoạn riêng biệt: trích xuất, chuẩn bị và nạp dữ liệu. Đầu tiên, một quy tắc Amazon EventBridge kích hoạt một tác vụ AWS Fargate chạy một script Crawl4AI được container hóa. Trình thu thập dữ liệu truy cập các URL hạt giống (seed URLs) được chỉ định và áp dụng chiến lược tìm kiếm ưu tiên bề rộng (breadth-first search) với độ sâu và giới hạn số trang có thể cấu hình. Nó sử dụng bộ lọc cắt tỉa nội dung (pruning content filter) để loại bỏ các phần đầu trang, chân trang và quảng cáo, chỉ giữ lại phần thân bài viết chính, các tiêu đề và bảng biểu. Đầu ra được chuyển đổi sang Markdown sạch, giúp bảo toàn ngữ nghĩa cấu trúc tốt hơn so với HTML thô đối với các mô hình ngôn ngữ lớn.
Tiếp theo, quy trình làm việc tạo ra một sidecar metadata cho mỗi tài liệu. Tệp JSON này chứa các thuộc tính như URL nguồn, dấu thời gian thu thập và các danh mục tùy chỉnh. Các sidecar này được tải lên Amazon S3 cùng với các tệp Markdown, tuân theo quy ước đặt tên nghiêm ngặt trong đó tên tệp metadata khớp với tên tài liệu với phần mở rộng .metadata.json. Amazon Bedrock đọc các sidecar này trong quá trình nạp dữ liệu, cho phép người dùng lọc kết quả tìm kiếm dựa trên các thuộc tính tùy chỉnh như ngày tháng hoặc loại nội dung.
Cuối cùng, tác vụ kích hoạt một công việc nạp dữ liệu trong Amazon Bedrock Knowledge Bases. Dịch vụ này phân tích cú pháp Markdown, áp dụng chiến lược chia đoạn đã chọn và tạo các vector nhúng. Vì nội dung đã được làm sạch và cấu trúc hóa, quá trình chia đoạn có nhiều khả năng tạo ra các đoạn liền mạch hơn. Người dùng có thể lựa chọn giữa các chiến lược mặc định, kích thước cố định hoặc không chia đoạn tùy thuộc vào nhu cầu truy xuất cụ thể của họ. Hệ thống sau đó lập chỉ mục các vector này, khiến chúng sẵn sàng cho việc truy xuất tại thời điểm truy vấn kèm theo trích dẫn.
Chi tiết quan trọng
- Công cụ: Giải pháp sử dụng Crawl4AI, một trình thu thập dữ liệu Python mã nguồn mở, được tích hợp với Amazon Bedrock Knowledge Bases thông qua Amazon S3.
- Định dạng dữ liệu: Nội dung được chuyển đổi sang Markdown để bảo toàn cấu trúc trong khi loại bỏ nhiễu, đi kèm với các sidecar metadata JSON.
- Hạ tầng: Quá trình thu thập dữ liệu chạy trên AWS Fargate, được kích hoạt bởi Amazon EventBridge theo một lịch trình có thể cấu hình.
- Giới hạn Metadata: Mỗi sidecar metadata phải nhỏ hơn 10 KB; vượt quá giới hạn này sẽ khiến việc tải lên thất bại.
- Chiến lược chia đoạn: Người dùng có thể chọn các tùy chọn mặc định, kích thước cố định hoặc không chia đoạn trong quá trình cấu hình nguồn dữ liệu, nhưng không thể thay đổi chúng sau đó nếu không tạo một nguồn mới.
- Xác thực: Mẫu triển khai chỉ hỗ trợ các trang web công khai; các trang web yêu cầu xác thực cần đánh giá bảo mật bổ sung và xử lý phiên.
Tại sao điều này quan trọng
Đối với các kỹ sư phần mềm xây dựng sản phẩm AI, sự khác biệt giữa một câu trả lời hữu ích và một ảo giác (hallucination) thường nằm ở vệ sinh dữ liệu. Các trình thu thập dữ liệu web mặc định có xu hướng nạp toàn bộ trang, bao gồm menu điều hướng, banner cookie và liên kết chân trang. Nhiễu này làm loãng ý nghĩa ngữ nghĩa của nội dung, dẫn đến điểm số truy xuất kém hơn. Bằng cách tiền xử lý dữ liệu với các công cụ như Crawl4AI, các nhóm có thể đảm bảo rằng kho vector chỉ chứa thông tin mà người dùng thực sự quan tâm. Điều này dẫn đến các phản hồi chính xác hơn và giảm số lượng token cần thiết cho cửa sổ ngữ cảnh.
Ngoài ra, khả năng gắn metadata tùy chỉnh biến một công cụ tìm kiếm đơn giản thành một cơ sở dữ liệu được lọc. Các nhà phát triển có thể gắn thẻ tài liệu với ngày hết hạn, mã phòng ban hoặc điểm tin cậy. Tại thời điểm truy vấn, các thẻ này cho phép lọc chính xác, đảm bảo rằng AI chỉ tham chiếu thông tin hiện hành hoặc được ủy quyền. Mức độ kiểm soát này rất quan trọng đối với các ứng dụng doanh nghiệp nơi tuân thủ và độ chính xác là yếu tố không thể thương lượng. Tính chất mô-đun của phương pháp này cũng có nghĩa là các nhóm có thể thay thế trình thu thập dữ liệu hoặc mô hình nhúng mà không cần viết lại toàn bộ logic ứng dụng.
Bạn có thể làm gì
- Đánh giá pipeline RAG hiện tại của bạn để xác định xem nội dung web nhiễu có đang làm giảm chất lượng câu trả lời hay không.
- Nhân bản repository aws-samples cho Crawl4AI và Amazon Bedrock để thử nghiệm quy trình làm việc trong môi trường sandbox.
- Xác định rõ các selector CSS hoặc quy tắc cắt tỉa để cô lập các vùng nội dung chính của các trang web mục tiêu.
- Thiết kế một lược đồ metadata bao gồm các bộ lọc hữu ích như ngày xuất bản, tác giả hoặc danh mục tài liệu.
- Thử nghiệm các chiến lược chia đoạn khác nhau trong Amazon Bedrock bằng các mẫu đại diện để tìm ra sự cân bằng tối ưu giữa ngữ cảnh và độ chính xác.
- Triển khai phạm vi URL nghiêm ngặt và giới hạn tốc độ trong cấu hình trình thu thập dữ liệu của bạn để tôn trọng các điều khoản dịch vụ của trang web.



