Uygulama · informational
CAP'ten Generative AI Hub — side-by-side inference
SAP Cloud Application Programming Model, Generative AI Hub veya AI Core'u destination üzerinden çağıran side-by-side katmandır. Bu sayfa cds servisinin nereye bağlanacağını, secret'in nerede duracağını ve S/4 çekirdeğine neden inmeyeceğini kararlaştırır. Joule skill'i aynı CAP action'ını tüketebilir.
cds servisi, destination, binding
CAP projesi Hub'ı m.destination veya service binding ile görür. URL ve credential xs-app.json / env'de repo'ya girmez; BTP service instance binding üretim kaynağıdır. Yerel development için default-env örneği gitignore'dadır. cds handler, orchestration config ID'sini kod sabitine gömebilir ama model adını her ortamda değiştirmek için config/env ayrılır. Timeout, belge grounding'li çağrıda varsayılandan uzundur. Hata, Fiori MessageToast'a model metni olarak basılmaz. İstanbul teslimatı: package.json bağımlılığı, destination adı, örnek handler. AI SDK / plugin kullanımı landscape'e göre seçilir; her projeye aynı paket zorlanmaz. Clean-core: bu servis BTP'dedir, RAP Z-sınıfı değildir. xs-security scope’ları Hub ve S/4 destination’ını ayırır; tek xsuaa ile her şeyi açmak principal propagation’ı körleştirir.
- Destination veya service binding adı (Hub/AI Core)
- Handler: orchestration config ID, timeout değeri
- gitignore: default-env, anahtar, .cdsrc-private
xs-security: kim Hub'ı tetikler
xs-security.json scope'u 'authenticated' diye herkese inference açarsa maliyet ve KVKK sızar. Scope, iş rolüne göre ayrılır: özet okuma ayrı, üretken yazma ayrı. Joule skill aynı CAP'i çağırıyorsa Joule kullanıcısının JWT'si principal propagation ile gelmelidir; CAP'in teknik client credential'ı her çağrıda 'system' yazmasın. Approuter + XSUAA zinciri Fiori Elements tüketiminde zaten vardır; Hub çağrısı bu zincirin ardına eklenir, ikinci bir anonim API açılmaz. İstanbul review: xs-security, role-template, IAS grup eşlemesi. 403 testi zorunludur; 200'ün yanında anlamsızdır. sap-ai-principal-propagation sayfası JWT taşmasını derinleştirir; burada CAP tarafı kapanır. Prompt ve model adı configuration’da durur, kodda sabitlenmez; model değişince MTA yeniden yazılmaz, Hub orchestration güncellenir.
- xs-security scope: okuma vs üretken yazma ayrı
- Joule/CAP JWT: principal var, yalnız client credential yok
- 403 test kullanıcısı kaydı (yetkisiz scope)
Veri: S/4 OData, HANA vektör, prompt'a sızıntı
CAP, S/4 released OData'yı okur, gerekirse HANA Cloud vektör indeksi ile RAG yapar, sonra Hub'a prompt gönderir. Prompt'a tam mali tablo veya TCKN yığmak KVKK ihlalidir; filtre cds'de yapılır. Embedding boyutu ve indeks sap-hana-cloud-vektor sayfasındadır; CAP yalnızca tüketir. Idempotent: aynı sipariş özeti cache'lenebilir, her UI tıklaması token yakmasın. Transactional outbox ile asenkron özet, senkron UI çağrısından ayrılır. İstanbul tasarım: senkron sınır (saniye), asenkron job, PII filtresi. Çekirdekte CAP yoktur; S/4 yalnızca API'dir. Ölçüm: p95 latency, token, cache isabeti. Eval set CAP katmanında tutulur; S/4’e prompt tablosu basmak clean-core listesine kırmızı düşer ve lisans tartışması doğurmaz, mimari borç doğurur.
- PII filtresi: prompt'a gitmeyen alan listesi
- Senkron vs asenkron özet (outbox/job)
- p95 latency ve cache isabet metriği
Sık sorulanlar
CAP içinde doğrudan OpenAI SDK kullanmak doğru mu?
Üretimde tercih Generative AI Hub veya AI Core üzerinden yönetilen erişimdir. Doğrudan anahtar, destination ve KVKK denetimini deler. PoC bile repo'ya key koymaz.
Joule olmadan CAP AI servisi olur mu?
Olur. Fiori Elements veya başka tüketici CAP'i çağırır. Joule bir kabuktur; inference CAP+Hub'da durabilir.
Bu konuyu ortamınızda netleştirmek için 48 saatlik ön değerlendirme.
Lisans satmıyoruz. Destination, yetki ve model kararını yazılı notlarız.