Veri ve yapay zekâ katmanı için Python, ortamın geri kalanıyla aynı mühendislik disipliniyle.
Bir kurumun beklediği testler, tip denetimi ve gözlemlenebilirlikle Django ve FastAPI servisleri, veri hatları ve model sunum API'leri geliştiren Python mühendisleri — canlı ortama terfi ettirilmiş notebook'lar değil.
- Python
- FastAPI
- Django
- pydantic
- pytest
- PyTorch
Veri ve yapay zekâ çalışmalarımız Python'da yaşıyor.
Eğittiğimiz her model, çalıştırdığımız her değerlendirme düzeneği ve bunları besleyen veri hatlarının çoğu Python — çünkü kütüphaneler orada ve matematiği bilen insanlar zaten orada çalışıyor. FastAPI bu çalışmayı servise dönüştürüyor: tipli, asenkron, koddan belgelenen ve bir istek yolunda durabilecek kadar hızlı. Django ise diğer ucu kapsıyor — içerik ağırlıklı arka ofis uygulamaları, yönetim ekranı odaklı uygulamalar ve olgun bir ORM'in, kimlik doğrulamanın ve bir yönetim arayüzünün işi kolaylaştırdığı her yer.
Python'un kurumsal ortamdaki sorunu hiçbir zaman dilin kendisi olmadı. Sorun, bir kez çalışan bir notebook ile her gün çalışan bir servis arasındaki fark. Bu farkı, TypeScript ve Java'ya uyguladığımız disiplinle kapatıyoruz: CI'da denetlenen tip tanımları, riski yansıtan testler, bir kez üretilen konteynerler, her istekte iz kaydı.
Öngörülebilir ve çok düşük gecikme gerektiren yoğun işlem yollarına Python koymuyoruz; bir JVM veya Go servisinin alanı zaten sahiplendiği yerlerde de kullanmıyoruz. Veri, model ve bağlayıcı katman için doğru araç — geri kalan pek çok iş için de dürüst bir araç.
Python ile canlıya aldığımız altı şey.
Model sunum API'leri
Sınıflandırıcıların, tahmin modellerinin ve embedding modellerinin önünde duran FastAPI servisleri — istek doğrulama, toplu işleme, zaman aşımı ve modelin ne zaman belirlenen hedefin gerisinde kaldığını gösteren gecikme panosu ile.
LLM uygulamaları ve RAG
pgvector veya Pinecone üzerinde erişim hatları, Anthropic ve OpenAI SDK'larıyla prompt ve araç orkestrasyonu ve CI'da çalışan bir değerlendirme paketi; böylece bir prompt değişikliği test edilmiş bir değişikliktir.
Veri hatları
Operasyonel sistemlerden veri ambarlarına veri taşıyan Airflow DAG'leri ve dbt modelleri, yol boyunca Great Expectations kontrolleriyle — böylece pano daha seyrek hatalı olur, hatalı olduğunda da sesini duyurur.
Django arka ofis uygulamaları
Operasyon ekipleri için yönetim ekranı odaklı uygulamalar: katalog yönetimi, vaka takibi, içerik iş akışları. Django admin size hazır, çalışan bir ekran verir; biz onu bakımı kolay kalacak şekilde kurarız.
Entegrasyon ve otomasyon servisleri
ERP'lere, CRM'lere ve dosya tabanlı iş ortaklarına bağlayıcılar, zamanlanmış işler ve olay tüketicileri — bir ortamı tutarlı tutan gösterişsiz servisler, en baştan yeniden deneme ve idempotentlikle yazılmış.
MLOps araçları
Eğitim hatları, MLflow'da deney takibi, model kayıt defterleri ve adaydan canlı ortama uzanan terfi yolu, bu yolu denetleyen değerlendirmelerle birlikte.
Ne zaman tercih edilmeli.
İş veri bilimine, makine öğrenmesine veya LLM'lere temas ediyorsa Python'u seçin — kütüphaneler, araçlar ve yetkin insanlar orada. Tipli ve asenkron bir servise ihtiyacınız varsa ve OpenAPI belgelendirmesini hazır almak istiyorsanız FastAPI'yi seçin. Uygulama form ve yönetim ekranı ağırlıklıysa, kimlik doğrulamayı, yetkileri ve bir ORM'i yazmak yerine yapılandırmayı tercih ediyorsanız Django'yu seçin. Üçü de, analitik veya veri mühendisliğinde hâlihazırda Python bilgisi olan ve bunu canlı ortama taşımak isteyen ekiplere uygundur.
Tutarlı biçimde çok düşük gecikme gerektiren CPU yoğun istek yolları için, Node.js veya Go'nun daha uygun olduğu yüksek eş zamanlılıklı gerçek zamanlı kanallar için ya da kurumunuzun operasyonel araçlarıyla birlikte zaten JVM üzerinde yürüttüğü bir alan için tercih etmeyin. Kavram kanıtı olarak yazılmış bir notebook'un kazara canlı ortam servisine dönüşmesine de izin vermeyin — yeniden yazılması konusunda ısrar ederiz.
Doğrulama, izleme ve zaman aşımı içeren bir skorlama uç noktası.
class ScoreRequest(BaseModel):
member_id: UUID
features: dict[str, float] = Field(min_length=1)
@router.post('/score', response_model=ScoreResponse)
async def score(req: ScoreRequest, model: Model = Depends(get_model)):
with tracer.start_as_current_span('churn.score'):
# bounded — a slow model degrades, it never blocks the pool
result = await asyncio.wait_for(model.predict(req.features), timeout=0.25)
return ScoreResponse(member_id=req.member_id, score=result.p, version=model.version)Python bir Odeontech ortamında nerede durur.
Teslim ettiğimiz Python kod tabanları nasıl görünür.
- Tipli ve denetlenmiş. Baştan sona tip tanımları, CI'da mypy veya pyright ve her sınırda pydantic modelleri — servis, hatalı girdiyi üç çağrı sonra patlamak yerine baştan reddeder.
- Yeniden üretilebilir ortamlar. uv veya Poetry ile kilitlenmiş bağımlılıklar, sabitlenmiş temel imajlar ve çalışma zamanında
pip installyok. Testleri geçen konteyner, çalışan konteynerdir. - Riski yansıtan testler. Alan mantığı için pytest, entegrasyonlar için sözleşme testleri ve modeller için, bir değişikliğin geriye götürmemesi gereken referans değerlere sahip bir değerlendirme paketi.
- Faydası olduğu yerde asenkron, her yerde değil. G/Ç yoğun işler asenkron çalışır; CPU yoğun işler ise istek havuzundan ayrı olarak bir worker sürecinde veya kuyrukta çalışır.
- İlk commit'ten itibaren gözlemlenebilirlik. OpenTelemetry izleri, yapılandırılmış loglar ve model servisleri için ek sinyaller: girdi kayması, skor dağılımı, sürüm başına gecikme.
- Veri hattında veri kontrolleri. Her yüklemede Great Expectations veya dengi; başarısız bir beklenti, yanlış bir sayı yayımlamak yerine DAG'i durdurur ve nöbetteki kişiyi çağırır.
- Sırlar ve kişisel veriler bilinçli ele alınır. Sırlar bir kasadan gelir, kişisel veriler asgariye indirilir ve loglarda maskelenir, KVKK ve GDPR yükümlülükleri ilk veri çekiminden önce veri sorumlusuyla birlikte gözden geçirilir.
- Biçimlendirilmiş, lint'lenmiş, tutarlı. Kaydederken ve CI'da ruff ve black çalışır; böylece incelemeler biçim yerine mantığa odaklanır.
Genellikle yanında ne teslim edilir.
- Kimlik doğrulama, girdi doğrulama, izleme, sağlık kontrolleri ve yeniden üretilebilir şekilde derlenen bir Dockerfile içeren FastAPI veya Django servis şablonu
- Her model veya LLM özelliği için, saklanan bir referans değerle CI'ya bağlanmış bir değerlendirme düzeneği
- Veri kalitesi kontrolleri ve veri kökeni belgeleriyle Airflow DAG'leri ve dbt modelleri
- MLflow ile deney takibi ve belgelenmiş bir terfi yoluna sahip model kayıt defteri
- Her servis için runbook'lar ve panolar, modele özgü sinyaller dâhil
Sık sorulan sorular
Komşu teknolojiler ve onları kullanan hizmetler.
Canlı ortama iş çıkaran Python mühendislerine mi ihtiyacınız var?
İşin bir model API'si mi, bir veri hattı mı, bir Django arka ofis uygulaması mı yoksa bir LLM özelliği mi olduğunu ve ihtiyacınız olan kıdem seviyesini bize iletin. İsimleriyle birlikte bir ekip öneririz ya da uzmanları sizin ekibinize yerleştiririz.