Senaryo 2
RAG tabanlı ürün asistanı
Sorduğunuz soruya vector retrieval ile en yakın 5 ürünü çekip chat modeline bağlam olarak
verir. Yanıt streaming olarak token-token gelir. Her çağrı vector.query_log'a yazılır.
Retrieval: ollama / bge-m3
Chat: ollama / qwen2.5:3b-instruct-q4_K_M
Arkada calisan T-SQL 21-rag-assistant.sql
Retrieval katmani. Sorunun embedding'i uretilir, VECTOR_SEARCH top-K urunu getirir, sonuc metni modele baglam olarak verilir.
DECLARE @question NVARCHAR(MAX) = N'1500 TL altı ofis için ergonomik bir mouse önerir misin?';
DECLARE @top_k INT = 5;
-- ----------------------------------------------------------------------------
-- 1) Soruyu embed et
-- ----------------------------------------------------------------------------
DECLARE @vec_json NVARCHAR(MAX);
EXEC ops.sp_embed_text @text = @question, @vec_json = @vec_json OUTPUT;
DECLARE @q VECTOR(1024) = CAST(@vec_json AS VECTOR(1024)); -- ollama bge-m3 1024
-- ----------------------------------------------------------------------------
-- 2) Top-K ürün — DiskANN approximate kNN
-- ----------------------------------------------------------------------------
DECLARE @context NVARCHAR(MAX);
DECLARE @used_ids NVARCHAR(MAX);
;WITH hits AS (
SELECT * FROM VECTOR_SEARCH(
TABLE = vector.product_embedding,
COLUMN = embedding_bge_1024,
SIMILAR_TO = @q,
METRIC = 'cosine',
TOP_N = @top_k)
),
joined AS (
SELECT
h.product_id,
p.name,
cat.name AS cat_name,
p.price,
LEFT(p.description_tr, 140) AS preview,
h.distance
FROM hits h
JOIN shop.product p ON p.product_id = h.product_id
JOIN shop.product_category cat ON cat.category_id = p.category_id
)
SELECT
@context = STRING_AGG(
CAST('[#' + CAST(product_id AS NVARCHAR(10)) + '] ' + name + N' — ' + cat_name + N' — 'Tam betik: sql/21-rag-assistant.sql
Örnek
Sorularınız burada birikir
Her soru, verilen cevap, kullanılan ürün numaraları, sağlayıcı adı ve süre
vector.query_log tablosuna yazılır. Yukarıdaki örneklerden birine
tıklayın, sorduğunuz her şey bu bölümde listelenecek.
Başkalarının soruları burada görünmez.
