v0.4.2Gamybinės kopijos leidimas — tas pats commit kaip noplag.com šiandien

Atvirojo kodo plagijavimo tikrinimo įrankis.

Vienintelis plagijavimo tikrinimo produktas su gamybine debesijos pakopa ir visiškai atviro kodo varikliu. Tas pats kodas, kuris veikia noplag.com, yra GitHub adresu github.com/NoplagLabs/noplag-engine — galite jį peržiūrėti, išsišakoti, diegti savo infrastruktūroje.

github.com/NoplagLabs/noplag-engineApache 2.012 400 žvaigždučių
REPOZITORIJA

Tas pats commit, kurį tikrinate noplag.com, yra GitHub'e.

Jokių „atvirojo kodo“ dviprasmybių. Jokių tik SDK saugyklų, kai variklis lieka uždaro kodo. „Chunker“, „fingerprinter“, paieškos kaskada ir ataskaitų generatorius yra tame pačiame Apache 2.0 saugykloje, kuri naudojama mūsų gamybiniam konteineriui kurti.

noplag/engineVieša
Žymėti žvaigždute12,4 tūkst.Fork'inti892

Plagiato aptikimo variklis, naudojamas noplag.com — chunkinimas, winnowing pirštų atspaudai, retrieval kaskada, sulyginimas, ataskaitų sudarymas. Apache 2.0.

KALBA
Python · Rust
LICENCIJA
Apache 2.0
DALYVIAI
38
KOMITAI
2 847
NAUJAUSIAS LEIDIMAS
v0.4.2 · prieš 3 dienas
CI
praeita · 412 testų
PRIELAIDA

Uždaro kodo buvo trūkumas, ne privalumas.

Iki mūsų visos plagiato tikrinimo sistemos prašė pasitikėti juodu dėžute. Pasitikėti skaičiumi. Pasitikėti metodika, kurios nematote. Pasitikėti, kad algoritmas nebuvo sureguliuotas per daug žymėti jūsų rašymo stilių. Pasirinkome priešingą kelią.

01

Ko nematote, tuo nepasitikite

Panašumo skaičius — tai tik skaičius be aiškaus pagrindo. Ar tai buvo sakinio dubliavimas, parafrazė, AI-detektoriaus klaida? Ar buvo atsižvelgta į jūsų ESL rašymo stilių? Uždaro kodo tikrintojai to neatskleidžia — jų privalumas IR YRA, kad negalite klausti. Mes nesutinkame, kad tai būtų plagiato tikrinimo kaina.

02

Atvirojo kodo produktas, o ne atvirojo kodo rinkodara

Apache 2.0 saugykla github.com/NoplagLabs/noplag-engine nėra supaprastintas kliento SDK, kur tikrinimo algoritmas paslėptas už uždaro kodo. Segmentavimas, winnowing pirštų atspaudų kūrimas, paieškos kaskada, sulyginimas, dublikatų šalinimas ir ataskaitų generavimas — visa tai sudaro tą patį Docker konteinerį, kuris veikia noplag.com. Debesijos pakopa prideda korpusą ir žiniatinklio paieškos adapterius, bet ne variklį.

03

Ką tai reiškia jums

Perskaitykite algoritmą prieš pasitikėdami rezultatu. Diekite variklį savo infrastruktūroje, jei dokumentai negali jos palikti. Fork'inkite, jei mūsų kelias skiriasi nuo jūsų. Audituokite, kaip chunk lygio intervalai virsta panašumo skaičiumi — ir viešai nesutikite GitHub issue, jei radote klaidą.

ARCHITEKTŪRA

Keturių lygių retrieval kaskada. Diagrama, ne metafora.

Kiekvienas sluoksnis mažina kandidatų kiekį nuo pigiausio iki brangiausio tikslumo etapo. Visi sluoksniai atviri repo. Debesis prideda korpusą + paieškos adapterius.

L1ATVIRA

Winnowing pirštų atspaudai

