Skip to content

feature(ai): A01 — Python Ortamı, Süreç Sınırları ve Pydantic Sözleşme Modelleri - #45

Merged
Firatasi merged 5 commits into
developfrom
feature/a01-ai-setup-contracts
Oct 24, 2026
Merged

Firatasi merged 5 commits into
developfrom
feature/a01-ai-setup-contracts

Conversation

@Firatasi

Copy link
Copy Markdown
Owner

📌 Özet

Bu PR, CryptoLab AI katmanının (ai/) temel paket yapısını, serving ve training bağımlılık/süreç izolasyonunu, Backend (B01/B09) ile birebir uyumlu katı Pydantic v2 veri sözleşmelerini (app/contracts/model.py), port protokollerini (DatasetReader, Registry) ve iç model API iskeletini (app/api/model_api.py) devreye alır.

🛠️ Yapılan Değişiklikler

  • Bağımlılık ve Süreç İzolasyonu (requirements-serving.in, requirements-training.in):
    • Tahmin sunumu (model-api) ile ağır eğitim/PDF ayrıştırma (training-worker / pypdf) bağımlılıkları birbirinden ayrıldı.
  • Temel Veri Yapısı (app/features/pipeline.py):
    • frozen=True ile değişmez (immutable) Candle veri modeli, Decimal fiyat temsili ve close_time / available_at zaman ayrımı oluşturuldu.
  • Katı Pydantic Sözleşmeleri (app/contracts/model.py):
    • StrictModel (extra='forbid', allow_inf_nan=False) taban sınıfı tanımlandı.
    • PredictionRequest üzerinde izinli ufuklar (60, 900, 3600, 86400, 604800) ve zorunlu UTC zaman damgası (UTC_REQUIRED) doğrulaması eklendi.
    • PredictionResult üzerinde quality == 'READY' iken skorların dolu, diğer durumlarda None olmasını zorunlu kılan (READY_REQUIRES_SCORES / NON_READY_REQUIRES_NULL) model doğrulayıcısı yazıldı.
    • ActiveModelBundle, ExplanationRequest (BUNDLE_MISMATCH korumalı) ve ExplanationResult şemaları eklendi.
  • Portlar ve İç API Sınırı (app/infrastructure/ports.py, app/api/model_api.py):
    • DatasetReader ve Registry Protocol arayüzleri tanımlandı.
    • İç servis kimlik doğrulaması (X-Service-Secret), X-Request-Id ve X-Deadline kontrollerini uygulayan create_app factory yapısı kuruldu.
  • Birim ve Sözleşme Testleri (tests/test_core.py, tests/test_api.py):
    • Ortak JSON fixture roundtrip, bilinmeyen alan reddi, NaN/Inf engeli, yetkisiz/süresi geçmiş istek (401/400) ve serving import izolasyonu testleri eklendi.

🧪 Test ve Doğrulama Kanıtları

  • .\.venv\Scripts\python.exe -m pytest tests -q -> Tüm sözleşme, validasyon ve API sınır testleri başarıyla geçti.
  • Serving sanal ortamında (venv-serving) from app.api.model_api import create_app çağrısının PDF/OCR (pypdf) paketlerine ihtiyaç duymadan çalıştığı doğrulandı.
  • contracts/fixtures/prediction-result.json ortak fixture dosyasının Pydantic modelleriyle kayıpsız doğrulandığı teyit edildi.

⚠️ Doğrulama Sınırı

Bu PR AI katmanının sözleşme modellerini, süreç sınırlarını ve iç API iskeletini kapsar. Piyasa veri kümesi okuma ve çoklu zaman dilimi (multi-timeframe) feature mühendisliği bir sonraki görevde (A02) ele alınacaktır.

@Firatasi
Firatasi merged commit 87109d3 into develop Oct 24, 2026
0 of 2 checks passed
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