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
13 yazı bulundu
Production RAG Mimarisi: Ingestion ve Query Pipeline'ları, Minimal RAG Neden Çöker?
Yapay Zeka SERİ 01

Production RAG Mimarisi: Ingestion ve Query Pipeline'ları, Minimal RAG Neden Çöker?

Minimal RAG gerçek doküman setinde 30 sorunun yalnız 20'sini doğru cevapladı; hataların çoğu modelden değil retrieval, chunking, eski veri ve yetkisiz dokümandan geliyor. Bookstore'un Türkçe dokümanlarıyla hataları sınıflandırıyor, ingestion ve query pipeline'larını ayırıyor ve yetki filtresi ile trace log'u olan bir query pipeline iskeleti kuruyoruz.

8 Kas 2026 14 dk 3
Embedding Model Seçimi: Boyut, Çok Dillilik, Türkçe ve Maliyet
Yapay Zeka SERİ 02

Embedding Model Seçimi: Boyut, Çok Dillilik, Türkçe ve Maliyet

Embedding modelini leaderboard ortalamasına göre değil, kendi dilinde ve kendi soru setinde ölçerek seç: nomic-embed-text aynı içerikte İngilizcede 30 sorunun 26'sında, Türkçede yalnız 16'sında doğru bölümü ilk sıraya koydu. recall@k ve MRR ile ölçüyor; prefix, Matryoshka boyutu, storage, sessiz kesilme ve model değişiminde eski vektörlerin riskini gerçek çıktılarla inceliyoruz.

8 Kas 2026 13 dk 2
Doküman Ingestion: PDF, HTML ve Markdown'dan Temiz Metin, Metadata ve Artımlı Güncelleme
Yapay Zeka SERİ 03

Doküman Ingestion: PDF, HTML ve Markdown'dan Temiz Metin, Metadata ve Artımlı Güncelleme

RAG'in kalitesi ingestion'da başlar: PDF'ten gelen "fi" ligature'ı Contains("fiyat") aramasını false yaptı, sayfa numarası bir bölümün ortasına girdi, HTML menüsü chunk'a karıştı. Temiz metin, chunk başına metadata, Microsoft.Extensions.DataIngestion (preview) ile pipeline ve kısmi başarı, içerik hash'iyle artımlı güncelleme ve silinen dokümanların index'ten çıkarılması.

8 Kas 2026 14 dk 2
Chunking Stratejileri: Token-based, Header-based, Semantic, Overlap ve Contextual Retrieval
Yapay Zeka SERİ 04

Chunking Stratejileri: Token-based, Header-based, Semantic, Overlap ve Contextual Retrieval

Tek bir en iyi chunk size yok; stratejiyi recall ile context bütçesini birlikte ölçerek seç. Aynı 30 Türkçe soruda 64 token'lık pencereler doğru bölümü 19, başlık tabanlı chunk'lar 16 kez ilk sıraya koydu; 256 token recall@5'i 28'e çıkardı ama prompt'u 1.122 token'a büyüttü. Sabit boyut, overlap, semantic, parent-child ve gemma3:4b ile Contextual Retrieval'ı gerçek ölçümlerle karşılaştırıyoruz.

8 Kas 2026 10 dk 2
Vector Database Seçimi: pgvector, SQL Server 2025, Qdrant, Azure AI Search ve Elasticsearch
Yapay Zeka SERİ 05

Vector Database Seçimi: pgvector, SQL Server 2025, Qdrant, Azure AI Search ve Elasticsearch

Önce mevcut veritabanının vector desteğini dene; ANN index'ini de kendi verinde recall ölçerek ayarla. 100.000 vektörlük pgvector tablosunda exact arama 237 ms, HNSW 1 ms sürdü ama varsayılan ef_search ile recall 0.83 kaldı; filtreli sorguda index'e zorlanan HNSW sıfır satır döndürdü, iterative scan 10 satırı buldu. HNSW, IVFFlat, DiskANN, metric seçimi ve beş seçeneğin karşılaştırması.

8 Kas 2026 12 dk 2
EF Core ile Vector Search (1): SQL Server 2025 vector Tipi, VectorDistance ve EF Core 11 VectorSearch
Yapay Zeka SERİ 06

EF Core ile Vector Search (1): SQL Server 2025 vector Tipi, VectorDistance ve EF Core 11 VectorSearch

EF Core 10'da SQL Server 2025 vector kolonu SqlVector<float> property ve HasColumnType("vector(768)") ile map edilir, arama EF.Functions.VectorDistance ile exact yapılır. Kodu derleyip EF Core'un ürettiği gerçek SQL'i inceliyoruz: projection'sız sorgunun vektörü de çektiğini, preview vector index ve VECTOR_SEARCH'ü ve EF Core 11'in getirdiklerini. SQL Server 2025 bu yazı için çalıştırılmadı.

