Langsung ke konten

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.

RoleGunakan untuk
system atau developerInstruksi yang membingkai percakapan.
userApa yang dikatakan pengguna. content berupa string, atau array berisi bagian-bagian untuk gambar dan dokumen.
assistantBalasan model sebelumnya, termasuk tool_calls yang dibuatnya.
toolHasil dari tool call, dengan tool_call_id yang sesuai.

Parameter

ParameterFungsinya
modelWajib. ID model dari katalog.
messagesWajib. Percakapannya.
max_tokens / max_completion_tokensBatas panjang balasan. Jaga agar tetap dalam max_output_tokens model.
temperature, top_pSampling. Nilai lebih rendah berarti lebih deterministik. Beberapa model reasoning mengabaikan atau menolaknya.
stopSatu atau beberapa string yang menghentikan generasi.
streamtrue untuk menerima token saat token dihasilkan — lihat streaming.
tools, tool_choiceFungsi yang boleh dipanggil model — lihat tool calling.
response_formatMode JSON atau skema JSON — lihat structured outputs.
reasoning_effortSeberapa 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.