GIN-indeksuotas 64-bitų sutapimas per bigint[] stulpelius Postgres. Filtruoja milijardus chunk'ų iki top-K per O(log n) užklausą.

delsa~12ms / chunk
kurengine/retrieval/l1_winnowing.py
L2ATVIRA

MinHash LSH — v1.1 planas

Apytikslis Jaccard rodiklis aptinka parafrazuotas ir šiek tiek pakeistas kopijas, kad būtų galima rasti tai, ko L1 neaptinka po tikro perrašymo. Sukurta, bet dar neįgyvendinta — viešoje saugykloje nėra.

delsav1.1
kurdar nėra viešoje saugykloje
L3ATVIRA

Sakinio įterpiniai — v1.2 planas

Daugiakalbiai SBERT vektoriai su pgvector ANN semantiškai lygiaverčiams perrašymams ir kopijavimui tarp kalbų. Sukurta, bet dar neįgyvendinta — viešoje saugykloje nėra.

delsav1.2
kurdar nėra viešoje saugykloje
LWATVIRA

Tikrinimas su gyvu žiniatinkliu

Google ir Brave adapteriai realiu laiku tikrina geriausius N kandidatus internete. Veikia debesijos plane mokantiems naudotojams; adapteriai nėra atvirojo kodo paketo dalis.

delsa~2.2s / dok.
kurdebesijos pakopa — viešoje saugykloje nėra
v1.0 apima L1 + LW. L2 — v1.1. L3 — v1.2. Kaskados tvarka keičiama noplag.toml.
ATVIRAS BRANDUOLYS

Kas iš tikrųjų yra repozitorijoje.

Ne SDK apvalkalas. Ne apkarpytas klientas. Visas tikrinimo algoritmas — tokia pati struktūra kaip gamybiniame konteineryje.

engine/main
  • src/noplag_engine/paketas
  • chunking/sakinyje + slenkanti lango chunk'eriavimas
  • fingerprinting/winnowing 64 bitų hash'ai
  • retrieval/Šiuo metu L1; L2 / L3 / LW šiame pakete dar nėra
  • l1_winnowing.pyGIN-overlap top-K
  • fingerprint_df.pydokumentų dažnio statistika
  • stop_list.pynediskriminuojančių pirštų atspaudų filtras
  • alignment/seed-and-extend intervalų sujungimas
  • workflows/Temporal pagrindu orkestruota tikrinimo seka
  • api/FastAPI HTTP sąsaja
  • reports/paryškinimo surinkimas + PDF eksportas
  • tests/412 testų · pytest + property + integraciniai
  • migrations/Alembic schemos migracijos
  • Dockerfiletaip pat kaip gamybinis įvaizdis
  • docker-compose.ymlsavavaldžio diegimo greitoji pradžia
  • LICENSEApache 2.0
  • README.mdarchitektūra + greitoji pradžia
KAS ATVIRA
Chunkinimas + pirštų atspaudaivisi algoritmai, visi slenksčiai
L1 / L2 / L3 retrievalskoringas + indeksavimo logika
Gyvo žiniatinklio adapteriairate-limitas + parsingas + reitingas
Sulyginimasseed-and-extend, intervalų jungimas, deduplikuojama
Ataskaitų formavimasparyškinimai, panašumo skaičiavimas
HTTP API + schemosPydantic modeliai, FastAPI maršrutai
KAS TIK DEBESYJE
KorpusasOpenAlex + Common Crawl + Noplag Database (150M+ dok.)
Paieškos API raktaiGoogle ir Brave; savarankiškai pasirūpinkite raktiniais duomenimis savarankiškai diegiant.
Apmokėjimai + autentikacijaStripe + Better Auth; galima keisti diegiant patiems
Tvarkoma Postgres + TemporalHetzner + Coolify infrastruktūra
  • 12,4 tūkst.GitHub žvaigždžių
  • 38dalyvių
  • 2 847komitų
  • 412testų CI
  • 1:1debesis / repo atitikimas
AUDITO TAKAS

