İçeriğe geç

Cohere Embed 5 ve Rerank 5

Cohere'in arama modelleri LLMTR'de iki uç noktadan çağrılır. Embed 5 modelleri /v1/embeddings üzerinden metni, görseli ve ikisini birlikte taşıyan girdileri vektöre dönüştürür. Rerank 5 modelleri /v1/rerank üzerinden aday dokümanları bir sorguya göre sıralar ve istenirse her dokümanın içindeki en alakalı pasajları döndürür. İkisi de mevcut LLMTR API anahtarınızla çalışır.

Model Uç nokta Bağlam Girdiler Fiyat ($/1M token)
cohere/embed-v5.0-pro /v1/embeddings 128.000 Metin, görsel, ikisi birlikte 0,12
cohere/embed-v5.0-fast /v1/embeddings 128.000 Metin, görsel, ikisi birlikte 0,08
cohere/rerank-v5.0-pro /v1/rerank 32.768 Metin 0,05
cohere/rerank-v5.0-fast /v1/rerank 32.768 Metin 0,02

Fiyatlar 1 milyon token başına dolardır ve Cohere'in liste fiyatıyla aynıdır. Tablodaki Embed 5 fiyatı metin tokenı içindir. Görseller de token olarak sayılır ve iki modelde de 1 milyon görsel tokenı başına 0,40 $ faturalanır; görselin token sayısı çözünürlüğüyle artar. Yanıttaki usage.prompt_tokens alanı metin ve görsel tokenlarının toplamını taşır.

Rerank 5 modellerinde faturalanan token, sorgu tokenı x doküman sayısı ile dokümanların token toplamıdır. Yanıttaki usage.total_tokens bu sayıyı taşır.

Model fiyatlarına platform marjı eklenmez; marj yalnızca kredi yüklemede geçerlidir. Ayrıntı için Faturalandırma sayfasına bakın.

Terminal window
curl "$LLMTR_BASE_URL/v1/embeddings" \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "cohere/embed-v5.0-pro",
"input": ["Kira sözleşmesinin feshi için bildirim süresi otuz gündür."],
"input_type": "document"
}'

Yanıt OpenAI biçimindedir; OpenAI SDK'sı base_url değiştirilerek kullanılabilir:

from openai import OpenAI
client = OpenAI(base_url="https://llmtr.com/v1", api_key="llmtr-your_key")
docs = client.embeddings.create(
model="cohere/embed-v5.0-pro",
input=["Kira sözleşmesinin feshi için bildirim süresi otuz gündür."],
extra_body={"input_type": "document"},
)
print(len(docs.data[0].embedding)) # 2048

Sorgu ile doküman farklı biçimde vektörleştirilir. Aramada dokümanları document, sorguları query ile gönderin; ikisini aynı türle göndermek isabeti düşürür.

input_type Ne zaman
document veya search_document İndekse eklenen dokümanlar ve parçalar. Alan gönderilmezse bu kullanılır.
query veya search_query Kullanıcının arama sorgusu.
classification Bir sınıflandırıcıya girdi olacak metinler.
clustering Kümelenecek metinler.

Başka bir değer 400 invalid_request döner.

cohere/embed-v5.0-pro ve cohere/embed-v5.0-fast aynı vektör uzayını paylaşır. Koleksiyonu Pro ile indeksleyip sorguları Fast ile gönderebilirsiniz; aynı dimensions değerini kullandığınız sürece vektörler karşılaştırılabilir.

Görseller base64 data URI olarak gönderilir (data:image/png;base64,...). PNG, JPEG, WebP ve GIF kabul edilir. Görsel URL'si kabul edilmez ve 400 invalid_request döner; görseli kendi tarafınızda okuyup base64'e çevirin.

input iki biçimde gönderilebilir:

  • { "content": [...] } nesnelerinden oluşan bir liste: her nesne ayrı bir vektör üretir.
  • Tek bir içerik parçası listesi ([{ "type": "text", ... }, { "type": "image_url", ... }]): parçaların tamamı tek bir vektör üretir. Bir PDF sayfasının metnini ve görüntüsünü birlikte vektörleştirmek için bu biçimi kullanın.
import base64
from openai import OpenAI
client = OpenAI(base_url="https://llmtr.com/v1", api_key="llmtr-your_key")
with open("urun.png", "rb") as f:
image = "data:image/png;base64," + base64.b64encode(f.read()).decode()
# İki ayrı vektör: biri yalnızca görsel, biri yalnızca metin.
separate = client.embeddings.create(
model="cohere/embed-v5.0-fast",
input=[
{"content": [{"type": "image_url", "image_url": {"url": image}}]},
{"content": [{"type": "text", "text": "Beyaz tişört ve mavi kot pantolon"}]},
],
extra_body={"input_type": "document"},
)
# Tek vektör: metin ve görsel birlikte.
fused = client.embeddings.create(
model="cohere/embed-v5.0-fast",
input=[
{"type": "text", "text": "Ürün kartı: beyaz tişört, mavi kot pantolon"},
{"type": "image_url", "image_url": {"url": image}},
],
extra_body={"input_type": "document"},
)

Görselleri indekslerken document, onları metinle ararken sorgu için query kullanın.

