Open-source plagiaatcontrole.
Het enige plagiaatdetectieproduct met een productiecloudlaag en een volledig open-source engine. Dezelfde code die draait op noplag.com staat op GitHub via github.com/NoplagLabs/noplag-engine — controleer, fork of self-host het.
Zelfde commit als bij noplag.com is de commit op GitHub.
Geen ‘open-source-achtig’ compromis. Geen repo met alleen een SDK terwijl de engine gesloten blijft. De chunker, fingerprinter, retrieval cascade en rapportgenerator zitten allemaal in dezelfde Apache 2.0-repo die onze productiecontainer bouwt.
De plagiaatdetectie-engine achter noplag.com — chunking, winnowing fingerprints, retrieval-laag, alignment en rapportage. Apache 2.0.
- TAAL
- Python · Rust
- LICENTIE
- Apache 2.0
- CONTRIBUTOREN
- 38
- COMMITS
- 2.847
- LAATSTE RELEASE
- v0.4.2 · 3 dagen geleden
- CI
- passing · 412 tests
Gesloten bron was een fout, geen feature.
Elke plagiaatchecker voor ons vroeg u een black box te vertrouwen. Vertrouw op de score. Vertrouw de methodiek die u niet kunt zien. Vertrouw dat het algoritme niet op uw schrijfstijl is getuned. Wij kozen het tegenovergestelde.
Wat u niet kunt zien, kunt u niet vertrouwen
Een similariteitsscore is een getal zonder herkomst. Was het een zin-overlap, een parafrase-inschatting, een AI-detectorhallucinatie? Is uw ESL-schrijfstijl meegenomen? Gesloten checkers zeggen het niet — hun voordeel ís dat u het niet kunt vragen. Wij accepteren dat niet als prijs voor plagiaatdetectie.
Open-source product, geen open-source marketing
De Apache 2.0-repository op github.com/NoplagLabs/noplag-engine is geen uitgeklede client-SDK waarbij het matching-algoritme gesloten blijft. De chunker, winnowing-fingerprinter, retrieval-cascade, alignering, deduplicatie en rapportopbouw zitten allemaal in dezelfde Docker-container als op noplag.com. De cloudlaag voegt het corpus en de webzoekadapters toe, niet de engine.
Wat dat voor u betekent
Lees het algoritme voor u de score vertrouwt. Self-host de engine als uw documenten niet de deur uit mogen. Fork als onze roadmap niet aansluit. Bekijk hoe chunk-intervals tot een similarity-getal samenkomen — en spreek ons publiek tegen als u een bug vindt.
Retrieval-cascade met vier lagen. Diagram, geen metafoor.
Elke laag beperkt de kandidaten met een trade-off tussen kosten en nauwkeurigheid. Elke laag staat in de open repo. De cloud voegt het corpus en de web-search adapters toe.
Winnowing fingerprints
GIN-geïndexeerde 64-bit overlap op bigint[]-kolommen in Postgres. Filtert miljarden chuncks tot top-K in O(log n) per query.
MinHash LSH — v1.1 roadmap
Benadering van Jaccard voor parafrases en licht aangepaste kopieën, om te vinden wat L1 mist na echt herschrijven. Ontworpen, nog niet geïmplementeerd — staat niet in de publieke repository.
Sentence embeddings — v1.2 roadmap
Meertalige SBERT-vectoren met pgvector ANN, voor semantisch gelijke herschrijvingen en kopiëren tussen talen. Ontworpen, nog niet geïmplementeerd — staat niet in de publieke repository.
Live web-verificatie
Google- en Brave-adapters zoeken top-N kandidaten in real time op het live web. Draait in de cloudlaag voor betaalde abonnementen; de adapters maken geen deel uit van het open-sourcepakket.
noplag.toml.Wat daadwerkelijk in de repo zit.
Geen SDK-wrapper. Geen uitgeklede client. Het detectie-algoritme volledig — zelfde packagestructuur als onze productiecontainer.
- src/noplag_engine/het pakket
- chunking/zin- en sliding-window-chunkers
- fingerprinting/winnowing 64-bit hashes
- retrieval/L1 nu; L2 / L3 / LW nog niet in dit pakket
- l1_winnowing.pyGIN-overlap top-K
- fingerprint_df.pydocumentfrequentiestatistieken
- stop_list.pyfilter voor niet-discriminatieve fingerprints
- alignment/seed-and-extend-intervalsamenvoeging
- workflows/Tijdgestuurde check-pijplijn
- api/FastAPI HTTP-interface
- reports/highlight-samenstelling + PDF-export
- tests/412 tests · pytest + property-based + integratie
- migrations/Alembic-schema-migraties
- Dockerfiledezelfde image als productie
- docker-compose.ymlsnelle zelf-host startgids
- LICENSEApache 2.0
- README.mdarchitectuur + snelle start
- 12.4kGitHub-sterren
- 38contributors
- 2.847commits
- 412tests in CI
- 1:1cloud / repo pariteit
Drie dingen die een gesloten checker u niet laat controleren.
Gesloten checkers leveren een getal. De grens tussen ‘plagiaat’ en parafrase, de weging n-gram-overlap / semantiek, hoe korte matches afvallen — allemaal achter gesloten code. Niet te reproduceren, niet te auditen, bugs zonder referentiecommit.
Wat u wel kunt verifieren: elke drempel, elke weging, elke dedupe-regel leeft in src/noplag_engine/. Open een getagde release op GitHub, vind de commit die bij uw check hoort (X-Engine-Commit header), en lees de berekening regel voor regel.
Waar ging uw document na inzenden heen? Werd het opgeslagen? In een gedeelde DB geplaatst? Naar een externe AI-detector gestuurd? Gesloten checkers noemen het in marketing, niet in code.
Wat u kunt verifieren: package workflows/ toont alle plekken waar een inzending wordt gelezen, gehasht, opgeslagen, verwijderd. De map migrations/ toont elke kolom. Package api/ laat zien wat het netwerk uitgaat — en waar u het kunt aanpassen.
Een black-box ‘63% gelijk’ is een oordeel zonder herkomst. Was het door 12 fragmenten? Of een lange paragraaf? Een retrieval-fout? Krijgt uw ESL-stijl een andere weging? Het getal komt, de logica niet.
Wat u kunt verifieren: alignment/ toont het seed-and-extend samensmelten van intervallen. reports/ toont hoe per-chunk-matches in de percentage uitvallen. U kunt hetzelfde document, op dezelfde commit, natesten, elke interval inzien, en publiek beargumenteren.
Twee manieren om dezelfde engine te draaien.
De meeste gebruikers kiezen voor de cloudlaag op noplag.com — beheerde Postgres + Temporal + Coolify, het corpus is al geïndexeerd en de webzoek-adapters zijn voorzien van geldige API-sleutels. De self-host-optie is bedoeld voor organisaties waarvan documenten het eigen netwerk niet mogen verlaten: kloon de repo, gebruik eigen Postgres en Redis, wijs de engine naar het eigen corpus (of importeer OpenAlex + Common Crawl via onze manifest), en koppel eigen Google/Brave-sleutels. Zelfde engine, zelfde algoritmes, zelfde rapportvorm — alleen de operationele grens verschuift.
Lees de self-host-gidsDe open-sourcevragen die wij daadwerkelijk krijgen.
- Is de engine daadwerkelijk dezelfde code als noplag.com?
- Ja. De Dockerfile in de repo bouwt het containerimage dat we uitrollen. Elke check bij noplag.com draait die commit; de commit-hash verschijnt in de X-Engine-Commit response header zodat u een check aan een release kunt koppelen. De cloudlaag voegt het corpus en de web-search API-sleutels toe — geen ander algoritme.
- Waarom Apache 2.0 en geen AGPL of BSL?
- Apache 2.0 stelt organisaties in staat zelf te hosten zonder juridische ballast. AGPL zou leiden tot license-as-moat, en dat past niet bij de wedenschap: we willen juist dat auditors en forkers het gebruiken. Wat beschermt, is het corpus en de operationele laag; niet het algoritme.
- Kan ik volledig self-hosten zonder cloud-laag?
- Ja. Kloon de repo, voer `docker compose up` uit, gebruik eigen Postgres + Redis en importeer het public-corpus manifest (OpenAlex + Common Crawl + Wikipedia). De Layer-W-adapters zijn verwisselbaar — voeg eigen Google/Brave API-sleutels toe, of sla Layer W over als alleen matching op geïndexeerd corpus nodig is.
- Is de Noplag Database (ingediende gebruikersdocumenten) open?
- Nee. Noplag Database bevat gebruikersinzendingen en blijft op cloud — Apache 2.0 op andermans documenten zou fout zijn. Documenten worden standaard toegevoegd; u kunt dat uitzetten. De enginecode die het benadert is open; de data niet.
- Komt de AI-detector ook open?
- Ja. AI-detectie komt binnenkort — staat op de v1.2-roadmap, niet direct bij lancering — en wordt net als de rest open-source geleverd: de perplexity-modelkoppeling, de calibratie, de ESL-biascorrectie en de verdictbands zijn allemaal te vinden in src/noplag_engine/ai_detection/. De modelgewichten zelf zijn open-source (Qwen 2.5 1.5B 4-bit op het CPU-niveau, optioneel Mistral 7B op het GPU-niveau). Geen gesloten detector van derden in de call graph.
- Hoe meld ik een bug in het matching-algoritme?
- Open een publiek GitHub-issue met een minimal-reproducer (of omschrijf de false-positive interval). We triageren open. Security-issues naar security@noplag.com eerst.
- Zal de cloud altijd hetzelfde algoritme als de repo gebruiken?
- Ja, volgens beleid. Als we ooit cloud-only functionaliteit voor een experiment zouden moeten leveren, gebeurt dat achter een feature flag met een open-source standaard; het hoofdalgoritme blijft in main. Als we daarvan afwijken, zie je dat in de response header en in de openbare releasenotes.
- Wat is het contributiemodel?
- Issues en kleine PRs zijn welkom. Hebt u iets groots — nieuwe laag, corpusadapter, nieuwe taal? Start een RFC-issue zodat architectuuroverleg openbaar gebeurt. We accepteren geen PRs met gesloten dependencies, phone-home-telemetrie of vendor lock-in.
- Is er een hosted self-host? (Managed Apache 2.0-deployment)
- Nog niet. Het Enterprise cloud-abonnement biedt dedicated infrastructuur en BYO-corpus, wat de meeste vragen afvangt. Een managed-self-host staat voor v1.2 op de roadmap.
- Wat betekent dit voor de prijs?
- Niets. Cloud wordt geprijsd op corpus + operationeel (Hetzner + Coolify + Stripe + Lago + web-search API-kosten), niet engine-licentie. Self-host is gratis. Beide blijven zo.
Lees het algoritme. Draai het zelf.
github.com/NoplagLabs/noplag-engine is Apache 2.0. De cloud op noplag.com draait op exact dezelfde commit. Beide opties leveren dezelfde engine — kies de operationele grens die past bij jouw data.