Skip to content

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

ModelTür
verirerag (önerilen)TEI (Text Embeddings Inference) cross-encoder, multilingual
Cohere rerank-multilingual-v3.0Cohere 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 desc

RAG'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/httpx kullan.

Devam: Embedding · RAG rehberi

Qevron — AI gateway. Arpanet / OpenAI / Anthropic / Gemini uyumlu.