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
448 yazı bulundu
LLM ve RAG: Modelin Bilmediği Veriyle Cevap Vermek
Yapay Zeka SERİ 14

LLM ve RAG: Modelin Bilmediği Veriyle Cevap Vermek

gemma3:4b'ye kitapçının iade süresini sorunca kendinden emin bir şekilde 30 gün dedi; doğrusu 21. Politikaları chunk'lara bölüyor, nomic-embed-text ile indeksliyor, en yakın chunk'ları prompt'a koyuyor ve modele context'te olmayanı bilmediğini söyletiyoruz. C#'ta bellekte minimal bir RAG ve sınırları.

6 Kas 2026 11 dk 14
LLM'lerde Embedding ve Benzerlik: Metni Anlamına Göre Aramak
Yapay Zeka SERİ 13

LLM'lerde Embedding ve Benzerlik: Metni Anlamına Göre Aramak

Embedding nedir, cosine similarity nasıl hesaplanır? nomic-embed-text ile 768 boyutlu vector'ler üretiyor, C# ve TypeScript'te elle cosine similarity yazıyor, bellekte küçük bir semantic search kurup keyword aramasıyla karşılaştırıyoruz. Olumsuz cümle tuzağı ve Türkçe sorgularla sınırlar gerçek puanlarla.

6 Kas 2026 13 dk 15
LLM Tool Calling (2): Microsoft.Extensions.AI ve Güvenli Tool'lar
Yapay Zeka SERİ 12

LLM Tool Calling (2): Microsoft.Extensions.AI ve Güvenli Tool'lar

Tool döngüsünü UseFunctionInvocation ve AIFunctionFactory'ye devrediyor, sonra asıl soruya geçiyoruz: modelin istediği her çağrı çalışmalı mı? Yetkiyi session'dan almak, veri değiştiren tool'lara onay, Zod ile argüman doğrulama ve modelin uydurduğu argümanlar gerçek qwen3:4b çıktılarıyla.

6 Kas 2026 13 dk 17
LLM Tool Calling (1): Model Fonksiyon Çağırmaz, Çağrı İster
Yapay Zeka SERİ 11

LLM Tool Calling (1): Model Fonksiyon Çağırmaz, Çağrı İster

Tool calling'de model hiçbir fonksiyonu çalıştırmaz; bir çağrı isteği üretir, çalıştırmak senin koduna kalır. Ollama'nın /api/chat endpoint'ine qwen3:4b ile ham tools isteği atıyor, sonucu tool rolüyle geri gönderiyor, döngüyü TypeScript'te ve paketsiz C#'ta kuruyoruz.

6 Kas 2026 12 dk 12
LLM ile Structured Output: JSON Mode, JSON Schema ve GetResponseAsync<T>
Yapay Zeka SERİ 10

LLM ile Structured Output: JSON Mode, JSON Schema ve GetResponseAsync<T>

Serbest metni regex ile parse etmenin neden kırıldığını, JSON mode'un neden yetmediğini ve JSON schema'nın biçimi nasıl sabitlediğini görüyoruz. TypeScript'te Zod, C#'ta GetResponseAsync<T> kullanıyor, schema'ya uyan ama yanlış bir cevabı yakalıyor ve iki katmanlı doğrulama kuruyoruz.

6 Kas 2026 11 dk 12
LLM için Prompt Yazmak (2): Adım Adım Düşündürmek ve Reasoning Modelleri
Yapay Zeka SERİ 09

LLM için Prompt Yazmak (2): Adım Adım Düşündürmek ve Reasoning Modelleri

Adım adım düşün demek doğru cevabı garanti eder mi? Tuzaklı bir sipariş hesabını gemma3:4b'ye üç biçimde soruyor, qwen3:4b'nin think parametresiyle düşünmeyi cevaptan ayırıyor, C#'ta ReasoningOptions kullanıyor ve düşünmenin token ile süre olarak bedelini ölçüyoruz.

6 Kas 2026 11 dk 16
LLM için Prompt Yazmak (1): Açık Talimat, Ayraçlar ve Few-shot
Yapay Zeka SERİ 08

