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
7 yazı bulundu #microsoft-extensions-ai
MCP Client Yazmak: McpClient, Tool'ları IChatClient ve Agent'a Bağlamak, Elicitation
Yapay Zeka SERİ 12

MCP Client Yazmak: McpClient, Tool'ları IChatClient ve Agent'a Bağlamak, Elicitation

C#'ta MCP client'ı McpClient.CreateAsync ile stdio ya da HTTP transport üzerinden kurarsın; ListToolsAsync'in döndürdüğü McpClientTool bir AIFunction olduğu için doğrudan IChatClient'a ve MAF agent'ına verilebilir. İki server'daki aynı adlı tool'ları önekle ayırıyor, tool tanımlarını parmak iziyle pinliyor, yerel qwen3:4b ile gerçek tool çağrılarını ve server'ın onay isteğini SDK'nın MRTR turlarıyla nasıl karşıladığını görüyoruz.

8 Kas 2026 12 dk 5
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
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
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
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
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
.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
Blog Haritası