Embeddings ve Vector Search: RAG Temelleri
Metni vektöre dönüştürme, semantic search, RAG mimarisi. Custom GPT Knowledge altında bunlar var.
Şükrü Yusuf KAYA
10 min read
AdvancedRAG = Retrieval-Augmented Generation#
Sorun: Büyük modellerin bilgi sınırı var (training cutoff). Çözüm: soruyu cevaplamadan önce ilgili dokümanları getir, modele bağlam olarak ver.
3 adım:
- Embed: metni 1536-boyutlu vektöre dönüştür
- Search: kullanıcı sorusunu da embed et, en yakın K vektörü bul (cosine similarity)
- Generate: bulunan dokümanları + soruyu modele ver, yanıt üret
javascript
import OpenAI from "openai";const openai = new OpenAI(); // 1. Doküman parçala (chunking)const docs = [ "Müşteri destek tonu: empati öncelikli, çözüm odaklı.", "İlk yanıt 4 saat içinde verilir (iş günü).", "SLA ihlali halinde otomatik ücret iadesi yapılır.",]; // 2. Her chunk için embedding üretconst embeddings = await Promise.all( docs.map(async (text) => { const res = await openai.embeddings.create({ model: "text-embedding-3-large", input: text, }); return { text, vector: res.data[0].embedding }; })); // 3. Bunları vector DB'ye kaydet (Pinecone, Weaviate, pgvector, Qdrant)// (basitlik için: in-memory) // 4. Sorgu zamanı: kullanıcı sorusunu embed etconst query = "Yanıt süresi nedir?";const queryEmbedding = (await openai.embeddings.create({ model: "text-embedding-3-large", input: query,})).data[0].embedding; // 5. Cosine similarity ile en yakın chunk'ı bulfunction cosineSim(a, b) { const dot = a.reduce((s, v, i) => s + v * b[i], 0); const magA = Math.sqrt(a.reduce((s, v) => s + v * v, 0)); const magB = Math.sqrt(b.reduce((s, v) => s + v * v, 0)); return dot / (magA * magB);} const ranked = embeddings .map(e => ({ ...e, score: cosineSim(queryEmbedding, e.vector) })) .sort((a, b) => b.score - a.score); const topK = ranked.slice(0, 2);console.log("En ilgili chunk'lar:", topK.map(t => t.text)); // 6. Modele bağlam verconst finalAnswer = await openai.chat.completions.create({ model: "gpt-5", messages: [ { role: "system", content: "Bağlamdaki bilgilerle cevapla." }, { role: "user", content: `Bağlam:\n${topK.map(t => "- " + t.text).join("\n")}\n\nSoru: ${query}` } ]});Embeddings + cosine similarity + RAG — minimal implementasyon.
💡 Üretim RAG için ek katmanlar
(1) Vector DB (Pinecone, Weaviate, pgvector). (2) Hybrid search: vektör + keyword (BM25). (3) Reranker: top-50 → reranker → top-5. (4) Caching: aynı sorgu için cache. (5) Citation: yanıtla beraber kaynak doküman ID'leri. Modül 11.7 - Modül 13 arasında bunları detaylı işliyoruz.
Özet#
✓ RAG = embed + search + generate
✓ Embedding model: text-embedding-3-large (3072 boyut)
✓ Vector DB üretimde şart
✓ Custom GPT Knowledge = arka planda RAG
Sıradaki ders: Token Ekonomisi — maliyet optimizasyonu.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
Related Content
Modül 1: Başlangıç ve Temeller
ChatGPT Nedir? Tarihçe, Evrim ve Bugünün Manzarası
Start LearningModül 1: Başlangıç ve Temeller
Hesap Açma ve Plan Karşılaştırması: Free, Plus, Pro, Team, Enterprise
Start LearningModül 1: Başlangıç ve Temeller
Arayüz Anatomisi: Her Buton, Menü ve Ayar Açıklamalı
Start LearningConnected pillar topics