chatpassing, 6.6s/v1/ai:chatex/chatno cache2 paramschecking key…// npm i zpi-sdk
import { ZpiClient } from "zpi-sdk";
const client = new ZpiClient({ apiKey: "zpi_xxxxxxxxxxxxxxxxxxxxxxxx" });
const data = await client.run("ai:chatex", "chat", {
"messages": [
{
"role": "system",
"content": "Kamu adalah asisten yang ramah dan ringkas. Selalu jawab dalam bahasa Indonesia."
},
{
"role": "user",
"content": "Siapa nama kamu dan pakai model apa?"
}
]
});
console.log(data);curl -X POST "https://api.zpi.web.id/v1/ai:chatex/chat" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "content-type: application/json" \
--data '{"messages":[{"role":"system","content":"Kamu adalah asisten yang ramah dan ringkas. Selalu jawab dalam bahasa Indonesia."},{"role":"user","content":"Siapa nama kamu dan pakai model apa?"}],"stream":false}'/v1/ai:chatex/chatOpenAI-compatible chat completions (dual mode stream/non-stream).messagesarrayrequiredin bodysystem role memakai PERSONA OVERRIDE - bisa mengganti identitas default upstream. Min 1 item, harus ada role user.streambooleanoptionalin bodycurl -X POST "https://api.zpi.web.id/v1/ai:chatex/chat" \
-H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"{
"id": "chatcmpl-2Z4jj1j65Xj4jXzUjQBbQ",
"model": "openai/gpt-5.4",
"usage": {
"total_tokens": 193,
"prompt_tokens": 159,
"completion_tokens": 34
},
"object": "chat.completion",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Saya **Zapi AI**, asisten pintar buatan **Zapi (Zest API)**. \nSoal “pakai model apa”, saya menjawab sesuai persona ini: **Zapi AI**."
},
"finish_reason": "stop"
}
],
"created": 1782118433
}