TL;DR
- Một pipeline website-to-RAG có năm giai đoạn bền vững: crawl, normalize, chunk, embed, store, và query với trích dẫn nguồn.
- Giữ lại siêu dữ liệu crawl và ID tài liệu ổn định để các trang bị thay đổi hoặc xóa có thể được cập nhật trong kho vector.
- Mã dưới đây chạy ngoại tuyến với một fixture nhỏ và một embedding demo xác định; thay thế adapter và hàm embedding của nó cho sản xuất.
- Đánh giá sự hỗ trợ và độ mới của câu trả lời sau khi truy xuất. Một phản hồi crawl thành công một mình không phải là một hệ thống RAG thành công.
Pipeline RAG trên website cần bảo tồn điều gì?
Một tập hợp website không phải là một túi các chuỗi Markdown. Mỗi trang cần có URL nguồn, URL chuẩn, thời gian crawl, tiêu đề, nội dung và một ID ổn định. Nstdata Crawl tài liệu về việc crawling trang và nhiều đầu ra, trong khi hướng dẫn API Crawl của nó mô tả trạng thái, danh sách trang và truy xuất đối tượng. Trình thu thập là giai đoạn thu nhận; ứng dụng của bạn có quyền sở hữu việc chấp nhận, phân đoạn, nhúng, lập chỉ mục và kiểm tra trích dẫn. Sử dụng một trang được phép có giới hạn cho lần chạy đầu tiên.
Mã dưới đây là một ví dụ hoàn toàn có thể chạy ngoại tuyến với thư viện tiêu chuẩn Python. Fixture của nó đứng thay cho đầu ra đã được chuẩn hóa của một adapter crawl. Vector dựa trên băm một cách cố ý là một double kiểm tra xác định; nó không phải là một embedding ngữ nghĩa và không bao giờ nên được sử dụng để đánh giá chất lượng câu trả lời. Một adapter sản xuất sẽ lấy dữ liệu từ Nstdata crawl, truy xuất các tham chiếu Markdown, và truyền các đối tượng Page vào các hàm hạ lưu giống nhau. Tài liệu công khai không đồng ý về một số nhãn tuyến đường thu thập, vì vậy hãy xác nhận tuyến đường trực tiếp trước khi thực hiện bước mạng đó.
Ví dụ đầy đủ crawl-to-query
Lưu điều này dưới dạng rag_demo.py và chạy python3 rag_demo.py. Nó in ra nguồn của chunk có điểm số cao nhất cho một truy vấn mẫu.





