ai
21 uç · /api/shop/v1/ai
İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 21 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.
Bekleyen öneriler (panel onay kuyruğu). Süresi geçmiş olanlar listede GÖRÜNMEZ —
onaylanamayacak bir şeyi onay kuyruğunda göstermek kullanıcıyı yanıltır.
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/proposals" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Öneriyi UYGULA. Üç adım: (1) atomik kilit, (2) asıl yazma, (3) sonucu işaretle.
proposal_id⚠ Sıra önemli. Önce uygulayıp sonra damgalasaydık, çift tıklama fiyatı İKİ KEZ değiştirirdi.
Kilit decided_at is null koşullu tek UPDATE'tir; ikinci onay o koşulu bulamaz.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/proposals/<proposal_id>/approve" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Öneriyi reddet (kuyruktan düşür). Yazma yok.
proposal_idcurl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/proposals/<proposal_id>/reject" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Konu-listesi (en son güncellenen önce). Yalnız tenant'ın konuları (RLS).
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/threads" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Bir konunun mesajları (kronolojik). Konu yoksa/başka tenant'ınsa → boş dizi (RLS).
thread_idcurl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/threads/<thread_id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Araç kataloğu — panelin "asistan neler yapabilir" listesi.
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/tools" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Yazma önerisi ÜRET — hiçbir şey uygulamaz. Dönen summary, panelde kullanıcıya okutulan
cümledir ve uygulanacak yükle aynı yerden türer.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/tools/propose" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}**Salt-okuma araç çalıştırma.** Yazma araçları buradan KOŞMAZ (409 döner).
Yetki kapısı çağıranın kendi izniyle: asistan bir yetki yükseltme yolu değildir.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/tools/run" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Doğal dil → ÖNERİLEN araç. Hiçbir şey ÇALIŞTIRMAZ; yalnız niyeti söyler.
Ayrı bir uç olmasının nedeni: panel önce "şunu yapacağım" diyebilsin. Kullanıcının göremediği bir eylem, onaylayamadığı eylemdir.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/assistant/tools/suggest" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Üretim-işi gönder: kind doğrula → entitlement/kota guard (consume, maliyet=1) → pending job.
Guard reddi: Disabled(tier)→403 ai_disabled; Blocked(kota)→403 quota_exceeded. Allow/Warn → 200.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Admin: retention config oku (gün eşikleri; null = o tablo için kapalı).
idcurl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}done theme_gen job'ının output.section'ını temanın layout.sections[]'ına ekler.
idEkleme ÖNCESİ tema-içeriği theme_versions'a snapshot'lanır (is_published=false) → geri-al =
mevcut restore ucu (versiyon/undo). Yeni layout section_schema'ya karşı doğrulanır
(uymazsa rollback — güvenli-şablon dışına çıkılamaz). Job done/theme_gen değil → 409.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations/<id>/insert-section" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}BLE-5506/6365/5636/5760 · önizle-sonrası insan-onayı: done-job approve edilirse görsel-türlerde
idçıktı (result_ref) ürün-medya galerisine bağlanır (storage-key = stub-ref; canlı obje-storage
TF21 aynı sözleşme); discard → çıktı yayınlanmadan kapanır. Geri-al: bağlanan medya mevcut
media-delete ucuyla kaldırılır (media_id yanıtta). done-olmayan job → 409.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations/<id>/review" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}BLE-5506/6365 · toplu üretim: seçili girişler için job-başına kota-tüketimli pending-job'lar.
Kota İLK girişte reddedilirse HİÇ iş açılmaz (403); ortada biterse o-ana-kadar açılanlar döner
(blocked sayısıyla — sessiz-kırpma yok). Önizleme = done-job output'u; onay/red review
ucundan (insan-onayı olmadan hiçbir çıktı üründe yayınlanmaz).
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations/batch" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Vadesi-geleni işle (manuel/test tetik; prod'da crash-safe worker çağırır). now verilmezse now().
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/generations/process" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}BLE-5734 · model-havuzu + stil-preset listesi (admin seçim yüzeyi).
curl -X GET "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/model-pool" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Deterministik palet-önerisi (canlı AI-önerisi TF21; sözleşme aynı): base + açık/koyu
varyantlar; her renk için AA-uyumlu metin-rengi + kontrast-oranı raporlanır.
curl -X POST "https://{slug}.shop.blesyum.app/api/shop/v1/admin/ai/theme/palette" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}