İç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ı
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.
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.
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
{ "error": { "code": "invalid_input", "message": "...", "details": {} } }
curl -s "https://aix.xtro.ovh/api/v1/banned-words?lang=tr" -H "Authorization: Bearer $TOKEN"
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.
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"}'
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.
/analyze ve /analyze/batch'te text yerine url verirseniz sayfanın ana içeriği çekilir (menü/header/footer elenir, SSRF korumalı).
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 /banned-words + GET /rules → kaçınılacakları öğren.session_id üret (32 hex).POST /analyze → score + next_actions.session_id ile tekrar gönder.score < yellow olana ya da max_iter'a kadar tekrarla.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"
İç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.