Açık kaynaklı intihal denetleyicisi.
Üretim bulut katmanına sahip ve tamamen açık kaynaklı bir motor sunan tek intihal tespit ürünü. noplag.com'da çalışan kodun aynısı GitHub'da github.com/NoplagLabs/noplag-engine adresinde mevcut — inceleyin, çatallayın, kendi sunucunuzda çalıştırın.
noplag.com'da kullandığınız commit, GitHub'da da aynı commit.
Açık kaynaklıymış gibi gösteren pazarlama yok. Motorun kapalı kodda tutulduğu sadece SDK içeren bir depo yok. Parçalayıcı, parmak izi oluşturucu, alma kademesi ve rapor birleştirici; hepsi üretim konteynerimizi oluşturan aynı Apache 2.0 deposunda yer alıyor.
noplag.com'u çalıştıran intihal tespit motoru — bölme, winnowing parmak izleri, alma kademesi, hizalama ve rapor derleme. Apache 2.0.
- DİL
- Python · Rust
- LİSANS
- Apache 2.0
- KATKIDA BULUNANLAR
- 38
- COMMIT
- 2.847
- SON SÜRÜM
- v0.4.2 · 3 gün önce
- CI
- geçti · 412 test
Kapalı kaynak bir hata, bir özellik değil.
Bizden önceki her intihal denetleyicisi güvenmeniz için bir kara kutu sundu. Skora güvenin. Detayını göremeyeceğiniz yönteme güvenin. Algoritmanın yazı stilinizi aşırı işaretlemeye göre ayarlanmadığına güvenin. Tam tersine oynadık.
Göremediğinize güvenemezsiniz
Benzerlik skoru ekli kanıtsız bir sayıdır. Cümle örtüşmesi mi, anlamca değişmiş tahmini mi, AI dedektörü uydurması mı? Yabancı dil yazı stilinize göre kalibre edildi mi? Kapalı denetleyiciler açıklamaz — çünkü avantajları soramayacak olmanızdır. Bunu intihal tespiti için gereken bir bedel olarak kabul etmiyoruz.
Açık kaynaklı ürün, açık kaynaklı pazarlama değil
github.com/NoplagLabs/noplag-engine adresindeki Apache 2.0 deposu, algoritması kapalı kaynakta kalan sadeleştirilmiş bir istemci SDK değildir. Parçalayıcı, winnowing parmak izi oluşturucu, alma kademesi, hizalama, yinelenenleri kaldırma ve rapor oluşturma işlemlerinin tamamı, noplag.com'da çalışan aynı Docker konteynerini oluşturur. Bulut katmanı, motora değil, korpus ve web arama adaptörlerini ekler.
Sizin için anlamı
Skora güvenmeden önce algoritmayı okuyun. Belgeleriniz ortamdan çıkamıyorsa motoru kendi altyapınızda çalıştırın. Yol haritamız sizinkinden ayrılırsa çatallayın. Parça seviyesinde aralıklar nasıl bir benzerlik skoruna dönüşüyor; bir hata bulursanız herkese açık bir issue açarak açıkça karşı çıkın.
Dört katmanlı alma kademesi. Diyagram, mecaz değil.
Her katman adayları düşükten yükseğe maliyet/doğruluk takasıyla daraltır. Tüm katmanlar açık depoda. Bulut, korpus ve web arama bağdaştırıcılarını ekler.
Winnowing parmak izleri
Postgres'te bigint[] sütunlarında GIN indeksli 64-bit örtüşme. Milyarlarca aday parçayı sorgu başına O(log n) ile en iyi K'ye indirir.
MinHash LSH — v1.1 yol haritası
Parafraz ve hafifçe değiştirilmiş kopyalar arasında yaklaşık Jaccard, gerçek yeniden yazımdan sonra L1'in kaçırdıklarını yakalamak için. Tasarlandı, henüz uygulanmadı — şu anda herkese açık depoda yok.
Cümle gömme — v1.2 yol haritası
Anlamsal olarak eşdeğer yeniden yazımlar ve diller arası kopyalama için çok dilli SBERT vektörleri ve pgvector ANN. Tasarlandı, henüz uygulanmadı — şu anda herkese açık depoda yok.
Canlı web doğrulama
Google + Brave adaptörleri, en iyi N adayı gerçek zamanlı olarak canlı web üzerinde doğrular. Ücretli planlarda bulut katmanında çalışır; adaptörler açık kaynak paketine dahil değildir.
noplag.toml dosyasında ayarlanabilir.Depoda gerçekten ne var.
Bir SDK sarmalayıcı değil. Kırpılmış bir istemci değil. Tespit algoritmasının tamamı — üretim kapsayıcımızı oluşturan paket yapısı aynı.
- src/noplag_engine/paket
- chunking/cümle + kayan pencere böleyiciler
- fingerprinting/winnowing 64-bit hash’ler
- retrieval/Şu anda L1; L2 / L3 / LW bu pakette henüz yok
- l1_winnowing.pyGIN-overlap top-K
- fingerprint_df.pydocument-frequency istatistikleri
- stop_list.pyayırıcı olmayan parmak izi filtresi
- alignment/seed-and-extend aralık birleştirme
- workflows/Zaman tabanlı orkestrasyonlu kontrol hattı
- api/FastAPI HTTP arayüzü
- raporlar/vurgulama oluşturma + PDF dışa aktarma
- testler/412 test · pytest + özellik + entegrasyon
- migrasyonlar/Alembic şema migrasyonları
- Dockerfileüretimle aynı imaj
- docker-compose.ymlself-host hızlı başlangıç
- LİSANSApache 2.0
- README.mdmimari + hızlı başlangıç
- 12.4kGitHub yıldızı
- 38katkıda bulunanlar
- 2.847commit
- 412CI’da test
- 1:1bulut / repo uyumu
Kapalı kaynak denetleyicinin size asla gösteremeyeceği üç şey.
Kapalı denetleyiciler size sadece skor sunar. "intihal vs. parafraz" eşiği, n-gram örtüşme ile anlamsal benzerlik arasındaki ağırlıklandırma, kısa eşleşmelerin elenme yöntemi — hepsi kapalı kodla. Yeniden üretilemez, denetçiniz gözden geçiremez, içindeki bug için sabit bir commit yoktur.
Doğrulayabileceğiniz: her eşik, her ağırlık, her yinelenen giderme kuralı src/noplag_engine/ altında. GitHub'dan etiketli bir sürümü açın, kontrolünüzde çalışan commit’i bulun (X-Engine-Commit başlığında döner) ve matematiği satır satır okuyun.
Belgeniz gönderildikten sonra nereye gitti? Saklandı mı? Başka bir müşterinin erişebileceği, paylaşılan gönderi DB’sine eklendi mi? Derecelendirme için üçüncü taraf bir AI dedektörüne yollandı mı? Kapalı denetleyiciler bunu pazarlama metniyle yanıtlar. Kod yolunu gösteremezler.
Doğrulayabileceğiniz: workflows/ paketi, bir gönderimin okunduğu, hash’lendiği, saklandığı ve silindiği tüm noktaları gösterir. migrations/ klasörü dokunduğu her sütunu gösterir. api/ paketi motordan ağ üzerinden ne çıktığını — ve çatalla sınırı nerede değiştirebileceğinizi gösterir.
Kara kutu bir “%63 benzer” gerekçesiz bir karardır. 12 kısa fragmanın toplamında mı %63? Bir uzun paragraf mı? Alma hatası mı? Yabancı dilde yazı sitiliniz farklı mı ağırlıklandı? Skor gelir ama üreten matematik gelmez.
Doğrulayabileceğiniz: alignment/ dosyasında seed-and-extend aralık birleştirmesi var. reports/ her parça eşleşmesinin genel yüzdeye nasıl dönüştüğünü gösterir. Aynı belgeyi aynı commit ile tekrar çalıştırabilirsiniz; her aralığı inceleyip, matematiğe herkese açık GitHub issue’sunda itiraz edebilirsiniz.
Aynı motoru çalıştırmanın iki yolu.
Çoğu kullanıcı noplag.com üzerindeki bulut katmanını seçer — yönetilen Postgres + Temporal + Coolify, korpus zaten indekslenmiş olur ve web arama adaptörleri geçerli API anahtarlarıyla gelir. Self-host seçeneği, dokümanlarının altyapı dışına çıkmaması gereken kurumlar içindir: repoyu klonlayın, kendi Postgres ve Redis’inizi kurun, motoru kendi korpusunuza yönlendirin (veya manifest dosyamızdan OpenAlex + Common Crawl’u içe aktarın), Google/Brave anahtarlarınızı entegre edin. Aynı motor, aynı algoritmalar, aynı rapor formatı — sadece operasyonel sınır değişir.
Kendi sunucu rehberini okuyunGerçekten aldığımız açık kaynak soruları.
- Motor gerçekten noplag.com’dakiyle aynı kod mu?
- Evet. Repoda bulunan Dockerfile, dağıttığımız kapsayıcıyı oluşturur. noplag.com’da yapılan her denetim o commit ile çalışır ve commit hash’i X-Engine-Commit başlığında döner; sürüme sabitlemek için kullanabilirsiniz. Bulut katmanı sadece korpus ve web arama API anahtarlarını ekler — algoritma farklı değil.
- Neden Apache 2.0, AGPL veya BSL değil?
- Apache 2.0, kuruluşların yasal denetim yükü olmadan kendi sunucularında çalıştırmasına izin verir. AGPL bizi savunmadan ziyade lisans bariyeri oyununa zorlar; bu, yaptığımız bahisle çelişir — denetçilerin ve çatallayanların bunu gerçekten kullanabilmesini istiyoruz. Savunulabilir olan korpus ve operasyon katmanı; algoritma değil.
- Bulut katmanını hiç kullanmadan kendi sunucumda çalıştırabilir miyim?
- Evet. Repoyu klonlayın, `docker compose up` komutunu çalıştırın, kendi Postgres + Redis’inizi kurun ve açık korpus manifestini (OpenAlex + Common Crawl + Wikipedia) içe aktarın. Layer-W adaptörleri tak-çıkar yapıdadır — kendi Google/Brave API anahtarlarınızı ekleyebilir veya sadece indeksli korpus eşleştirmesi gerekiyorsa Layer W’yi tamamen atlayabilirsiniz.
- Noplag Database (kullanıcıdan gelen belgeler) açık mı?
- Hayır. Noplag Database, kullanıcı gönderimlerini içerir ve bulut katmanında tutulur — başkalarının belgelerini Apache-2.0 ile açmak açıkça yanlış olurdu. Gönderilen belgeler varsayılan olarak eklenir; bunu kapatıp devre dışı bırakabilirsiniz. Onu sorgulayan motor kodu açıktır; veri açık değildir.
- AI dedektörü de açık olacak mı?
- Evet. Yapay zeka tespiti yakında geliyor — v1.2 yol haritasında, lansmanda aktif değil — ve diğer her şey gibi açık olarak sunulacak: karmaşıklık modeli bağlantısı, kalibrasyon, ESL-yanlılığı ayarı ve karar bantları src/noplag_engine/ai_detection/ dizininde yer alacak. Model ağırlıkları da açık kaynaklı (CPU katmanında Qwen 2.5 1.5B 4-bit, GPU katmanında isteğe bağlı Mistral 7B). Çağrı grafiğinde kapalı üçüncü taraf bir dedektör yok.
- Eşleşme algoritmasında bir hata nasıl raporlanır?
- GitHub’da herkese açık bir issue açın, kısa bir örnek belge (veya yanlış pozitif aralığı) ekleyin. Tüm süreç açıkta. Güvenlik açıklarını önce security@noplag.com adresine bildirin.
- Bulut katmanı her zaman repoyla aynı algoritmayı mı kullanacak?
- Politikamız gereği evet. Deneysel olarak sadece bulutta çalışan bir davranış sunmamız gerekirse, bu bir özellik bayrağı arkasında ve açık kaynaklı varsayılanla olur; temel algoritma ana dalda kalır. Bunu bozarsak, yanıt başlığında ve herkese açık sürüm notlarında görürsünüz.
- Katkı modeli nedir?
- Issue ve küçük PR’lara açığız. Büyük değişiklikler — yeni alma katmanları, yeni korpus bağdaştırıcıları, yeni diller — için önce bir RFC issue ile başlayın; mimari tartışma açık olsun. Kapalı kaynaklı bağımlılık, telemetri, vendor lock-in ekleyen PR’lar kabul edilmez.
- Barındırılan kendi sunucu (Yönetilen Apache 2.0 dağıtımı) var mı?
- Henüz yok. Bulut katmanında Enterprise planı özel altyapı ve BYO-korpus ile çoğu ihtiyacı kapsıyor. Yönetilen kendi sunucu sürümü v1.2 yol haritasında.
- Bu fiyatlandırmayı nasıl etkiler?
- Etkilemez. Bulut katmanı korpus + operasyon maliyetiyle fiyatlandırılır (Hetzner + Coolify + Stripe + Lago + web arama API harcaması), motor lisansı ile değil. Kendi sunucu ücretsiz. İkisi de böyle kalacak.
Algoritmayı okuyun. Sonra kendiniz çalıştırın.
github.com/NoplagLabs/noplag-engine Apache 2.0 lisanslıdır. noplag.com üzerindeki bulut ortamında da aynı commit çalışır. Her iki yol da aynı motoru sunar — veriniz için uygun operasyonel sınırı seçin.