Trys dalykai, kurių uždaro kodo tikrintojas neleis jums patikrinti.

01 · ALGORITMAS

Uždari tikrintojai grąžina tik skaičių. Kur riba tarp „plagiato ir parafrazės“, kaip vertinamas n-gramų sutapimas ar semantinis panašumas, kaip atmetami trumpi atitikmenys — viskas lieka paslėpta. Negalite atkurti, auditorius negali peržiūrėti, o klaidos atveju nėra reference commit'o.

Ką galite patikrinti: visi slenksčiai, visi svoriai, visos deduplikacijos taisyklės yra src/noplag_engine/. Atverkite pažymėtą leidimą GitHub'e, raskite commit'ą, ant kurio buvo atliktas jūsų tikrinimas (nurodytas X-Engine-Commit antraštėje), ir peržiūrėkite matematiką eilute po eilutės.

02 · DUOMENŲ SRAUTAS

Kur nukeliavo jūsų dokumentas po pateikimo? Buvo išsaugotas? Įkeltas į bendrą duomenų bazę, prieinamą kitam klientui? Nusiųstas trečiajai šaliai AI-detektoriui? Uždaro kodo tikrintojai atsako rinkodaros tekstais. Kodo kelio parodyti negali.

Ką galite patikrinti: workflows/ paketas rodo visas vietas, kur įvyksta įkėlimas, hash'inimas, saugojimas ir ištrynimas. migrations/ kataloge matysite visas liečiamas stulpelius. api/ rodo, kas išeina per tinklą — ir kur galima keisti ribą fork'e.

03 · PANAŠUMO SKAIČIUS

Juodos dėžės „63 % panašumo“ yra nuosprendis be pagrindo. Ar 63 % — dėl 12 trumpų fragmentų? Vienos pastraipos? Retrieval klaidos? Ar jūsų ESL rašymo stilius įvertinamas kitaip? Skaičius gaunate, bet matematikos, kuri jį pagamino, — ne.

Ką galite patikrinti: alignment/ rodo intervalų jungimą seed-and-extend metodu. reports/ parodo, kaip atskiri atitikmenys susumojami į bendrą procentą. Galite iš naujo paleisti tą patį dokumentą ant to paties commit'o, apžiūrėti kiekvieną intervalą, nesutikti su skaičiavimu viešame GitHub issue.

DEBESIS ar SAVARANKIŠKAS DIEGIMAS

Du būdai paleisti tą patį variklį.

Dauguma naudotojų renkasi debesijos planą noplag.com — valdomas Postgres, Temporal ir Coolify, korpusas jau indeksuotas, o žiniatinklio paieškos adapteriai turi galiojančius API raktus. Savarankiškas diegimas skirtas organizacijoms, kurių dokumentai negali palikti jų infrastruktūros: nukopijuokite repozitoriją, naudokite savo Postgres ir Redis, nurodykite varikliui savo korpusą (arba importuokite OpenAlex ir Common Crawl iš mūsų manifesto), prijunkite savo Google/Brave raktus. Tas pats variklis, tie patys algoritmai, ta pati ataskaitos struktūra — keičiasi tik veikimo riba.

Perskaitykite savarankiško diegimo instrukciją
DUK

Klausimai apie atvirąjį kodą, kuriuos iš tikrųjų gauname.

