Uç noktalar
Embeddings
POST /embeddings ile metni anlamsal arama, kümeleme ve RAG için vektöre dönüştürün; parametreleri, yanıtı, fiyatlandırmayı ve model seçimini öğrenin.
Playground’da deneMetni anlamsal arama, kümeleme, tekilleştirme ve retrieval-augmented generation (RAG) için vektörlere dönüştürün. Uç nokta OpenAI'ın POST /embeddings yapısıyla aynıdır; bu yüzden client.embeddings.create(...) değişiklik yapmadan çalışır.
POST https://api14.com/api/v1/embeddings
İstek
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
model | string | evet | Bir embedding modeli kimliği, örn. openai/text-embedding-3-small. |
input | string veya string[] | evet | Embedding'i alınacak metin. Birçok girdiyi tek istekte işlemek için dizi gönderin. |
dimensions | integer | hayır | Çıktı vektörünün boyutu; kısaltmayı destekleyen modeller için (örn. text-embedding-3-*). |
encoding_format | string | hayır | float (varsayılan) veya base64. |
user | string | hayır | Kendi son kullanıcı kimliğiniz, olduğu gibi sağlayıcıya iletilir. |
provider | object | hayır | Sağlayıcı yönlendirme tercihleri. Bkz. Sağlayıcı yönlendirme. |
Örnek
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.embeddings.create({
"model": "openai/text-embedding-3-small",
"input": [
"The quick brown fox",
"Lorem ipsum"
]
});
console.log(result.data.map((d) => d.embedding.length));
Yanıt
{
"object": "list",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0023, -0.0091, 0.0154, "..."] }
],
"model": "openai/text-embedding-3-small",
"usage": { "prompt_tokens": 8, "total_tokens": 8, "cost": 0.00000016 }
}
data[i].index, girdinin input dizinizdeki konumuna karşılık gelir.
Model seçimi
Embedding modellerini fiyatlarıyla birlikte, API anahtarı olmadan listeleyin:
curl https://api14.com/api/v1/embeddings/models
# or, with categories and our prices:
curl "https://api14.com/api/v1/models?category=embeddings"
Farklı modellerin vektörleri birbiriyle karşılaştırılamaz. Her vektörün yanında model kimliğini saklayın ve model değiştirdiğinizde veri kümenizi yeniden embed edin.
Fiyatlandırma
Embedding'ler girdi token'ı başına, modelin listelenen fiyatı üzerinden ("$ / 1M token" olarak gösterilir) faturalandırılır. Her isteğin maliyeti usage.cost alanında (USD) döner ve bakiyenizden düşülür. Bkz. Fiyatlandırma ve faturalandırma.
İpuçları
- Girdileri toplu gönderin: 100 dizeli tek istek daha hızlıdır ve hız limitinize karşı tek istek sayılır.
- Her girdiyi modelin bağlam uzunluğunun altında tutun; daha uzun metin sağlayıcı tarafından reddedilir.
- Vektörleri normalize edin (çoğu model zaten birim uzunlukta döndürür) ve kosinüs benzerliği kullanın.
Hatalar
| Durum | Kod | Ne zaman |
|---|---|---|
| 400 | model_required / invalid_json | model eksik veya gövde bir JSON nesnesi değil. |
| 401 | invalid_api_key | Anahtar eksik veya geçersiz. |
| 402 | insufficient_balance | USD bakiyeniz 0. |
| 403 | model_not_allowed | Anahtarın model izin listesi bu modeli dışlıyor. |
| 404 | model_not_found | Bilinmeyen veya devre dışı model kimliği. |
| 429 | rate_limited | Dakikalık istek limiti aşıldı. |
Tam liste: Hatalar.