Verificator de plagiat open-source.
Singurul produs de detectare a plagiatului cu un nivel cloud de producție și un motor complet open source. Același cod care rulează pe noplag.com este disponibil pe GitHub la github.com/NoplagLabs/noplag-engine — poate fi auditat, bifurcat sau instalat pe infrastructura proprie.
Același commit pe care îl verificați pe noplag.com este commit-ul de pe GitHub.
Fără ambiguități de tip „aproape open-source”. Fără repo doar cu SDK și motorul cu cod închis. Chunker-ul, fingerprinter-ul, sistemul de recuperare și generatorul de rapoarte sunt toate în același repo Apache 2.0 care construiește containerul nostru de producție.
Motorul de detectare a plagiatului care stă la baza noplag.com — chunking, amprente winnowing, cascada de extragere, aliniere și asamblare raport. Apache 2.0.
- LIMBAJ
- Python · Rust
- LICENȚĂ
- Apache 2.0
- CONTRIBUITORI
- 38
- COMMITS
- 2.847
- ULTIMA VERSIUNE
- v0.4.2 · 3 zile în urmă
- CI
- passing · 412 teste
Codul închis a fost o greșeală, nu un avantaj.
Fiecare verificator de plagiat înaintea noastră v-a cerut să aveți încredere într-o cutie neagră. Încredere în scor. Încredere în o metodologie invizibilă. Încredere că algoritmul nu a fost adaptat să supra-depisteze stilul dumneavoastră. Noi am mers pe opus.
Ce nu puteți vedea, nu puteți verifica
Un scor de similaritate este doar o cifră fără sursă. A fost o potrivire pe fraze, o presupunere de parafrază, o halucinație AI-detector? S-a calibrat pentru scrisul ESL? Soluțiile închise nu spun — avantajul lor este că nu puteți întreba. Nu acceptăm asta ca preț pentru detectarea plagiatului.
Produs open-source, nu doar marketing open-source
Repo-ul Apache 2.0 de la github.com/NoplagLabs/noplag-engine nu este un SDK client limitat, cu algoritmul de potrivire ascuns. Chunker-ul, amprenta winnowing, cascada de recuperare, alinierea, deduplicarea și generarea raportului construiesc același container Docker care rulează pe noplag.com. Nivelul cloud adaugă corpusul și adaptoarele de căutare web, nu motorul.
Ce înseamnă asta pentru dumneavoastră
Citiți algoritmul înainte să aveți încredere în scor. Găzduiți-vă motorul dacă documentele nu pot părăsi infrastructura. Fork-uiti dacă direcția noastră diverge de a dumneavoastră. Auditați modul cum intervalele la nivel de chunk devin un scor — și reacționați cu un bug public dacă găsiți o problemă.
Cascadă de extragere în patru straturi. Diagramă, nu metaforă.
Fiecare strat reduce setul de candidați cu un compromis rapiditate/acuratețe. Fiecare strat e în repo-ul deschis. Nivelul cloud adaugă corpusul + adaptoarele web-search.
Amprente winnowing
Overlap GIN indexat pe 64 de biți pe coloane bigint[] în Postgres. Filtrează miliarde de chunk-uri la top-K în O(log n) per interogare.
MinHash LSH — planificare v1.1
Jaccard aproximativ pentru copii parafrazate sau ușor modificate, pentru a detecta ce scapă L1 după reformulări reale. Proiectat, dar încă neimplementat — nu se află în repo-ul public.
Sentence embeddings — planificare v1.2
Vectori SBERT multilingvi cu pgvector ANN, pentru rescrieri semantic echivalente și copiere între limbi. Proiectat, dar încă neimplementat — nu se află în repo-ul public.
Verificare web live
Adaptoarele Google + Brave verifică în timp real candidații de top-N pe web-ul actual. Disponibil doar în varianta cloud pentru abonamente plătite; adaptoarele nu sunt incluse în pachetul open source.
noplag.toml.Ce e efectiv în repo.
Nu doar un wrapper SDK. Nu doar un client limitat. Algoritmul complet — același pachet care creează containerul nostru de producție.
- src/noplag_engine/pachetul
- chunking/chunk-er pe propoziție + sliding-window
- fingerprinting/amprente winnowing 64 biți
- retrieval/L1 disponibil acum; L2 / L3 / LW nu sunt încă incluse în acest pachet
- l1_winnowing.pyGIN-overlap top-K
- fingerprint_df.pystatistici de frecvență a documentelor
- stop_list.pyfiltru de amprente nediscriminative
- alignment/fuzionare interval seed-and-extend
- workflows/pipeline de verificare orchestrat temporal
- api/Interfață HTTP FastAPI
- rapoarte/asamblare evidențiere + export PDF
- teste/412 teste · pytest + property + integrare
- migrări/migrări de schemă Alembic
- Dockerfileaceeași imagine ca în producție
- docker-compose.ymlghid rapid pentru self-host
- LICENSEApache 2.0
- README.mdarhitectură + ghid rapid
- 12,4kstele GitHub
- 38contributori
- 2.847commits
- 412teste în CI
- 1:1paritate cloud / repo
Trei lucruri pe care un verificator închis nu vă lasă să le verificați.
Soluțiile închise oferă un scor. Pragul pentru „plagiat vs parafrază”, ponderarea dintre overlap-ul n-gram și similaritatea semantică, modul de eliminare a fragmentelor scurte — toate ascunse. Nu-l puteți reproduce, auditorul nu poate verifica, iar un bug nu are commit de referință.
Ce puteți verifica: toate pragurile, toate ponderile, toate regulile de dedupe sunt în src/noplag_engine/. Deschideți o versiune etichetată pe GitHub, identificați exact commit-ul pe care a rulat verificarea (în header-ul X-Engine-Commit) și citiți calculul pas cu pas.
Unde a ajuns documentul după trimitere? S-a salvat? S-a adăugat într-o bază de date comună? S-a transmis către un furnizor AI pentru scor? Soluțiile închise pot răspunde în marketing. Codul sursă nu e public.
Ce puteți verifica: workflows/ arată orice punct unde o trimitere se citește, se hash-uiește, se salvează și se șterge. migrations/ arată toate coloanele folosite. api/ arată ce părăsește motorul pe rețea — și unde puteți muta limita la fork.
Un „63% similar” opac rămâne o decizie fără sursă. Sunt 63% din 12 fragmente scurte? Un paragraf lung? Meci ratat în extracție? Scrisul ESL e tratat altfel? Scorul apare, logica lipsește.
Ce puteți verifica: alignment/ expune logica seed-and-extend. reports/ arată cum potrivirile per-chunk colapsează în procentul total. Poate fi reluat același document pe același commit, vedeți fiecare interval și contestați calculul pe GitHub, public.
Două moduri de a rula același motor.
Majoritatea utilizatorilor aleg varianta cloud pe noplag.com — Postgres + Temporal + Coolify gestionate, corpusul deja indexat, adaptoarele de căutare web vin cu chei API valide. Varianta self-host este pentru organizațiile care nu pot transfera documentele în afara infrastructurii proprii: clonează repo-ul, folosește propriul Postgres și Redis, configurează engine-ul pe corpusul propriu (sau importă OpenAlex + Common Crawl din manifestul nostru) și adaugă propriile chei Google/Brave. Același engine, aceleași algoritmi, același format de raport — doar limita operațională se schimbă.
Ghid self-hostÎntrebările reale pe care le primim despre open-source.
- Chiar este motorul același cod ca noplag.com?
- Da. Dockerfile-ul din repo construiește imaginea container pe care o rulăm. Orice verificare pe noplag.com rulează acel commit, iar hash-ul commit se returnează în header-ul X-Engine-Commit ca să asociați un check cu o versiune etichetată. Nivelul cloud adaugă corpusul și cheile API web-search — nu alt algoritm.
- De ce Apache 2.0 și nu AGPL sau BSL?
- Apache 2.0 permite organizațiilor self-host fără bătăi de cap juridice. AGPL ar transforma licența într-o barieră, ceea ce e opusul pariului nostru — vrem ca auditori și fork-eri să poată folosi efectiv codul. Partea defensibilă e corpusul și operaționalul, nu algoritmul.
- Pot da self-host fără să folosesc cloud-ul?
- Da. Clonează repo-ul, rulează `docker compose up`, folosește propriul Postgres + Redis și importă manifestul corpusului public (OpenAlex + Common Crawl + Wikipedia). Adaptoarele Layer W sunt modulare — poți adăuga propriile chei API Google/Brave sau poți omite complet Layer W dacă ai nevoie doar de potrivire pe corpusul indexat.
- Este Noplag Database (documente user) deschis?
- Nu. Noplag Database conține trimiteri de useri și rămâne pe cloud — Apache-2.0 pe documente ale altora ar fi clar greșit. Documentele ajung implicit acolo; puteți opta să dezactivați. Codul engine care interoghează e deschis; datele nu.
- Ce se întâmplă cu detectorul AI — va fi open?
- Da. Detectarea AI va fi disponibilă în curând — este pe roadmap-ul v1.2, nu la lansare — și va fi publicată open-source ca restul: conectarea modelului de perplexitate, calibrarea, ajustarea pentru bias ESL și benzile de verdict vor fi în src/noplag_engine/ai_detection/. Greutățile modelelor sunt open-source (Qwen 2.5 1.5B 4-bit pe nivelul CPU, opțional Mistral 7B pe nivelul GPU). Nu există niciun detector terț cu cod închis în fluxul de apeluri.
- Cum raportez un bug în algoritmul de potrivire?
- Deschideți un GitHub public cu document minim-reproducător (sau descrieți intervalul fals-pozitiv). Trierea e publică. Problemele de securitate se trimit prima dată la security@noplag.com.
- Va rula întotdeauna cloud același algoritm ca repo-ul?
- Da, ca politică. Dacă ar fi nevoie să lansăm vreodată un comportament doar în cloud pentru un experiment, acesta ar fi controlat printr-un feature flag cu valoare implicită open-source; algoritmul principal rămâne în main. Dacă am încălca această regulă, ai vedea în headerul de răspuns și în notele publice de lansare.
- Care este modelul de contribuții?
- Issue-uri și PR-uri mici acceptate. Pentru schimbări mari — straturi noi de extracție, corpus adaptere, limbi noi — deschideți întâi un RFC pentru transparență arhitecturală. Nu acceptăm PR-uri ce adaugă dependențe închise, telemetrie, sau vendor lock-in.
- Există un self-host găzduit? (Managed Apache 2.0)
- Nu încă. Planul Enterprise din cloud oferă infrastructură dedicată și BYO-corpus, care acoperă nevoile pentru aceste cereri. Un SKU managed-self-host este pe roadmap v1.2.
- Ce impact are asta la preț?
- Nu are. Cloud-ul se tarifează pe corpus + cost operațional (Hetzner + Coolify + Stripe + Lago + web-search API), nu licență engine. Self-host e gratis. Ambele rămân așa.
Citiți algoritmul. Apoi rulați-l singuri.
github.com/NoplagLabs/noplag-engine este sub Apache 2.0. Cloud-ul de la noplag.com rulează același commit. Oricare opțiune oferă același engine — alege limita operațională potrivită pentru datele tale.