Lewati ke konten
kenari.

Embeddings

kenari menyediakan endpoint embeddings yang kompatibel dengan OpenAI Embeddings. Endpoint ini hanya melayani model yang ditandai sebagai model embedding di katalog. Memanggilnya dengan model chat biasa akan mengembalikan status 400.

Daftar model embedding bersifat dinamis. Jangan meng-hardcode id dari tulisan ini: panggil GET /v1/models?modality=embedding (publik, tanpa key) untuk membaca id yang sedang aktif. GET /v1/models tanpa parameter hanya mendaftar model chat, sehingga model embedding, rerank, dan moderation tidak muncul di sana.

Per 29 Juli 2026 katalog publik menampilkan bge-m3 dan qwen3-embedding-0.6b sebagai model embedding yang aktif. Contoh di bawah memakai bge-m3. Kalau suatu saat id itu tidak lagi dijual, ganti dengan id yang dikembalikan ?modality=embedding.

POST /v1/embeddings

Kirim input dan model, gateway mengembalikan vektor embedding untuk setiap teks input.

FieldTipeWajibKeterangan
modelstringyaId model embedding dari katalog.
inputstring atau array of stringyaSatu teks, atau beberapa teks sekaligus dalam satu array.

Penagihan dihitung per token input, dari jumlah karakter seluruh input (kira-kira empat karakter per token, dibulatkan ke atas), lalu dipotong dari saldo Rupiah. Biaya dihitung sebelum permintaan diteruskan ke provider, karena beberapa provider embedding tidak melaporkan jumlah token yang dipakai. Lihat Penagihan untuk detail saldo dan pemotongan.

Response mengikuti bentuk OpenAI Embeddings: object bernilai "list", model mengembalikan id model yang kamu minta (bukan nama internal provider), dan array data berisi satu entri per input dengan index dan embedding (array angka).

{
"object": "list",
"model": "bge-m3",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0123, -0.0456] }
]
}
Terminal window
curl https://kenari.id/v1/embeddings \
-H "Authorization: Bearer kn-..." \
-H "Content-Type: application/json" \
-d '{"model":"bge-m3","input":"kucing duduk di atas karpet"}'
from openai import OpenAI
client = OpenAI(
base_url="https://kenari.id/v1",
api_key="kn-...",
)
result = client.embeddings.create(
model="bge-m3",
input="kucing duduk di atas karpet",
)
print(result.data[0].embedding[:5])
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://kenari.id/v1",
apiKey: "kn-...",
});
const result = await client.embeddings.create({
model: "bge-m3",
input: "kucing duduk di atas karpet",
});
console.log(result.data[0].embedding.slice(0, 5));