Lewati ke konten
kenari.

Messages (Anthropic)

Endpoint POST /v1/messages kompatibel dengan Anthropic Messages API, jadi bisa dipakai sebagai pengganti langsung untuk Anthropic base URL. Arahkan SDK Anthropic ke https://kenari.id/v1, ganti API key dengan key kenari (kn-...), dan respons akan mengikuti bentuk message Anthropic.

Field yang wajib ada: model dan messages. max_tokens opsional. Bila tidak dikirim, server memakai default 65.536 token.

FieldTipeKeterangan
modelstringWajib. Id model, misalnya step-3-7-flash.
max_tokensintegerOpsional. Batas token yang dihasilkan. Default 65.536 bila tidak dikirim.
messagesarrayWajib. Daftar pesan percakapan.
systemstringOpsional. Instruksi sistem.
streambooleanOpsional. Aktifkan streaming.
temperaturenumberOpsional.
top_pnumberOpsional.
top_kintegerOpsional.
stop_sequencesarrayOpsional. Daftar string penghenti.
toolsarrayOpsional. Definisi tool, lihat Tools.
tool_choiceobjectOpsional. Pengaturan pemilihan tool.
thinkingobjectOpsional. Untuk model penalaran, lihat Penalaran.

Field messages adalah array objek {role, content}. Nilai role salah satu dari user atau assistant. Nilai content bisa berupa string biasa, atau array content block (misalnya blok teks atau blok gambar).

{
"model": "step-3-7-flash",
"max_tokens": 512,
"messages": [
{"role": "user", "content": "Halo!"}
]
}

Respons mengikuti bentuk message Anthropic.

FieldTipeKeterangan
idstringId message.
typestringSelalu "message".
rolestringSelalu "assistant".
modelstringModel yang menjawab.
contentarrayDaftar content block, misalnya {"type": "text", "text": "..."}.
stop_reasonstringAlasan berhenti.
stop_sequencestringStop sequence yang cocok, atau null.
usageobject{input_tokens, output_tokens}.
{
"id": "msg_...",
"type": "message",
"role": "assistant",
"model": "step-3-7-flash",
"content": [
{"type": "text", "text": "Halo! Ada yang bisa saya bantu?"}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {"input_tokens": 9, "output_tokens": 12}
}

Anthropic SDK Python:

import anthropic
client = anthropic.Anthropic(base_url="https://kenari.id/v1", api_key="kn-...")
message = client.messages.create(
model="step-3-7-flash",
max_tokens=512,
messages=[{"role": "user", "content": "Halo!"}],
)
print(message.content[0].text)

Anthropic SDK TypeScript:

import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://kenari.id/v1", apiKey: "kn-..." });
const msg = await client.messages.create({
model: "step-3-7-flash",
max_tokens: 512,
messages: [{ role: "user", content: "Halo!" }],
});
console.log(msg.content[0].text);

curl:

Terminal window
curl https://kenari.id/v1/messages \
-H "Authorization: Bearer kn-..." \
-H "Content-Type: application/json" \
-d '{"model":"step-3-7-flash","max_tokens":512,"messages":[{"role":"user","content":"Halo!"}]}'

Set "stream": true untuk menerima respons secara bertahap sebagai server-sent events. Detail format event ada di Streaming.