Endpoint
Embeddings
POST /embeddings mengubah teks menjadi vektor untuk pencarian semantik, clustering, deduplikasi, dan RAG, dengan format yang sama seperti OpenAI.
Coba di playgroundUbah teks menjadi vektor untuk pencarian semantik, clustering, deduplikasi, dan retrieval-augmented generation (RAG). Endpoint ini memiliki bentuk yang sama dengan POST /embeddings milik OpenAI, sehingga client.embeddings.create(...) bekerja tanpa perubahan.
POST https://api14.com/api/v1/embeddings
Request
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
model | string | ya | ID model embeddings, mis. openai/text-embedding-3-small. |
input | string atau string[] | ya | Teks yang akan di-embed. Kirim array untuk meng-embed banyak input dalam satu request. |
dimensions | integer | tidak | Ukuran vektor keluaran, untuk model yang mendukung pemendekan (mis. text-embedding-3-*). |
encoding_format | string | tidak | float (default) atau base64. |
user | string | tidak | ID pengguna akhir Anda sendiri, diteruskan ke upstream. |
provider | object | tidak | Preferensi routing provider. Lihat Provider routing. |
Contoh
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));
Respons
{
"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 sesuai dengan posisi input pada array input Anda.
Memilih model
Tampilkan daftar model embeddings beserta harganya, tanpa API key:
curl https://api14.com/api/v1/embeddings/models
# or, with categories and our prices:
curl "https://api14.com/api/v1/models?category=embeddings"
Vektor dari model yang berbeda tidak dapat dibandingkan. Simpan ID model di samping setiap vektor dan embed ulang korpus Anda saat berganti model.
Harga
Embeddings ditagih per token input sesuai harga model yang tercantum, ditampilkan sebagai "$ / 1M token". Biaya tiap request dikembalikan di usage.cost (USD) dan dipotong dari saldo Anda. Lihat Harga dan penagihan.
Tips
- Kelompokkan input: satu request dengan 100 string lebih cepat dan dihitung sebagai satu request terhadap batas laju Anda.
- Jaga setiap input tetap di bawah panjang konteks model; teks yang lebih panjang ditolak oleh upstream.
- Normalisasi vektor (kebanyakan model sudah mengembalikan panjang satuan) dan gunakan cosine similarity.
Error
| Status | Kode | Kapan |
|---|---|---|
| 400 | model_required / invalid_json | model tidak ada atau body bukan objek JSON. |
| 401 | invalid_api_key | Key tidak ada atau tidak valid. |
| 402 | insufficient_balance | Saldo USD Anda $0. |
| 403 | model_not_allowed | Allowlist model pada key tidak mencakup model ini. |
| 404 | model_not_found | ID model tidak dikenal atau dinonaktifkan. |
| 429 | rate_limited | Batas request per menit terlampaui. |
Daftar lengkap: Error.