LLM için Prompt Yazmak (1): Açık Talimat, Ayraçlar ve Few-shot

Prompt bir spesifikasyondur: context, görev, girdi, biçim ve kısıt. Kötü ve iyi prompt'u aynı yorum üzerinde token sayılarıyla karşılaştırıyor, ayraçlarla talimatı veriden ayırıyor, few-shot örneklerin bir sınıflandırıcıyı nasıl düzelttiğini ve nasıl yanılttığını gemma3:4b'nin gerçek çıktılarıyla görüyoruz.

6 Kas 2026 10 dk 9
LLM Cevabında Streaming: NDJSON, IAsyncEnumerable ve İlk Token Süresi
Yapay Zeka SERİ 07

LLM Cevabında Streaming: NDJSON, IAsyncEnumerable ve İlk Token Süresi

Streaming cevabı hızlandırmaz, beklemeyi kısaltır. Ollama'nın NDJSON ve OpenAI uyumlu SSE stream'lerine curl ile bakıyor, C#'ta GetStreamingResponseAsync ve TypeScript'te async iterator ile cevabı okuyup ilk token süresini ölçüyor, stream'i iki SDK'da iptal edip davranış farkını görüyoruz.

6 Kas 2026 11 dk 12
LLM'lerde Sampling: Temperature, Top-p, Top-k ve Seed
Yapay Zeka SERİ 06

LLM'lerde Sampling: Temperature, Top-p, Top-k ve Seed

Aynı soruya neden farklı cevaplar geliyor? logprobs ile modelin aday token'larına bakıp temperature, top-k ve top-p'nin bu dağılımı nasıl değiştirdiğini hesaplıyor, seed'in tekrarlanabilirlik sözünü ve sınırlarını, num_predict ve stop sequence'leri gemma3:4b üzerinde gerçek çıktılarla görüyoruz.

6 Kas 2026 12 dk 12
LLM Mesaj Rolleri ve System Prompt: Bookstore Asistanına Kimlik Vermek
Yapay Zeka SERİ 05

LLM Mesaj Rolleri ve System Prompt: Bookstore Asistanına Kimlik Vermek

system, user ve assistant rolleri ne işe yarar ve Gemma 3'ün chat template'i onları modele nasıl taşır? Bookstore asistanına bir system prompt yazıyor, iyi bir system prompt'un parçalarını görüyor, istemcide uydurulan bir assistant mesajının modeli nasıl kandırdığını ve kullanıcı metnini talimattan ayırmanın prompt injection'a karşı ilk adım olarak ne kadar işe yaradığını gerçek çıktılarla deniyoruz.

6 Kas 2026 10 dk 11
LLM Context Window: Model Neyi Hatırlar, Neyi Sessizce Keser?
Yapay Zeka SERİ 04

LLM Context Window: Model Neyi Hatırlar, Neyi Sessizce Keser?

LLM API'leri stateless'tır; sohbet geçmişini her istekte sen gönderirsin ve her tur faturayı büyütür. Gemma 3 128K token desteklese de Ollama varsayılan olarak 4096'lık bir pencere ayırıyor ve 4498 token'lık bir prompt'u hiçbir hata vermeden 2051 token'a indiriyor. num_ctx'i C# ve TypeScript'te ayarlıyor, geçmişi kırpma ve özetlemeyle yönetmeyi gerçek çıktılarla deniyoruz.

6 Kas 2026 11 dk 10
LLM'lerde Token ve Tokenizer: Türkçe Neden Daha Çok Token Tutar?
Yapay Zeka SERİ 03

LLM'lerde Token ve Tokenizer: Türkçe Neden Daha Çok Token Tutar?

Token nedir, BPE ve SentencePiece metni nasıl böler? Ollama'nın prompt_eval_count sayacıyla aynı cümlenin Türkçesini ve İngilizcesini gemma3:4b ve qwen3:4b tokenizer'larında ölçüyor; sayıların, GUID'lerin, JSON'un ve kodun kaç token tuttuğunu, chat template'in görünmeyen token'larını ve token'ın maliyet, limit ve hıza etkisini gerçek sayılarla görüyoruz.

6 Kas 2026 9 dk 10
Blog Haritası