Chat Completions
POST /v1/chat/completions adalah endpoint teks yang kompatibel dengan OpenAI, dan endpoint yang dipahami oleh sebagian besar SDK, framework, dan tool. Setiap model teks di katalog dapat dipanggil melalui endpoint ini — termasuk Claude, Gemini, dan model open-weight — sehingga satu bentuk request mencakup semuanya.
Request
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.inferray.com/v1",
apiKey: process.env.INFERRAY_API_KEY,
});
const completion = await client.chat.completions.create({
model: "claude-sonnet-4-6",
messages: [
{ role: "system", content: "You are a concise assistant." },
{ role: "user", content: "Name three uses for a quartz crystal." },
],
max_tokens: 300,
});
console.log(completion.choices[0].message.content);
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.inferray.com/v1", api_key=os.environ["INFERRAY_API_KEY"])
completion = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Name three uses for a quartz crystal."},
],
max_tokens=300,
)
print(completion.choices[0].message.content)
Messages
messages adalah seluruh percakapan, yang paling lama terlebih dahulu. Endpoint ini tidak menyimpan state antar-panggilan, jadi kirimkan riwayat yang ingin Anda perlihatkan kepada model setiap saat.
| Role | Gunakan untuk |
|---|---|
system atau developer | Instruksi yang membingkai percakapan. |
user | Apa yang dikatakan pengguna. content berupa string, atau array berisi bagian-bagian untuk gambar dan dokumen. |
assistant | Balasan model sebelumnya, termasuk tool_calls yang dibuatnya. |
tool | Hasil dari tool call, dengan tool_call_id yang sesuai. |
Parameter
| Parameter | Fungsinya |
|---|---|
model | Wajib. ID model dari katalog. |
messages | Wajib. Percakapannya. |
max_tokens / max_completion_tokens | Batas panjang balasan. Jaga agar tetap dalam max_output_tokens model. |
temperature, top_p | Sampling. Nilai lebih rendah berarti lebih deterministik. Beberapa model reasoning mengabaikan atau menolaknya. |
stop | Satu atau beberapa string yang menghentikan generasi. |
stream | true untuk menerima token saat token dihasilkan — lihat streaming. |
tools, tool_choice | Fungsi yang boleh dipanggil model — lihat tool calling. |
response_format | Mode JSON atau skema JSON — lihat structured outputs. |
reasoning_effort | Seberapa keras model reasoning berpikir — lihat reasoning. |
Parameter diteruskan ke model sebagaimana Anda mengirimnya. Model yang tidak mendukung suatu parameter dapat mengabaikannya atau mengembalikan 400 yang menyatakannya; halaman model mencantumkan apa saja yang didukungnya.
Respons
{
"id": "chatcmpl-8f2c...",
"object": "chat.completion",
"created": 1767225600,
"model": "claude-sonnet-4-6",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "1. Oscillators in watches..." },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 31,
"completion_tokens": 64,
"total_tokens": 95,
"prompt_tokens_details": { "cached_tokens": 0 },
"completion_tokens_details": { "reasoning_tokens": 0 },
"cost": 0.001053,
"cost_details": { "input_cost": 0.000093, "output_cost": 0.00096, "total_cost": 0.001053 }
}
}
finish_reason bernilai stop saat model selesai, length saat mencapai max_tokens, tool_calls saat model membutuhkan hasil tool, dan content_filter saat model menolak. model selalu berupa ID yang Anda minta.
usage adalah dasar penagihan permintaan Anda: token input, token output, dan jika berlaku, token cache dan token reasoning. usage.cost adalah jumlah yang dikenakan untuk permintaan ini dalam dolar AS, dengan diskon Anda sudah diterapkan, dan cost_details merinci jumlah tersebut. Lihat penggunaan dan biaya untuk kolom setiap endpoint.
SDK dan bahasa lain
Apa pun yang mendukung format OpenAI dapat digunakan dengan base URL https://api.inferray.com/v1: SDK resmi OpenAI di semua bahasa, Vercel AI SDK, LangChain, LlamaIndex, dan HTTP biasa.