Cách Giữ Cơ Sở Dữ Liệu Kiến Thức RAG Cập Nhật với Dữ Liệu Web
TL;DR
Độ tươi mới của dữ liệu RAG là một chính sách cập nhật cho các tài liệu nguồn, embeddings, và bản ghi chỉ mục, không chỉ đơn thuần là lịch trình thu thập dữ liệu.
So sánh nội dung chính đã được chuẩn hóa, không phải HTML thô, trước khi trả tiền để phân đoạn và nhúng lại một trang.
Cung cấp cho mỗi phân đoạn một URL nguồn và phiên bản ổn định để các trang đã thay đổi và bị xóa có thể thay thế các vector cũ một cách sạch sẽ.
Nstdata Crawl có thể lấy các trang công khai dưới dạng Markdown; ứng dụng của bạn sở hữu việc phát hiện thay đổi, embeddings, lưu trữ vector, và đánh giá câu trả lời.
Ghi lại các lỗi thu thập riêng biệt với các xóa hợp lệ để một thời gian chờ không thể xóa một nguồn kiến thức hợp lệ.
Tại sao các cơ sở dữ liệu RAG trở nên lỗi thời
Đối với một lớp thu thập thực tế, hãy xem lại Nstdata Crawl song song với quy trình làm việc bên dưới.
Bài báo RAG gốc mô tả việc sinh ra thông qua một bộ nhớ truy xuất bên ngoài. Sinh ra tăng cường truy xuất có thể trích dẫn tài liệu lỗi thời khi chỉ mục của nó mô tả một phiên bản trước đó của một trang. Một trang giá cả có thể thay đổi trong khi các phân đoạn cũ vẫn có thể tìm kiếm; một bài viết trợ giúp có thể biến mất trong khi các vector của nó vẫn tiếp tục trả lời câu hỏi. Mô hình có thể hành xử nhất quán với dữ liệu mà nó đã được cung cấp, vì vậy việc chỉnh sửa thuộc về quy trình nhập khẩu.
Một mục tiêu tươi mới cần hai đồng hồ. Tuổi thu thập là thời gian kể từ lần cuối trang được kiểm tra thành công. Tuổi chỉ mục là thời gian kể từ khi các phân đoạn tương ứng được ghi vào bộ lưu trữ truy xuất. Chúng có thể khác nhau khi việc trích xuất thành công nhưng nhúng hoặc chỉ mục thất bại. Theo dõi cả hai. Để biết thêm về việc chuyển đổi các trang thành văn bản có thể đọc được, hãy xem chuyển đổi URL sang Markdown và trích xuất có cấu trúc từ các trang web.
Cách độ tươi mới dữ liệu web hoạt động trong quy trình RAG
Trải nghiệm Nstproxy Crawl - Bắt Đầu Dùng Thử Miễn Phí Hôm Nay
Quy trình là phát hiện nguồn → thu thập trang → nội dung chính Markdown → chuẩn hóa → phát hiện thay đổi → phân đoạn → nhúng → cập nhật vector → đánh giá truy xuất. Phát hiện nguồn có thể đến từ một sơ đồ trang web, danh sách URL đã phê duyệt, hoặc một lần thu thập giới hạn của trang. Mỗi giai đoạn cần trạng thái lỗi riêng và chính sách thử lại.
Public source URLs -> Nstdata Crawl -> Markdown -> content hash
| unchanged: keep index
| changed: chunk -> embed -> upsert
| removed: verify -> delete vectors
vector store -> retriever -> answer with citations
Nstdata Crawl bao gồm việc truy xuất và trích xuất. Tài liệu Tài liệu về Crawl hiện tại của nó cho thấy đầu ra Markdown thông qua SDK Python của nó. Nó không tạo embeddings, vận hành một cơ sở dữ liệu vector, quyết định liệu một trang đã thay đổi hay không, hoặc đánh giá liệu một câu trả lời có hợp lệ hay không. Những giai đoạn đó thuộc về ứng dụng của bạn hoặc các dịch vụ khác. Để biết thêm về một mẫu quy trình AI riêng, hãy xem hướng dẫn hệ thống CrewAI.
Cách phát hiện những thay đổi trang có ý nghĩa
Băm văn bản chính sau khi đã chuẩn hóa ổn định. Bỏ qua các thay đổi dòng trống tình cờ, nhưng giữ lại tiêu đề, liên kết, bảng, và giá trị có thể quan trọng đối với người dùng. Không loại bỏ giá, ngày tháng, hoặc nhãn phiên bản như là “nhiễu.” Một chân trang hoặc banner cookie toàn trang nên được loại bỏ bởi giai đoạn trích xuất; một mức giá thay đổi trong nội dung phải tạo ra một tóm tắt mới.
Băm xác định một phiên bản nội dung, không phải là một phán xét ngữ nghĩa. Một thay đổi nhỏ có thể rất quan trọng; một thay đổi lớn trong mẫu có thể không. Xem xét các kết quả dương tính giả trước khi thêm các quy tắc chuẩn hóa quyết đoán. Lưu trữ URL, tóm tắt, thời gian lấy thành công, phiên bản bộ trích xuất, và phiên bản chỉ mục cùng nhau. Đối với các xóa, yêu cầu một phản hồi vĩnh viễn được xác nhận hoặc kiểm tra lặp lại; một lỗi mạng tạm thời nên giữ phiên bản chỉ mục hợp lệ cuối cùng trong khi đánh dấu nó là lỗi thời.
Xây dựng một quy trình cập nhật website-to-RAG
Bắt đầu với một danh sách cho phép nhỏ các URL tài liệu công khai và một nhịp độ tái thu thập rõ ràng. Gọi SDK cho mỗi URL, tính toán chữ ký, và so sánh với bảng trạng thái của bạn. Nếu không thay đổi, chỉ cần cập nhật last_checked_at. Nếu đã thay đổi, tạo các khối với ID ổn định như sha256(url + chunk_index + content_version), tính toán nhúng, sau đó upsert chúng vào kho vector mà bạn đã chọn. Xóa phiên bản cũ chỉ sau khi phiên bản mới có thể tìm kiếm. Thứ tự này tránh một khoảng thời gian truy xuất trống.
Đoạn mã dưới đây là ranh giới thu thập. Cài đặt nstdata-ai-crawl và thiết lập NSTDATA_API_TOKEN trước. Lời gọi SDK theo ví dụ Nstdata Python SDK; một yêu cầu trực tiếp vẫn cần thông tin xác thực của riêng bạn.
import os
from nstdata_ai_crawl import NstDataClient, ScrapeRequestDto, Format
defread_markdown(url:str)->str: token = os.environ["NSTDATA_API_TOKEN"]with NstDataClient(token)as client: result = client.submit_scrape_task_sync( ScrapeRequestDto( url=url, formats=[Format.MARKDOWN], timeout=60000, onlyMainContent=True,)) markdown = result.data.get_markdown()ifnot markdown ornot markdown.strip():raise ValueError(f"No readable content returned for {url}")return markdown
Ứng dụng của bạn sau đó thực hiện các thao tác trên cơ sở dữ liệu, sử dụng các phương thức và ID của cửa hàng đã chọn:
defrefresh_one(url, state_store, vector_store, embedder): markdown = read_markdown(url)# Lấy từ Nstdata; yêu cầu mã thông báo API digest = content_hash(markdown) old = state_store.get(url)if old and old.digest == digest: state_store.mark_checked(url)return"unchanged" chunks = split_markdown(markdown)# Chính sách chia khối của bạn records =[{"id":f"{url}#{digest}#{i}","url": url,"text": chunk,"vector": embedder.embed(chunk)}for i, chunk inenumerate(chunks)] vector_store.upsert(records)# Cơ sở dữ liệu vector bên thứ ba state_store.commit(url, digest,[r["id"]for r in records])if old: vector_store.delete(old.vector_ids)return"updated"
split_markdown, state_store, vector_store, và embedder là các giao diện ứng dụng, không phải là các tính năng SDK của Nstdata. Thực hiện upsert và cam kết trạng thái một cách vô hướng: chạy lại một công việc bị lỗi nên hội tụ vào một phiên bản hiện tại. Làm theo bảng dữ liệu vector của riêng bạn về các ngữ nghĩa giao dịch và xóa; ví dụ, xem Tài liệu upsert Pinecone. Một triển khai sản xuất cũng ghi lại các ghi chép một phần và thực hiện lại một cách an toàn.
Nơi Nstdata Crawl thích hợp
Các nhóm RAG cần một đầu vào nội dung web đáng tin cậy trước khi họ có thể thảo luận về chất lượng nhúng. Nstdata Crawl cung cấp lấy trang, trích xuất, và đầu ra Markdown thông qua một API và SDK; việc thu thập trang có giới hạn có thể giúp với việc tiếp nhận URL khi nguồn cho phép. Markdown cung cấp cho các khối hạ nguồn tiêu đề và văn bản có thể đọc, trong khi URL nguồn vẫn có sẵn cho trích dẫn. Dịch vụ nên được đánh giá trên các trang thực tế mà bạn được phép thu thập, vì bố cục trang và hành vi JavaScript có thể khác nhau.
Ba kiểm tra thực tiễn quan trọng. Chất lượng đầu ra: xác minh rằng văn bản trả về chứa tiêu đề mong đợi và không có trang đăng nhập hoặc đồng ý. Phạm vi: ràng buộc khám phá và tần suất lấy theo quy tắc của nguồn và ngân sách của bạn. Chi phí: kiểm tra Sản phẩm Crawl hiện tại và Giá Crawl cho mô hình thanh toán áp dụng, bao gồm cả việc sử dụng proxy được tính phí riêng khi cần thiết. Nstdata cung cấp đầu vào; chính sách độ tươi và ghi vector vẫn thuộc về bạn.
Những phương pháp tốt nhất cho độ tươi bền vững
Thiết lập khoảng thời gian theo biến động nguồn và tác động kinh doanh thay vì chạy mọi URL trên một bộ định thời. Một nhật ký thay đổi sản phẩm có thể xứng đáng với một kiểm tra thường xuyên; các định nghĩa pháp lý lâu dài có thể cần ít hơn. Sử dụng lập lịch có điều kiện cho tần suất thay đổi quan sát được, nhưng giữ một độ tuổi tối đa để các nguồn yên tĩnh vẫn được kiểm tra. Bảo tồn các phiên bản trước đó để kiểm toán và hoàn nguyên.
Giám sát thành công thu thập, chất lượng trích xuất, tỷ lệ thay đổi hash, thất bại nhúng, độ trễ chỉ mục, và tuổi thọ trích dẫn. Chạy các truy vấn đại diện sau khi cập nhật; một chỉ mục có thể về mặt kỹ thuật là hiện tại trong khi việc truy xuất vẫn trả về một đoạn không liên quan. Đối xử với tài liệu xác định cá nhân hoặc có giấy phép theo quyền và quy tắc lưu giữ nguồn gốc. Một trang công khai không tự động cấp quyền tái sử dụng không giới hạn.
Kết quả hữu ích là một đường dẫn trả lời có thể theo dõi: câu hỏi → đoạn được lấy → URL nguồn → phiên bản nội dung → lần kiểm tra thành công cuối cùng. Điều đó làm cho một câu trả lời cũ có thể gỡ lỗi thay vì bí ẩn.
Tần suất cập nhật phụ thuộc vào tốc độ thay đổi của nguồn và chi phí của một câu trả lời cũ. Đặt một tuổi tối đa được phép cho mỗi nguồn, sau đó đo lường sự thay đổi thực tế và độ trễ chỉ mục.
Q: Làm thế nào để phát hiện thay đổi trên các trang web?
So sánh một hash của nội dung chính đã được chuẩn hóa với phiên bản thành công cuối cùng. Giữ thất bại thu thập tách biệt với thay đổi nội dung.
Q: Có thể sử dụng Markdown cho RAG không?
Có. Markdown giữ lại cấu trúc hữu ích cho việc phân chia, nhưng nó vẫn cần được xác minh, nhúng, lập chỉ mục, và kiểm tra truy xuất.
Q: Làm thế nào để cập nhật cơ sở dữ liệu vector khi một trang thay đổi?
Viết các đoạn phiên bản mới, xác minh rằng chúng có thể tìm kiếm, sau đó xóa các ID đoạn trước đó. Sử dụng các thao tác upsert và xóa đã được tài liệu hóa của cơ sở dữ liệu được chọn.
Lena Zhou
Oct. 27th 2026
Thu thập toàn bộ trang web chỉ với một yêu cầu API
Tỷ lệ thành công 99,8% với kết xuất JavaScript
Nhận dữ liệu sạch, sẵn sàng cho LLM ở nhiều định dạng
Chuyển mọi trang web thành Markdown, HTML, JSON, liên kết, PDF và hơn thế nữa mà không cần quản lý hạ tầng thu thập dữ liệu.