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.
Model yang tersedia
Section titled “Model yang tersedia”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.
Endpoint
Section titled “Endpoint”POST /v1/embeddings
Kirim input dan model, gateway mengembalikan vektor embedding untuk setiap teks input.
Parameter request
Section titled “Parameter request”| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
model | string | ya | Id model embedding dari katalog. |
input | string atau array of string | ya | Satu teks, atau beberapa teks sekaligus dalam satu array. |
Penagihan
Section titled “Penagihan”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.
Bentuk response
Section titled “Bentuk response”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] } ]}Contoh
Section titled “Contoh”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"}'Python (OpenAI SDK)
Section titled “Python (OpenAI SDK)”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])JavaScript (OpenAI SDK)
Section titled “JavaScript (OpenAI SDK)”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));