Plagiaadikontroll API ja OpenAPI 3.0 tugi
REST-põhine plagiaadi ja tehisintellekti tuvastuse lõpp-punkt. OpenAPI 3.0 spets, Python ja Node SDK-d, Apache 2.0 viiteimplementatsioon. Alustades esimesest curl-käsust kuni webhook-mahuni — sama mootor, mis töötab aadressil noplag.com.
Nullist sarnasusskoorini ühe curl-iga.
POST-iga tekst, vastu skooride intervallid. SDK pole nõutav, kompileerida ei tule, privaatset ühendusprotokolli pole.
$ curl https://engine.noplag.app/v1/checks \ -H "Authorization: Bearer $NOPLAG_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "text": "The rain in Spain falls...", "corpora": ["web", "academic"], "ai_detection": true, "webhook_url": "https://you.example/hook" }'{ "check_id": "chk_01HX9R2Y4...", "status": "complete", "similarity_pct": 23.4, "ai_score": 0.08, "engine_commit": "v0.4.2", "sources": [ { "url": "https://en.wikipedia...", "matched_chars": 142, "similarity_pct": 100.0 } ]}Neli lõpp-punkti. Üks kokkulepe. Versioon URL-is.
Sama OpenAPI 3.0 spetsifikatsioon asub nii avatud lähtekoodiga repositooriumis kui ka aadressil engine.noplag.app. SDK-d uuendatakse selle põhjal iga märgistatud väljalaske korral.
Bearer-tokenid. Idempotentsusvõtmed. Ausad piiravaated päises.
Ei midagi ebatavalist. Standardne HTTP — jälgime neid, et teie olemasolev kordusloogika töötaks.
Bearer-tokenid. Üks päis, ei tantsu signeerimisega.
Authorization: Bearer nplg_live_a82f...Idempotency-Key: 0e8f9c44-...Võtme- ja minutipõhine. Päised näitavad teie asukohta.
X-RateLimit-Limit: 60X-RateLimit-Remaining: 41X-RateLimit-Reset: 1747920480Retry-After: 19 (only on 429)Kaks SDK-d. Genereeritud samast OpenAPI 3.0 spetsist.
Python ja Node ilmuvad iga mootoriväljalaske märgisega. Teised keeled (Go, Ruby, Java) genereeritakse openapi.yaml põhjal — kogukonna PR-id teretulnud.
from noplag import Noplagclient = Noplag(api_key="nplg_live_…")report = client.checks.create( text="...", corpora=["web", "academic"], ai_detection=True,)print(report.similarity_pct)import Noplag from "@noplag/sdk";const client = new Noplag({ apiKey: process.env.NOPLAG_KEY,});const report = await client.checks.create({ text: "...", corpora: ["web", "academic"], aiDetection: true,});Pikad kontrollid kutsuvad teid tagasi. Uuestikatsetega, mis ei tüüta.
Neli sündmustüüpi. JSON-sisu. HMAC-SHA256 allkiri päises.
Eksponentsiaalsed uuestikatsed 24 h jooksul. Taasesitav armatuurist.
Kontrollige allkirja. Kõik, mis ei päde, tuleb tagasi lükata.
Igal tarnel on X-Noplag-Signature: t=<unix>,v1=<hex>. Arvutage HMAC-SHA256 ajatemplile + sisule kasutades oma veebikonkku saladust; võrdlus konstantse ajaga.
h = hmac.new(secret, f"{t}.{body}".encode(), hashlib.sha256).hexdigest()assert hmac.compare_digest(h, v1)Järgime HTTP-d. See on kogu API disainidokument.
POST-is idempotentsus. Versioon URL-is. Veateated annavad juhised, mida järgmisena teha. Päised annavad teada, kus piiranguaknas ollakse. Lehelist kasutab kursorit, mitte offset-it. Ajad UTC ISO 8601. Oma HATEOAS-i pole, 200 OK-d vigadel ei anna, OAuth-i ei nõua server-to-serveri puhul. API disain toimub järgi RFC 9110 ja OpenAPI 3.0 spets-i. Eraldi “Noplag Way”-d õppida ei tule.
Vaata disainimärkmeidKüsimused, mida meie integratsiooniinsenerid päriselt küsivad.
- Kui pikk on tavalise kontrolli viivitus?
- p50 umbes 600 ms 500-sõnalise kontrolli puhul indekseeritud korpuse vastu; p95 ~1,8 s. Kui Layer W (reaalajas veebikinnituse) on lubatud, lisandub ~2 s — see teeb päringu Google'i ja Brave'i kaudu. Pikkade dokumentide puhul (oodatav tööaeg üle 8 s) tagastatakse kohe check_id ja tulemus saadetakse webhooki kaudu.
- Kuidas hinnastamine API kaudu toimub?
- Iga /v1/checks päringu peale arvestatakse üks tasuline päring, sõltumata tekstimahust, kuni plaani ülempiirini (1500 sõna Pro, 50 000 Premium, eraldi Enterprise). Idempotentne uuesti saatmine sama Idempotency-Key + kehaga 24 h sees ei loe topelt. /v1/checks/{id} tulemused ja SDK abistavad päringud on tasuta.
- Kas saan API-d ise majutada?
- Jah — github.com/NoplagLabs/noplag-engine on sama Apache 2.0 viite-implementatsioon, mis töötab aadressil engine.noplag.app. 'docker compose up' loob kohaliku /v1/checks lõpp-punkti. Pilvetasandil lisanduvad hallatav korpus ja Google/Brave API võtmed; täis isemajutuse jaoks tuleb need ise lisada.
- Kas piirangu päis on usaldusväärne?
- 429 korral tagastame Retry-After sekundites. X-RateLimit-* päised kaasas igas vastuses — saate ennetavalt piirata X-RateLimit-Remaining järgi, ilma 429 ootamata. Mõlemad on täpsed ja stabiilsed ka uuenduste järel.
- Kui tihti SDK-d väljastatakse?
- Python ja Node SDK uuenevad automaatselt openapi.yaml järgi igal mootori märgisega väljalaskel. Suuremad väljalasked (v0.x → v0.y) annavad samal päeval uued SDK versioonid. Paigad nädalaga. Mõlemad SDK-d järgivad semver‘i; API pind muutub vaid /v1 → /v2 vahetusel.
- Mis juhtub kui korpus muutub kuu keskel?
- Iga kontroll paneb vastuse X-Engine-Commit ja korpuse ajatempliga. Vanema kontrolli uuesti käitamine uuema korpuse vastu käib ühe päringuparameetriga (?corpus_snapshot=…). Originaalraport säilitatakse oma algse hetkega — me ei muuda vastuseid tagantjärele vaikimisi.
- Kuidas testida ilma kuupiiri põletamata?
- Testvõtmed (nplg_test_…) suunavad liivakasti: täis API pind, päringuid ei salvestata, kvooti ega piiranguid ei rakenda. Veebikonksud töötavad ka liivakastis, seega integreerimistestid on tasuta.
- Kuidas teha hulgikontrolli?
- Saatke paralleelselt kuni oma piirini — spetsiaalset batch-lõpp-punkti polegi (500 dokumendi batch, mis kukub läbi 312-dal, on kehvem kui 500 eraldi kõnet). Suure mahu korral kasutage API-d koos veebikonksudega: saatke, võtke check_id, järgmised 200 päringut, tulemused laekuvad asünkroonselt.
- Kas saan piirata kontrolli ainult oma kaustadele?
- Jah — corpora: [] koos folder_id-ga päringus kontrollib vaid teie privaatses kaustas. Koos corpora: ["academic"] — ainult akadeemiline + oma kaustad. Piirang iga päringu tasemel; eri arvestust ei tule.
- Mis muutub, kui vaja on EL-i asukohaga või on-prem lahendust?
- Enterprise-tase loob eraldi EL-i asukohaga lõpp-punkti (api.eu.noplag.com) sama OpenAPI pinnaga — isikuandmed ei lahku EEA-st. Või majutades viiterakendust ise oma VPC-s — sama mootor, sama /v1 lepingu pind, midagi ei lähe võrgust välja. (Relaunchimas open-core ettevõttena; ametlikud deklaratsioonid nagu SOC 2 on plaanis, hetkel veel pole — pakume seni auditeeritavat mootorit.)
Hankige API võti. Tehke esimene päring.
Tasuta prooviperiood sisaldab 100 API päringut. Pro-tase 23 $/kuus eest 1 000 päringut. Apache 2.0 viiterakendus, kui soovite kõne võrgust sees hoida.