8 Kas 2026 10 dk 2
EF Core ile Vector Search (2): PostgreSQL pgvector, HNSW Index ve Dapper
Yapay Zeka SERİ 07

EF Core ile Vector Search (2): PostgreSQL pgvector, HNSW Index ve Dapper

Pgvector.EntityFrameworkCore ile Vector property, HNSW index ve CosineDistance sıralaması birkaç satırda kurulur; asıl risk sessiz hatalarda: vector_l2_ops ile kurulan index cosine sorgusunda hiç kullanılmadı, ReloadTypes unutulunca Npgsql vektörü yazamadı. Yetki filtresiyle arama, EXPLAIN kontrolü, halfvec ile storage'ı yarıya indirmek (30 sorunun 30'unda aynı top-5) ve aynı sorgu Dapper ile.

8 Kas 2026 12 dk 3
Hybrid Search ve Reciprocal Rank Fusion: Keyword ile Vector Aramayı Birleştirmek
Yapay Zeka SERİ 08

Hybrid Search ve Reciprocal Rank Fusion: Keyword ile Vector Aramayı Birleştirmek

Vector search ürün kodu, ISBN ve nadir terimleri kaçırır; PostgreSQL tsvector (turkish) ile keyword aramayı ekleyip iki listeyi skorla değil sırayla, Reciprocal Rank Fusion ile birleştirmek bu açığı kapatır. EF Core, tek SQL sorgusu ve VectorData HybridSearchAsync ile kuruyor, 30 soruda vector, keyword ve hybrid recall'unu ölçüyoruz.

8 Kas 2026 14 dk 4
Reranking ve Query Transformation: Cross-encoder, Sorgu Yeniden Yazma ve HyDE
Yapay Zeka SERİ 09

Reranking ve Query Transformation: Cross-encoder, Sorgu Yeniden Yazma ve HyDE

Geniş getir, dar ver: hybrid search'ün 10 adayını soru ve chunk'ı birlikte okuyan bir reranker'dan geçirmek, 30 soruda birinci sıradaki doğru chunk sayısını 15'ten 23'e çıkardı; bedeli soru başına 3,2 saniye. Sohbette soru yeniden yazma, multi-query, HyDE ve self-query'yi aynı setle ölçüp ne zaman zarar verdiklerini gösteriyoruz.

8 Kas 2026 14 dk 5
Prompt'a Context Koymak: Citation, Context Bütçesi ve Düşük Skorda "Bilmiyorum"
Yapay Zeka SERİ 10

Prompt'a Context Koymak: Citation, Context Bütçesi ve Düşük Skorda "Bilmiyorum"

Chunk'ları kısa id'li bloklar halinde, token bütçesine sığdırıp prompt'a koymak, cevabı ve kaynak id'lerini structured output ile almak ve id'leri kodla doğrulamak citation'ı güvenilir kılar; ama geçerli citation doğru cevap demek değil. Türkçe skorlar üst üste bindiği için modelden önce "bilmiyorum" eşiği yalnız bariz durumları yakalıyor.

8 Kas 2026 12 dk 4
RAG'de Yetki ve Güvenlik: Doküman Seviyesi Permission, Multi-tenant Filtre ve Indirect Prompt Injection
Yapay Zeka SERİ 11

RAG'de Yetki ve Güvenlik: Doküman Seviyesi Permission, Multi-tenant Filtre ve Indirect Prompt Injection

RAG'de yetki prompt'taki bir rica değil, retrieval sorgusunun WHERE cümlesidir: "bunu gösterme" denen gemma3:4b personel indirimini müşteriye söyledi. Tenant ve ACL'i token'dan alıp EF Core 10 isimli query filter'larıyla sorguya koyuyor, HNSW filtresinin 10 yerine 1 sonuç döndürmesini ve zehirli bir okur yorumunun kart numarası istemesini ölçüyoruz.

8 Kas 2026 11 dk 4
RAG'i Ölçmek: Recall@k, MRR, nDCG, Faithfulness ve Groundedness
Yapay Zeka SERİ 12

RAG'i Ölçmek: Recall@k, MRR, nDCG, Faithfulness ve Groundedness

RAG'i ölçmek, retrieval'ı etiketli kaynakla (recall@k, MRR, nDCG) ve generation'ı yargıç bir LLM'le (groundedness, relevance) ayrı ayrı ölçmek demek. 30 soruda dört retrieval yöntemini C#'ta karşılaştırıyor, Microsoft.Extensions.AI.Evaluation'ın soruyu ıskalayan bir cevaba 5 verdiğini gösteriyor ve response cache'le 1 dk 42 sn'lik testi 1,1 sn'ye indiriyoruz.

8 Kas 2026 12 dk 4
Blog Haritası