Skip to content

feature(ai): A05 — Hazır Model Inference Servisi, Açıklama Fallback’i ve Strategy Entegrasyonu - #48

Merged
Firatasi merged 36 commits into
mainfrom
feature/a05-inference-strategy
Oct 24, 2026
Merged

Firatasi merged 36 commits into
mainfrom
feature/a05-inference-strategy

Conversation

@Firatasi

Copy link
Copy Markdown
Owner

📌 Özet

Bu PR, sklearn eğitim kütüphanelerine bağımlı olmadan doğrulanmış ridge-json-v1 ağırlıklarıyla çalışan canlı tahmin motorunu (NumericModel, ModelService), paket sabitleme ve önbellek katmanlarını (loader.py, prediction_cache.py), deterministik şablon açıklama üreticisini (explain_template) ve FastAPI iç uç noktalarını (model_api.py) devreye alır.

🛠️ Yapılan Değişiklikler

  • Saf Sayısal Tahmin Motoru (app/inference/numeric.py):
    • SHA-256 bütünlük kontrolü (ARTIFACT_HASH_MISMATCH), featureNames sırası ve featureSchemaHash doğrulaması (FEATURE_SCHEMA_MISMATCH) eklendi.
    • Eğitim veri aralığı (domainMin / domainMax) dışındaki girdileri tespit ederek None (OUT_OF_DOMAIN) dönen koruma ve lineer standartlaştırılmış tahmin hesabı yazıldı.
  • Tahmin Orkestrasyonu ve Paket Sabitleme (app/inference/service.py, app/registry/loader.py, app/infrastructure/prediction_cache.py):
    • İstek başında registry.get(request.modelBundleId) ile model paketini sabitleyen (pinned), ortak build_features hattını çalıştıran ve kalite/OOD durumlarında skorları None bırakan ModelService oluşturuldu.
    • bundleId:featureSnapshotId:horizon anahtarlı, requestId ve asOf sızıntısı yapmayan tahmin önbelleği eklendi.
  • Şablon Açıklama Fallback’i (app/explanations/template.py):
    • Yalnızca doğrulanmış validatedPolicyOutcome (LONG, SHORT, WAIT) ve izinli sabit REASONS sözlüğünü kullanan, quality != 'READY' iken WAIT dışı kararları POLICY_CONTRADICTION ile reddeden explain_template yazıldı.
  • İç Model API Uçları (app/api/model_api.py):
    • En az 32 karakterli X-Service-Secret (compare_digest), geçerli UUID X-Request-Id ve gelecek zamanlı UTC X-Deadline doğrulamaları tamamlandı.
    • /internal/model/predictions, /internal/model/active-bundle ve /internal/model/explanations uçları ile 400/401/422/503 hata zarfları bağlandı.
  • Entegrasyon Testleri (tests/integration/test_strategy_roundtrip.py):
    • Strategy (B09) istemcisiyle uçtan uca tahmin, WAIT / OUT_OF_DOMAIN / 503 MODEL_UNAVAILABLE ve eşzamanlı paket değişimi (bundle pin) testleri eklendi.

🧪 Test ve Doğrulama Kanıtları

  • .\.venv\Scripts\python.exe -m pytest tests -q -> Tüm birim, API ve Strategy roundtrip entegrasyon testleri başarıyla geçti.
  • domainMin/domainMax dışındaki özellik vektörlerinde modelin OUT_OF_DOMAIN ve null skor döndüğü, bozuk artifact hash veya şema uyuşmazlığında ise teknik hata (422/503) ürettiği doğrulandı.
  • READY olmayan bir tahmin sonucuyla LONG veya SHORT açıklama istendiğinde 422 POLICY_CONTRADICTION ile reddedildiği teyit edildi.
  • Eşzamanlı istek sırasında aktif model alias'ı değiştirildiğinde devam eden isteğin başlangıçta sabitlenen (pinned) paketle tamamlandığı kanıtlandı.

⚠️ Doğrulama Sınırı

Bu PR sayısal tahmin sunumunu, şablon açıklama fallback mekanizmasını ve Strategy entegrasyonunu kapsar. Eğitim kaynak dokümanlarının (PDF/URL) ayrıştırılması ve güvenli kaynak hattı bir sonraki görevde (A06) ele alınacaktır.

…esmeler

