Trình kiểm tra đạo văn mã nguồn mở.
Sản phẩm kiểm tra đạo văn duy nhất có tầng đám mây vận hành thực tế và engine hoàn toàn mã nguồn mở. Mã nguồn chạy tại noplag.com cũng có trên GitHub tại github.com/NoplagLabs/noplag-engine — bạn có thể kiểm tra, fork hoặc tự triển khai.
Commit bạn kiểm tra tại noplag.com là commit trên GitHub.
Không có kiểu 'gần như mã nguồn mở'. Không phải kho chỉ có SDK còn động cơ đóng mã. Chunker, fingerprinter, retrieval cascade và report assembler đều nằm trong cùng một kho Apache 2.0 xây dựng container sản xuất của chúng tôi.
Engine phát hiện đạo văn cho noplag.com — chunking, vân tay winnowing, retrieval cascade, alignment, và báo cáo. Apache 2.0.
- NGÔN NGỮ
- Python · Rust
- GIẤY PHÉP
- Apache 2.0
- CỘNG TÁC VIÊN
- 38
- COMMITS
- 2,847
- PHIÊN BẢN MỚI NHẤT
- v0.4.2 · 3 ngày trước
- CI
- passing · 412 tests
Mã nguồn đóng là một lỗi, không phải một tính năng.
Trước chúng tôi, mọi trình kiểm tra đạo văn đều yêu cầu bạn tin vào một “hộp đen”. Tin vào điểm số. Tin vào phương pháp mà bạn không xem được. Tin rằng thuật toán không bị điều chỉnh để gắn cờ phong cách viết của bạn. Chúng tôi chọn làm ngược lại.
Không thấy thì không nên tin
Điểm số tương tự là một con số không có nguồn gốc kèm theo. Đó là trùng lặp câu, đoán diễn đạt lại, hay nhận định sai từ AI-detector? Đã điều chỉnh cho phong cách viết của bạn chưa? Các trình kiểm tra khóa kín không nói — vì ưu thế của họ là bạn không thể hỏi. Chúng tôi không chấp nhận điều đó như giá phải trả cho việc phát hiện đạo văn.
Sản phẩm mã nguồn mở thực sự, không chỉ là tiếp thị mã nguồn mở
Kho Apache 2.0 tại github.com/NoplagLabs/noplag-engine không phải là SDK phía khách bị lược bỏ với thuật toán so khớp bị đóng mã. Các thành phần chunker, winnowing fingerprinter, retrieval cascade, alignment, dedupe và tạo báo cáo đều xây dựng cùng một Docker container như tại noplag.com. Tầng đám mây chỉ bổ sung corpus và các adapter tìm kiếm web, không phải engine.
Điều đó nghĩa là gì với bạn
Đọc thuật toán trước khi tin vào điểm số. Tự triển khai engine trên hạ tầng của quý vị nếu tài liệu không được rời nó. Fork nếu roadmap của chúng tôi không còn trùng quý vị. Kiểm toán cách các khoảng chunk gộp thành số tương tự — và phản biện công khai nếu phát hiện lỗi.
Chuỗi truy xuất bốn lớp. Là sơ đồ, không phải ẩn dụ.
Mỗi lớp thu hẹp bộ ứng viên qua mức độ trade-off chính xác/giá thành tăng dần. Mọi lớp đều nằm trong repo mở. Cloud chỉ thêm corpus + adapters web-search.
Dấu vân tay winnowing
Chỉ số GIN 64-bit overlap trên các cột bigint[] trong Postgres. Lọc hàng tỉ chunk ứng viên xuống top-K với O(log n) mỗi truy vấn.
MinHash LSH — lộ trình v1.1
Ước lượng Jaccard cho các bản diễn đạt lại hoặc chỉnh sửa nhẹ, nhằm phát hiện các trường hợp L1 bỏ sót sau khi đã được diễn đạt lại. Đã thiết kế, chưa triển khai — chưa có trong kho mã công khai.
Sentence embeddings — lộ trình v1.2
Vector SBERT đa ngôn ngữ với pgvector ANN, phát hiện các bản viết lại tương đương về ngữ nghĩa và sao chép xuyên ngôn ngữ. Đã thiết kế, chưa triển khai — chưa có trong kho mã công khai.
Xác minh web trực tiếp
Các adapter Google + Brave xác định các ứng viên top-N trên web trực tiếp theo thời gian thực. Chạy trên tầng đám mây dành cho các gói trả phí; các adapter này không nằm trong gói mã nguồn mở.
noplag.toml.Repo thật có gì.
Không phải SDK bọc. Không phải client rút gọn. Thuật toán phát hiện đầy đủ — giữ nguyên cấu trúc đóng gói môi trường thực tế.
- src/noplag_engine/package
- chunking/chunker câu + sliding-window
- fingerprinting/hash 64-bit winnowing
- retrieval/Hiện tại chỉ có L1; L2 / L3 / LW chưa có trong gói này
- l1_winnowing.pyGIN-overlap top-K
- fingerprint_df.pythống kê tần suất tài liệu
- stop_list.pybộ lọc dấu vân tay không phân biệt
- alignment/gộp khoảng seed-and-extend
- workflows/pipeline kiểm tra điều phối theo thời gian
- api/Giao diện HTTP FastAPI
- reports/tô sáng kết quả + xuất PDF
- tests/412 bài kiểm thử · pytest + property + kiểm thử tích hợp
- migrations/di chuyển lược đồ bằng Alembic
- Dockerfiledùng cùng image với môi trường production
- docker-compose.ymlhướng dẫn tự triển khai nhanh
- LICENSEApache 2.0
- README.mdkiến trúc + hướng dẫn nhanh
- 12.4kGitHub stars
- 38cộng tác viên
- 2,847commits
- 412tests trong CI
- 1:1song song cloud / repo
Ba điều trình kiểm tra đóng không cho bạn kiểm tra.
Trình kiểm tra đóng chỉ cung cấp một con số. Ngưỡng đạo văn vs diễn giải, cân đối giữa overlap n-gram và tương đồng ngữ nghĩa, cách loại bỏ đoạn ngắn — đều đóng kín. Quý vị không tái tạo được, kiểm toán cũng không xem được, và lỗi cũng không có commit tham chiếu.
Quý vị có thể kiểm chứng: mọi ngưỡng, mọi trọng số, mọi quy tắc dedupe nằm trong src/noplag_engine/. Mở một release có tag trên GitHub, tìm exact commit kiểm tra của quý vị (trả về trong header X-Engine-Commit), đọc từng dòng toán.
Tài liệu của quý vị đi đâu sau khi gửi lên? Có được lưu lại không? Có thêm vào DB submissions dùng chung để người khác truy xuất? Có gửi cho bên thứ ba AI-detection không? Checklist marketing nói được. Code path thì không chỉ ra được.
Quý vị có thể kiểm chứng: workflows/ cho thấy mọi nơi submission được đọc, băm, lưu trữ, và xoá. migrations/ thể hiện tất cả các cột bị tác động. api/ cho thấy cái gì rời khỏi engine qua mạng — và chỗ quý vị có thể thay ranh giới khi fork.
Một “63% tương tự” kiểu hộp đen không có nguồn gốc. Là 63% từ 12 đoạn ngắn? Hay từ một đoạn dài? Hay do sai lệch truy xuất? Phong cách viết ESL của quý vị có bị cân khác? Điểm số gửi về, nhưng toán sinh ra nó thì không.
Quý vị có thể kiểm chứng: alignment/ phơi bày hợp nhất seed-and-extend. reports/ cho thấy cách các đoạn trùng gộp thành tỉ lệ tổng. Quý vị có thể chạy lại với tài liệu, cùng commit, kiểm tra từng khoảng, và công khai phản biện trên GitHub.
Hai cách chạy cùng một engine.
Phần lớn người dùng chọn tầng đám mây tại noplag.com — Postgres + Temporal + Coolify được quản lý, corpus đã được lập chỉ mục sẵn, các adapter tìm kiếm web có sẵn khóa API hợp lệ. Tùy chọn tự triển khai dành cho tổ chức không thể đưa tài liệu ra ngoài hạ tầng của mình: sao chép repo, tự cung cấp Postgres và Redis, trỏ engine vào corpus riêng (hoặc nhập OpenAlex + Common Crawl từ manifest của chúng tôi), và tự cấu hình khóa Google/Brave. Cùng một engine, cùng thuật toán, cùng định dạng báo cáo — chỉ khác ranh giới vận hành.
Xem hướng dẫn tự triển khaiNhững câu hỏi về mã nguồn mở mà chúng tôi thực sự nhận được.
- Engine này thực sự giống noplag.com không?
- Đúng. Dockerfile trong repo đóng gói container chúng tôi triển khai. Mỗi lần kiểm tra ở noplag.com chạy commit đó, và commit hash trả về ở header X-Engine-Commit để quý vị gắn kiểm tra với một release có tag. Cloud chỉ thêm corpus và web-search API key — không có thuật toán khác.
- Vì sao Apache 2.0, không phải AGPL hoặc BSL?
- Apache 2.0 cho phép tổ chức tự triển khai mà không phải rà soát pháp lý phức tạp. AGPL sẽ buộc chúng tôi dùng giấy phép như rào chắn, điều đó đi ngược định hướng — chúng tôi muốn kiểm toán viên, forkers thực sự sử dụng mã. Phần bảo vệ là corpus và tầng vận hành, không phải thuật toán.
- Tôi có thể tự triển khai mà không dùng cloud không?
- Có. Sao chép repo, chạy `docker compose up`, tự cung cấp Postgres + Redis, và nhập manifest corpus công khai (OpenAlex + Common Crawl + Wikipedia). Các adapter Layer W có thể cắm thêm — thêm khóa API Google/Brave của bạn, hoặc bỏ qua Layer W nếu chỉ cần so khớp với corpus đã lập chỉ mục.
- Noplag Database (tài liệu nộp lên) có mở không?
- Không. Noplag Database chứa tài liệu nộp của người dùng và chỉ ở tầng cloud — phát hành Apache-2.0 tài liệu của người khác rõ ràng sai. Tài liệu được thêm vào mặc định; quý vị có thể tắt. Mã engine truy vấn dữ liệu là mở; dữ liệu thì không.
- Còn detector AI thì sao — cái đó mở không?
- Có. Phát hiện AI sẽ sớm ra mắt — nằm trong lộ trình v1.2, chưa có khi khởi chạy — và cũng sẽ được phát hành dưới dạng mã nguồn mở như các thành phần khác: wiring mô hình perplexity, hiệu chỉnh, điều chỉnh thiên lệch ESL và các dải kết quả đều nằm trong src/noplag_engine/ai_detection/. Trọng số mô hình cũng là mã nguồn mở (Qwen 2.5 1.5B 4-bit cho tầng CPU, tùy chọn Mistral 7B cho tầng GPU). Không có bộ phát hiện bên thứ ba đóng mã trong call graph.
- Tôi báo lỗi thuật toán so khớp bằng cách nào?
- Mở issue công khai trên GitHub với tài liệu tái lập đơn giản (hoặc mô tả đoạn false-positive). Chúng tôi phân loại lỗi công khai. Vấn đề bảo mật gửi về security@noplag.com.
- Cloud có luôn dùng cùng thuật toán với repo không?
- Có, theo chính sách. Nếu cần triển khai hành vi chỉ trên đám mây cho thử nghiệm, sẽ đặt sau feature flag với mặc định mã nguồn mở; thuật toán chính vẫn nằm ở main. Nếu vi phạm điều đó, bạn sẽ thấy trong response header và ghi chú phát hành công khai.
- Mô hình đóng góp hoạt động thế nào?
- Chào đón issue và PR nhỏ. Thay đổi lớn — retrieval layer mới, adapter corpus mới, thêm ngôn ngữ — mở issue RFC trước để kiến trúc được bàn công khai. Không nhận PR thêm phụ thuộc đóng, gửi telemetry, hay khoá nhà cung cấp.
- Có self-host dạng dịch vụ không? (Triển khai Apache 2.0 được quản lý)
- Chưa có. Gói Enterprise trên cloud có hạ tầng riêng và BYO-corpus, đáp ứng phần lớn nhu cầu ấy. Dạng managed self-host nằm trong lộ trình v1.2.
- Ảnh hưởng đến giá như thế nào?
- Không ảnh hưởng gì. Cloud tính theo dung lượng corpus + tầng vận hành (Hetzner + Coolify + Stripe + Lago + chi phí API web-search), không tính engine. Tự triển khai miễn phí. Cả hai sẽ giữ nguyên vậy.
Đọc thuật toán. Sau đó tự chạy nó.
github.com/NoplagLabs/noplag-engine sử dụng Apache 2.0. Dịch vụ đám mây tại noplag.com chạy cùng một commit. Dù chọn cách nào, bạn cũng dùng cùng một engine — hãy chọn phương án phù hợp với phạm vi dữ liệu của bạn.