Alan Açıklama
dimensions 256, 512, 768, 1024, 1536 veya 2048. Gönderilmezse 2048. Başka bir değer 400 invalid_request ile kabul edilen değerleri listeler. output_dimension yazımı da kabul edilir.
output_dtype float (varsayılan), int8, uint8, binary veya ubinary. binary ve ubinary vektörü bit olarak paketler; uzunluk boyutun sekizde biridir. Cohere yazımıyla tek değerli embedding_types dizisi de kabul edilir.
encoding_format float (varsayılan) veya base64. base64 yalnızca float türüne uygulanır ve vektörün float32 baytlarını döndürür; diğer türlerde vektör tamsayı listesi olarak döner. OpenAI SDK'ları bu alanı kendiliğinden base64 gönderir ve iki biçimi de okur.
truncation true (varsayılan) uzun girdiyi sondan kısaltır. false olduğunda 128.000 tokeni aşan girdi 400 ile reddedilir.
  • İstek başına en fazla 96 girdi. Daha fazlası 400 invalid_request döner; listeyi 96'lık parçalara bölün.
  • Girdi başına en fazla 128.000 token.
  • İç içe dizi ([["parça 1", "parça 2"]]) kabul edilmez.
Terminal window
curl "$LLMTR_BASE_URL/v1/rerank" \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "cohere/rerank-v5.0-pro",
"query": "Ayıplı ürünü kaç gün içinde iade edebilirim?",
"documents": [
"Ürün iadesi teslim tarihinden itibaren 14 gün içinde yapılabilir.",
"Mağazalarımız hafta içi 10:00-22:00 saatleri arasında açıktır.",
"Kusurlu ürünlerde iade süresi 30 gündür ve kargo ücreti tarafımızca karşılanır."
],
"top_n": 2,
"relevant_spans": { "mode": "enabled", "max_spans": 2 }
}'
Alan Zorunlu Açıklama
query Evet Dokümanların karşısında puanlanacak sorgu.
documents Evet Aday doküman listesi, en fazla 1000 öğe. Tablo veya JSON gibi kayıtları YAML metni olarak yazın.
top_n Hayır Yalnızca en yüksek puanlı ilk N sonucu döndürür. top_k yazımı da kabul edilir.
return_documents Hayır true olduğunda her sonuç kendi doküman metnini de taşır.
max_tokens_per_doc Hayır Bir dokümandan okunacak en fazla token. Gönderilmezse doküman model bağlamına kadar okunur; daha uzun kısmı kısaltılır.
relevant_spans Hayır Context Focus. mode zorunludur (enabled veya disabled). threshold 0 ile 1 arasındadır, varsayılan 0,1; yalnızca bu puanın üzerindeki pasajlar döner. max_spans doküman başına en fazla pasaj sayısıdır; -1 tüm pasajları döndürür.

Rerank 5 uzun bir dokümanı kısaltır, reddetmez. Bu yüzden truncation: false kabul edilmez ve 400 invalid_request döner; sınırı max_tokens_per_doc ile belirleyin.

relevant_spans ve max_tokens_per_doc yalnızca bu iki modelde geçerlidir. Başka bir rerank modeline gönderildiğinde istek 400 invalid_request ile reddedilir.

{
"object": "list",
"data": [
{
"index": 2,
"relevance_score": 0.3949,
"relevant_spans": [{ "start": 0, "end": 79, "score": 0.9950 }]
},
{
"index": 0,
"relevance_score": 0.3448,
"relevant_spans": [{ "start": 0, "end": 65, "score": 0.9935 }]
}
],
"model": "cohere/rerank-v5.0-pro",
"usage": { "total_tokens": 132 }
}

start ve end, dokümanın içindeki pasajın Unicode kod noktası (code point) cinsinden başlangıç ve bitiş konumudur; end dahil değildir. Python'da documents[i][start:end] doğrudan çalışır. JavaScript'te dizeler UTF-16 olduğu için önce Array.from(text) ile kod noktalarına ayırın:

const chars = Array.from(documents[item.index]);
const passage = chars.slice(span.start, span.end).join("");

Dil modeline dokümanların tamamı yerine bu pasajları göndermek bağlamı ve token harcamasını küçültür.

relevance_score 0 ile 1 arasındadır. Rerank 5 puanları sorgular ve alanlar arasında kalibredir: farklı sorgularda aynı eşik değerini kullanarak düşük puanlı sonuçları eleyebilirsiniz. Eşiği kendi verinizdeki birkaç örnek sorguyla belirleyin.

  • cohere/embed-v5.0-pro: en yüksek isabet; koleksiyonu indekslerken ve isabetin belirleyici olduğu aramalarda.
  • cohere/embed-v5.0-fast: daha düşük gecikme ve fiyat; sorgu tarafında, ajan döngülerinde ve yüksek hacimli aramada.
  • cohere/rerank-v5.0-pro: karmaşık sorgular ve uzun ya da alana özgü dokümanlar.
  • cohere/rerank-v5.0-fast: her sorgunun yeniden sıralandığı yüksek hacimli uçlar.
Durum Anlamı
400 invalid_request Geçersiz alan: 96'dan fazla girdi, görsel URL'si, desteklenmeyen dimensions, input_type veya output_dtype, truncation: false ile rerank, aralık dışı relevant_spans değeri. Mesaj hangi alanın hatalı olduğunu söyler.
404 model_not_found Model kimliği katalogda yok.
429 rate_limit_error API anahtarının istek limiti aşıldı.
502 provider_error Sağlayıcı isteği tamamlayamadı. Bir süre sonra tekrar deneyin.
503 model_unavailable Model geçici olarak kullanılamıyor. Bir süre sonra tekrar deneyin.

Genel istek biçimleri için Metin Gömme ve Yeniden Sıralama sayfalarına bakın.