Yeniden Sıralama (Rerank)
Bir arama sorgusu ve aday belge listesi verir, hangi belgenin sorguyu en iyi cevapladığına dair daha sağlam bir sıralama alırsın. Embedding bazlı top-K seçiminden sonraki ikinci geçiş katmanı.
Mevcut modeller
| Model | Tür |
|---|---|
verirerag (önerilen) | TEI (Text Embeddings Inference) cross-encoder, multilingual |
Cohere rerank-multilingual-v3.0 | Cohere anahtarı ekli channel'da |
Niye rerank?
Embedding similarity hızlıdır (vektör çarpımı), ama "yakın komşu" her zaman "doğru cevap" değildir. Cross-encoder her (sorgu, belge) çiftine bakıp gerçekten alaka derecesini hesaplar. Yavaştır — bu yüzden önce embedding ile 50–100'e indirir, sonra rerank ile gerçek top-3'ü seçeriz.
[embedding ile 5000 belge → top 50] → [verirerag ile top 50 → top 5]curl
bash
curl https://app.qevron.ai/v1/rerank \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "verirerag",
"query": "qevron nedir",
"documents": [
"Bugün hava güzel.",
"Qevron bir AI gateway uygulamasıdır.",
"Kanal yapısı OpenAI uyumludur.",
"Türkçe ve İngilizce desteklenir."
]
}'Yanıt
json
{
"results": [
{"index": 1, "relevance_score": 0.96, "document": {"text": "Qevron bir AI gateway uygulamasıdır."}},
{"index": 2, "relevance_score": 0.62, "document": {"text": "Kanal yapısı OpenAI uyumludur."}},
{"index": 3, "relevance_score": 0.18, "document": {"text": "Türkçe ve İngilizce desteklenir."}},
{"index": 0, "relevance_score": 0.02, "document": {"text": "Bugün hava güzel."}}
]
}index orijinal documents array'indeki konumudur — kendi belge metadata'na erişmek için bunu kullan.
Python (raw requests — OpenAI SDK rerank desteklemiyor)
python
import requests
resp = requests.post(
"https://app.qevron.ai/v1/rerank",
headers={"Authorization": "Bearer sk-..."},
json={
"model": "verirerag",
"query": "qevron nedir",
"documents": ["d1", "d2", "d3"],
},
)
results = resp.json()["results"]
# results sorted by relevance_score descRAG'da nereye girer?
python
# 1) embedding ile aday seç
candidates = vector_db.search(embed(user_query), top_k=50)
# 2) rerank ile gerçek alakayı bul
reranked = rerank("verirerag", user_query, [c.text for c in candidates])
# 3) en alakalı 3'ünü LLM'e context olarak ver
top_3 = [candidates[r["index"]] for r in reranked[:3]]Sorun çözme
- Skor hep çok düşük (< 0.05) → query muhtemelen documents'la hiç eşleşmiyor. Önce embedding sonuçlarına bak — aday seçimi yanlış olabilir.
- Yavaş → 100+ doküman çok ağır. Önce embedding ile 50'ye indir.
- OpenAI SDK çalışmıyor → Doğru. Rerank OpenAI standardında yok; raw
requests/httpxkullan.
Devam: Embedding · RAG rehberi