Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
.NET Core Web API 36 Angular 31 JavaScript Temel 19 JavaScript Orta 18 JavaScript İleri 16 TypeScript Temel 14 TypeScript Orta 14 TypeScript İleri 12 Entity Framework Core 28 Dapper 16 Git & GitHub 29 Web Güvenliği (OWASP Top 10) 21 LLM Temelleri 20 C# Temelleri 20 C# ile Nesne Yönelimli Programlama 16 C# Koleksiyonlar ve Generics 11 LINQ 17 C# Asenkron Programlama 17 C# İleri Seviye 14 C# Sürümleri 6 Çözüm Desenleri 22 SOLID ve Design Principles 12 Clean Code 14 Design Patterns 25 UML ve Modeling 18 Mimariye Giriş 9 Clean, Onion ve Hexagonal Architecture 8 Vertical Slice Architecture 6 Domain-Driven Design 13 CQRS ve Event Sourcing 10 Messaging ve Event-Driven Architecture 9 Modular Monolith 3 Microservices 11 UI Mimari Pattern'leri 9 Architecture Decision'lar 7 System Design 15 Distributed Systems Temelleri 11 Background Job'lar ve Scheduled Job'lar 11 Message Queue'larla Çalışmak 14 .NET'te Logging 10 Caching 10 Real-time Uygulamalar 9 ASP.NET Core MVC ve Razor Pages 13 CI/CD Temelleri 8 GitHub Actions 16 Jenkins 12 Web Server'lar ve Hosting 12 Deployment Stratejileri 9 Kubernetes 19 Authentication ve Authorization 18 ASP.NET Core Güvenliği 8 Frontend Güvenliği 9 API Güvenliği (OWASP API Top 10) 11 .NET ile Yapay Zeka 14 RAG 13 AI Agent'ları ve MCP 14 Test Stratejisi 4 Unit Test 13 SDLC (Software Development Life Cycle) 6 Agile Mindset 6 Scrum 11 Kanban 7 Product Management'a Giriş 9 SEO Temelleri 7 Teknik SEO 12 GEO (Generative Engine Optimization) 7 Algoritmalar ve Data Structures 22 Debugging ve Problem Çözme 13
14 yazı bulundu
.NET'te Yapay Zeka Yığını: Microsoft.Extensions.AI, VectorData, Evaluation ve Agent Framework Nerede Durur?
Yapay Zeka SERİ 01

.NET'te Yapay Zeka Yığını: Microsoft.Extensions.AI, VectorData, Evaluation ve Agent Framework Nerede Durur?

Uygulama Microsoft.Extensions.AI ve bir provider paketi alır, library yalnız Abstractions'a bağlanır; VectorData, DataIngestion, Evaluation ve Agent Framework bu IChatClient katmanının üstünde ya da yanında durur. Paket haritasını çıkarıyor, aichatweb template'ini yerel Ollama ile çalıştırıp katman sınırlarında çıkan üç gerçek hatayı düzeltiyoruz.

8 Kas 2026 11 dk 4
IChatClient Pipeline'ı: ChatClientBuilder, Middleware Sırası ve Kendi DelegatingChatClient'ın
Yapay Zeka SERİ 02

IChatClient Pipeline'ı: ChatClientBuilder, Middleware Sırası ve Kendi DelegatingChatClient'ın

ChatClientBuilder'da ilk eklenen middleware en dışta durur ve sıra davranışı değiştirir: cache function invocation'ın dışındaysa tool hiç çalışmaz, içindeyse her istekte taze veri okur. Bookstore için token bütçesi ve kişisel veri maskeleyen iki DelegatingChatClient yazıyor, streaming override'ını unutmanın sessizce veri sızdırdığını gerçek koşuyla gösteriyoruz.

8 Kas 2026 13 dk 5
ASP.NET Core'a IChatClient Bağlamak: AddChatClient, Keyed Client'lar, Options ve Secret'lar
Yapay Zeka SERİ 03

ASP.NET Core'a IChatClient Bağlamak: AddChatClient, Keyed Client'lar, Options ve Secret'lar

IChatClient'ı ASP.NET Core'a AddKeyedChatClient ile singleton olarak kaydediyor, "fast" ve "smart" iki model için keyed client, provider ve model seçimi için açılışta doğrulanan options kullanıyoruz. Standard resilience handler'ın 10 sn/30 sn varsayılanlarının LLM çağrısını üç kez baştan ürettirip 500'le bitirdiğini gerçek log'la gösteriyor, timeout ve retry'ı LLM'e göre ayarlıyoruz.

8 Kas 2026 13 dk 4
ASP.NET Core'da LLM Streaming: Minimal API, IAsyncEnumerable ve Server-Sent Events
Yapay Zeka SERİ 04

ASP.NET Core'da LLM Streaming: Minimal API, IAsyncEnumerable ve Server-Sent Events

LLM cevabını tarayıcıya akıtmanın güvenilir yolu .NET 10'un TypedResults.ServerSentEvents'i: delta, thinking, tool, usage, done ve error event'leri, sessiz bekleyişte heartbeat ve modele kadar taşınan CancellationToken. Düz IAsyncEnumerable'ın sınırlarını, kullanıcı sekmeyi kapatınca modelin gerçekten durduğunu ve token'ı vermeyi unutan endpoint'in 1024 token'ı boşa harcadığını gerçek ölçümlerle gösteriyoruz.

8 Kas 2026 16 dk 4
Sohbet Geçmişini Saklamak: Stateless API, ConversationId, EF Core ve Chat Reducer'lar
Yapay Zeka SERİ 05

Sohbet Geçmişini Saklamak: Stateless API, ConversationId, EF Core ve Chat Reducer'lar