feat(backend): B01 proje iskeleti ve sozlesmeleri eklendi
feature(finance-core) java core finans hesap motoru, değer nesneleri …
feature(simulation): B03 — PostgreSQL, Çift Kayıtlı Ledger ve Kalıcı Session Altyapısı
feature(identity): B04 — Kimlik Doğrulama, RS256 JWT, Refresh Family Rotasyonu ve Güvenlik Katmanı
feature(simulation): B05 — Manuel Sanal İşlem Önizleme, Onay ve Emir Kabul Hattı
feature(market-data): B06 — Dinamik Piyasa Servisi, Kafka Outbox/Ingress ve Redis Önbelleği
feature(simulation): B07 — Risk Yaşam Döngüsü, Funding Tahakkuku ve Koruyucu Çıkışlar
…count

feature(backend): B08 & B08A — Reporting Projeksiyonları, API Gateway, SSE ve Account Servisi
…isi ve analiz akisini eklendi. Ekstra olarakPR acilinca kontrol mekanizmasi eklendi
feature(strategy): B09 — Strategy Servisi, Piyasa Tarama ve AI Model Bağlantısı
feature(strategy): B10 — Eğitim Yönetimi Facade Katmanı, Yetki Sınırları ve İç AI İstemcisi
feature(strategy): backend eksik gorevler tamamlandi ve kurulumu bitti
feature(ai): A02 — Piyasa Veri Kümesi Okuyucusu ve Ortak Özellik (Feature) Üretim Hattı
…raining

feature(ai): A03 & A04 — Zaman/Varlık Bazlı Veri Ayrımı, Sayısal Model Eğitimi ve Kalıcı İş Kuyruğu
@github-actions

Copy link
Copy Markdown

🛡️ Otomatik Kod ve Güvenlik İncelemesi

⚠️ Gemini API kota/sunucu hatası nedeniyle otomatik güvenlik incelemesi tamamlanamadı. Lütfen workflow'u yeniden tetikleyin.

🤖 Tetiklenen commit: 9a9082e

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛡️ Otomatik Kod ve Güvenlik İncelemesi

⚠️ Gemini API kota/sunucu hatası nedeniyle otomatik güvenlik incelemesi tamamlanamadı. Lütfen workflow'u yeniden tetikleyin.

🤖 Tetiklenen commit: 9a9082e

@Firatasi Firatasi left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Code Review Değerlendirmesi: ONAYLANDI (LGTM)

Canlı model tahmin servisi (NumericModel, ModelService), şablon açıklama üreticisi ve FastAPI iç sınırı incelendi:

  • Sunum İzolasyonu ve Güvenlik: NumericModel eğitim kütüphanelerinden tamamen bağımsız; SHA-256 özet, featureNames sıra ve SCHEMA_HASH doğrulamaları ile yanlış ağırlık yükleme riski sıfırlanmış.
  • Kalite ve Hata Ayrımı: Veri yetersizliği / kapsam dışı (OUT_OF_DOMAIN) sonuçları ile teknik arızalar (503 MODEL_UNAVAILABLE) net biçimde ayrılmış; explain_template içinde politika çelişkisi (POLICY_CONTRADICTION) ve metin enjeksiyonu koruması doğru uygulanmış.
  • İç API Koruması: compare_digest ile timing-safe secret kontrolü, UTC deadline doğrulaması ve bundle pinning mekanizması beklentileri tam karşılıyor.

Testler ve Strategy entegrasyon kriterleri eksiksiz sağlandığı için develop branch'ine birleştirilmeye uygundur.

@Firatasi
Firatasi merged commit a1e9b8c into main Oct 24, 2026
4 of 7 checks passed
@github-actions

Copy link
Copy Markdown

🛡️ Otomatik Kod ve Güvenlik İncelemesi

⚠️ Gemini API kota/sunucu hatası nedeniyle otomatik güvenlik incelemesi tamamlanamadı. Lütfen workflow'u yeniden tetikleyin.

🤖 Tetiklenen commit: a1e9b8c

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛡️ Otomatik Kod ve Güvenlik İncelemesi

⚠️ Gemini API kota/sunucu hatası nedeniyle otomatik güvenlik incelemesi tamamlanamadı. Lütfen workflow'u yeniden tetikleyin.

🤖 Tetiklenen commit: a1e9b8c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant