AI Content Pattern Detector — API

İçerikteki AI-yazım pattern'lerini konumlu ve gerekçeli tespit eden iterasyonlu API. Sürüm v1 · Taban: https://aix.xtro.ovh/api/v1 · OpenAPI 3.1 şeması

Genel bakış

Akış: (1) yazmadan önce yasaklı kelime + kural setini çek → (2) taslağı /analyze'a gönder → (3) dönen tespit + öneriye göre düzelt → (4) aynı session_id ile tekrar gönder (iterasyon). Skor 0–100; etiket: green temiz · yellow dikkat · red yüksek AI sinyali.

Kimlik doğrulama

Tüm uçlar (/health ve /openapi.json hariç) API anahtarı ister:

Authorization: Bearer <api_key>

Anahtar admin panelinden üretilir (API Anahtarları). Küratör uçları ayrıca curate kapsamı ister.

Rate limit

Saatlik; anahtara özel (rate_limit). Her yanıtta başlıklar döner; aşımda 429:

X-RateLimit-Limit: 600
X-RateLimit-Remaining: 595
X-RateLimit-Reset: 1783270800

Hata biçimi

{ "error": { "code": "invalid_input", "message": "...", "details": {} } }

Uçlar

GET /health — sürüm + bağlantı durumu (auth yok)
GET /banned-words?lang=tr — yazmadan önce çekilecek yasaklı kelimeler
curl -s "https://aix.xtro.ovh/api/v1/banned-words?lang=tr" -H "Authorization: Bearer $TOKEN"
GET /rules?lang=tr — aktif kural özeti (regex/structural/stat)
POST /analyze — metni analiz et
curl -s "https://aix.xtro.ovh/api/v1/analyze" -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"text":"Günümüzde yapay zeka önemli bir rol oynamaktadır.","lang":"tr"}'

Yanıt: score, label, subscores, findings[] (konumlu + gerekçeli + öneri), next_actions[]. Seçenekler: lang, session_id (32 hex, iterasyon), dry_run, options.verbosity=compact|full, options.min_severity.

POST /ingest — koşulsuz-kabul içe-alım (chat history / eğitim havuzu)

POST /analyze/batch — çoklu analiz

Tek istekte en fazla 20 metin/URL:

curl -s "https://aix.xtro.ovh/api/v1/analyze/batch" -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"items":[{"text":"..."},{"url":"https://site.com/yazi"}],"lang":"tr"}'

POST /fix — otomatik düzeltme

Klişeleri alternatifiyle değiştirir, önce/sonra skoru döner:

curl -s "https://aix.xtro.ovh/api/v1/fix" -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type: application/json" -d '{"text":"...","lang":"tr"}'

Yanıt: {fixed, applied[], manual[], score_before, score_after}. Talimat gerektiren öneriler (sadeleştir, somutlaştır) manual[] altında listelenir, otomatik uygulanmaz.

URL desteği

/analyze ve /analyze/batch'te text yerine url verirseniz sayfanın ana içeriği çekilir (menü/header/footer elenir, SSRF korumalı).

Özel kurallar

Panelden eklediğiniz marka klişeleri, API analizlerinizde global kurallarla birlikte denetlenir (dimension: "custom").

curl -s "https://aix.xtro.ovh/api/v1/ingest" -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"type":"session_dump","source":"claude","payload":"...transcript..."}'

Reddetmez; "incelenecek/eğitilecek" havuzuna alır. Kurallara otomatik EKLENMEZ (insan onayı). Ayrıca GET /ingest?status=received, GET /ingest/{id}.

GET /sessions/{id} — iterasyon geçmişi + trend
GET /sessions/{id}/diff?from=1&to=2 — çözülen/yeni tespitler
scope: curate GET /curate/review-package — ajana intake + mevcut kural bağlamı
POST /curate/candidates — ajan aday kural önerir
GET /curate/candidates?status=pending — aday listesi

İterasyon akışı (istemci)

  1. GET /banned-words + GET /rules → kaçınılacakları öğren.
  2. Taslağı yaz, session_id üret (32 hex).
  3. POST /analyzescore + next_actions.
  4. Skor eşiğin üstündeyse önerilere göre düzelt, aynı session_id ile tekrar gönder.
  5. score < yellow olana ya da max_iter'a kadar tekrarla.

İstemci SDK

Tek dosya, bağımlılıksız: aix_client.py (Python 3.6+, stdlib) · aix_client.js (Node 18+/tarayıcı). Her ikisinde analyze, banned_words, iterate(write_fn) (yaz→kontrol→düzelt döngüsü).

curl -s https://aix.xtro.ovh/api/v1/sdk/python -o aix_client.py
python3 aix_client.py https://aix.xtro.ovh aix_<API_KEY> "Denemek istediğiniz metin"

İstemci sistem-prompt'u (diğer Claude için)

İçerik üreten LLM'e verilecek hazır talimat:

Sen içerik yazan bir asistansın. Yazdığın metin "AI-yazımı" gibi görünmemeli.
Kurallar:
1) Yazmadan önce şu uçları çek:
   GET https://aix.xtro.ovh/api/v1/banned-words?lang=tr   (Authorization: Bearer <KEY>)
   GET https://aix.xtro.ovh/api/v1/rules?lang=tr
   Dönen kelime/ifadeleri KULLANMA; klişe/pazarlama dilinden kaçın.
2) Taslağı yaz, sabit bir session_id üret (32 hex).
3) Şuraya gönder:
   POST https://aix.xtro.ovh/api/v1/analyze
   {"text": "<taslak>", "lang":"tr", "session_id":"<32hex>",
    "options":{"verbosity":"compact"}}
4) Yanıttaki next_actions[] önerilerini uygula; kısa/uzun cümleleri karıştır,
   somut örnek/kişisel ton ekle, geçiş kelimelerini azalt.
5) Aynı session_id ile tekrar gönder. score < 37 (yellow) olana kadar yinele
   (en çok 5 tur). score düşmüyorsa dur ve mevcut en iyi metni ver.

← Ana sayfa · indirilebilirler · openapi.json