Stateless bir provider'da sohbet geçmişini senin kodun tutar: ChatMessage'ları tool call ve tool result content'leriyle birlikte AIJsonUtilities ile JSON'a çevirip EF Core'da kullanıcı ve conversation bazında saklıyoruz. Sahiplik kontrolünü sorguya koyuyor, ConversationId ile stateful provider'ları da destekliyor ve MessageCountingChatReducer ile SummarizingChatReducer'ın gerçek çıktılarını karşılaştırıyoruz.

8 Kas 2026 13 dk 4
Tool Calling'i Production'a Taşımak: FunctionInvokingChatClient Ayarları, DI'dan Servis ve Onay Akışı
Yapay Zeka SERİ 06

Tool Calling'i Production'a Taşımak: FunctionInvokingChatClient Ayarları, DI'dan Servis ve Onay Akışı

Production'da tool'un kimin adına çalıştığı modelin argümanından değil oturumdan gelir, geri alınamaz işlemler ApprovalRequiredAIFunction ile kullanıcı onayı bekler. Scoped servis kullanan OrderTools class'ı, FunctionInvokingChatClient ayarları, tool hatası ile kullanıcı hatasının ayrımı ve iki HTTP isteğiyle yürüyen onay akışını gerçek koşularla gösteriyoruz.

8 Kas 2026 12 dk 6
LLM Maliyetini Kontrol Etmek: DistributedCachingChatClient, Rate Limiting ve Token Kullanımı
Yapay Zeka SERİ 07

LLM Maliyetini Kontrol Etmek: DistributedCachingChatClient, Rate Limiting ve Token Kullanımı

LLM maliyetini üç katmanda kontrol ediyoruz: Redis'li DistributedCachingChatClient tekrar eden soruyu sıfır token'la cevaplar, kullanıcı başına rate limiting kötüye kullanımı sınırlar, UsageDetails ile tutulan günlük token bütçesi de asıl harcamayı. Cache key'inin içeriğini, kayıtların varsayılan olarak süresiz yazıldığını ve token muhasebesinin neden cache'in içinde durması gerektiğini gerçek çıktılarla gösteriyoruz.

8 Kas 2026 12 dk 3
LLM Çağrılarını Gözlemlemek: UseOpenTelemetry, GenAI Semantic Conventions ve Aspire Dashboard
Yapay Zeka SERİ 08

LLM Çağrılarını Gözlemlemek: UseOpenTelemetry, GenAI Semantic Conventions ve Aspire Dashboard

LLM çağrılarını gözlemlemek için UseOpenTelemetry'yi UseFunctionInvocation'ın içine koyar, AddSource ile aynı source adını dinler ve trace'i Aspire Dashboard'da okursun. Gerçek bir trace'te iki dakikalık gecikmenin modelden değil Ollama kuyruğundan geldiğini buluyor, EnableSensitiveData'nın e-postayı nasıl telemetry'ye taşıdığını görüyoruz.

8 Kas 2026 11 dk 3
Microsoft.Extensions.VectorData: Vector Store Abstraction'ı ile İlk Collection
Yapay Zeka SERİ 09

Microsoft.Extensions.VectorData: Vector Store Abstraction'ı ile İlk Collection

Microsoft.Extensions.VectorData, kaydı attribute'larla tanımlayıp aynı kodla bellek içi store'dan PostgreSQL + pgvector'a geçmeni sağlar; embedding'i store'a verdiğin generator üretir. Gerçek çıktılarla filtreli aramayı, ScoreThreshold'u, distance function'ın skorun anlamını nasıl tersine çevirdiğini ve InMemory'nin yakalamadığı boyut hatasını görüyoruz.

8 Kas 2026 11 dk 3
IChatClient Kullanan Kodu Test Etmek: Fake Client, Deterministik Testler ve Microsoft.Extensions.AI.Evaluation
Yapay Zeka SERİ 10

IChatClient Kullanan Kodu Test Etmek: Fake Client, Deterministik Testler ve Microsoft.Extensions.AI.Evaluation

IChatClient kullanan kodun doğruluğunu fake bir client'la, modelsiz ve milisaniyeler içinde test edersin; modelin cevap kalitesini ise Microsoft.Extensions.AI.Evaluation ile, ayrı çalışan ve cache'lenen evaluation'larla ölçersin. Gerçek koşularda judge timeout'larını, 800 token'a takılan reasoning'i, eski cevap dönen cache'i ve prompt hatasını yakalayan Relevance skorunu görüyoruz.

8 Kas 2026 15 dk 6
Microsoft Agent Framework'e Giriş: IChatClient'tan AIAgent'a
Yapay Zeka SERİ 11

Microsoft Agent Framework'e Giriş: IChatClient'tan AIAgent'a

AsAIAgent, bir IChatClient'ı ChatClientAgent'a çevirir; agent talimatı, function invocation'ı ve AgentSession ile sohbet geçmişini üstlenir ama modeli akıllandırmaz. Aynı Bookstore asistanını önce düz IChatClient, sonra agent olarak yazıp RunAsync, RunStreamingAsync ve AgentResponse'u gerçek çıktılarla karşılaştırıyoruz.

8 Kas 2026 9 dk 6
Agent Framework'te Middleware, Context Provider ve Session Saklama
Yapay Zeka SERİ 12

Agent Framework'te Middleware, Context Provider ve Session Saklama

Agent Framework'te kart numarası gibi girdileri agent run middleware'i, başkasının siparişine erişimi function invocation middleware'i, kullanıcı tercihini de session'a yazan bir context provider yönetir; session JSON olarak saklanıp geri yüklenir. Gerçek koşuda memory'nin çalıştığını, modelin yine de yazar uydurduğunu ve reasoning'in session'ı nasıl şişirdiğini görüyoruz.

8 Kas 2026 11 dk 4
Blog Haritası