Ar variklis tikrai toks pat kaip noplag.com?
Taip. Repo Dockerfile surenka konteinerį, kurį ir paleidžiame. Kiekvienas tikrinimas noplag.com paleidžiamas ant to commit'o, o commit'o hash grįžta X-Engine-Commit antraštėje, kad galėtumėte prisegti tikrinimą prie žymėto leidimo. Debesis prideda korpusą ir paieškos raktus — algoritmas nesiskiria.
Kodėl Apache 2.0, o ne AGPL ar BSL?
Apache 2.0 leidžia organizacijoms diegtis patiems be teisinės rizikos. AGPL verstų mus naudoti licenciją-kaip-užtvarą strategiją, o tai prieštarauja mūsų požiūriui — norime, kad auditoriai ir fork'intojai iš tikrųjų naudotų šį kodą. Svarbiausia saugoma dalis — korpusas ir operacinis lygmuo, ne algoritmas.
Ar galima įsidiegti visiškai be debesies paslaugos?
Taip. Nukopijuokite repozitoriją, paleiskite `docker compose up`, naudokite savo Postgres ir Redis, importuokite viešojo korpuso manifestą (OpenAlex, Common Crawl, Wikipedia). Layer-W adapteriai yra keičiami — galite įdėti savo Google/Brave API raktus arba visai nenaudoti Layer W, jei reikia tik indeksuoto korpuso atitikmenų.
Ar Noplag Database (pateikti naudotojų dokumentai) atviri?
Ne. Noplag Database sudaro naudotojų įkelti dokumentai, jie lieka tik debesies sluoksnyje — Apache-2.0'inti kitų žmonių tekstus būtų tiesiog neteisinga. Įkėlus dokumentai pagal nutylėjimą įtraukiami, galima atsisakyti. Variklio kodas, kuris juos pasiekia, yra atviras; duomenys — ne.
O kaip AI detektorius — irgi bus atviras?
Taip. AI aptikimas bus netrukus — jis numatytas v1.2 veiksmų plane, bet paleidimo metu dar neveiks — ir bus pateikiamas atvirai kaip ir visa kita: sudėtingumo modelio sujungimas, kalibravimas, ESL šališkumo korekcija ir sprendimo ribos bus src/noplag_engine/ai_detection/ kataloge. Pačių modelių svoriai yra atvirojo kodo (Qwen 2.5 1.5B 4-bit CPU sluoksnyje, pasirinktinai Mistral 7B GPU sluoksnyje). Jokio uždaro trečiųjų šalių detektoriaus kvietimų grandinėje.
Kaip pranešti apie bug'ą tikrinimo algoritme?
Atviras GitHub issue su minimaliai atkuriamu dokumentu (arba aprašykite klaidingą atitikmenį). Triage vyksta viešai. Saugumo nesklandumams — security@noplag.com.
Ar debesies paslauga visada veiks su tokiu pat algoritmu kaip repo?
Taip, pagal politiką. Jei kada nors reikėtų įdiegti tik debesijai skirtą funkcionalumą eksperimentui, jis būtų už funkcijos žymos su atvirojo kodo numatytąja reikšme; pagrindinis algoritmas liktų pagrindinėje šakoje. Jei to nesilaikytume, tai matytumėte atsakymo antraštėje ir viešuose leidimo užrašuose.
Kokia prisidėjimo tvarka?
Issue ir smulkūs PR laukiami. Didesniems pakeitimams — nauji retrieval sluoksniai, korpuso adapteriai, naujos kalbos — pradėkite nuo RFC issue, kad architektūros diskusija būtų vieša. PR su uždaro kodo priklausomybėmis, telemetrija ar vendor lock-in nepriimami.
Ar yra priglobtas savarankiškas diegimas? (Valdomas Apache 2.0 diegimas)
Kol kas ne. Įmonių planas debesyje siūlo dedikuotą infrastruktūrą ir BYO korpusą, tai atitinka dažniausius klausimus. Pilnai valdomas diegimas roadmap'e v1.2.
Kaip tai įtakoja kainodarą?
Nedaro. Debesies paslauga apmokestinama už korpusą + veiklos kaštus (Hetzner + Coolify + Stripe + Lago + paieškos API išlaidos), ne už variklio licenciją. Savarankiškas diegimas — nemokamai. Abu taip ir liks.

Perskaitykite algoritmą. Paleiskite patys.

github.com/NoplagLabs/noplag-engine yra Apache 2.0 licencijuotas. Debesijos versija noplag.com naudoja tą patį commit. Abu variantai suteikia tą patį variklį — pasirinkite veiklos ribas pagal savo duomenis.

Atvirojo kodo plagijavimo tikrinimo įrankis — Apache 2.0 variklis — Noplag