Langsung ke konten

Anthropic Messages

POST /v1/messages menggunakan format Anthropic Messages, sehingga Anthropic SDK dan tool yang dibangun di atasnya — termasuk Claude Code — berfungsi hanya dengan mengganti base URL dan key. Setiap model teks meresponsnya, bukan hanya Claude.

Request

Anthropic SDK menambahkan /v1/messages sendiri, sehingga base URL-nya tidak memiliki /v1:

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.inferray.com",
  apiKey: process.env.INFERRAY_API_KEY,
});

const message = await client.messages.create({
  model: "claude-opus-4-8",
  max_tokens: 1024,
  system: "You are a concise assistant.",
  messages: [{ role: "user", content: "Explain idempotency in one paragraph." }],
});

console.log(message.content[0].text);
import os
import anthropic

client = anthropic.Anthropic(base_url="https://api.inferray.com", api_key=os.environ["INFERRAY_API_KEY"])

message = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain idempotency in one paragraph."}],
)
print(message.content[0].text)
curl https://api.inferray.com/v1/messages \
  -H "x-api-key: $INFERRAY_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4-8",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Explain idempotency in one paragraph."}]
  }'

Key dimasukkan di x-api-key atau Authorization: Bearer; keduanya bisa digunakan.

Yang tetap berlaku

Request dan response mengikuti format Anthropic: max_tokens wajib diisi, system adalah field tingkat atas, dan konten berupa daftar blok bertipe.

  • Tools — tools dengan input_schema, blok tool_use di balasan, dan blok tool_result di giliran Anda berikutnya. Lihat tool calling.
  • Gambar dan PDF — blok image dan document, sebagai sumber base64 atau URL, pada model yang mendukungnya. Lihat vision dan dokumen.
  • Extended thinking — thinking dengan budget_tokens pada model yang mendukung reasoning. Lihat reasoning.
  • Prompt caching — cache_control pada blok konten. Lihat prompt caching.
  • Streaming — stream: true mengembalikan event stream Anthropic (message_start, content_block_delta, message_stop). Lihat streaming.

Data penggunaan dikembalikan dalam field milik Anthropic: input_tokens, output_tokens, cache_read_input_tokens, dan cache_creation_input_tokens.

Model non-Claude

Model teks apa pun dapat dipanggil di sini — gpt-5.5, gemini-3.6-flash, kimi-k2.6 — dan inilah yang memungkinkan Claude Code serta tool native Anthropic lainnya menggunakannya. Fitur yang tidak dimiliki suatu model, misalnya extended thinking pada model yang tidak mendukung reasoning, akan ditolak atau diabaikan, bukan ditiru.

Error

Error dikembalikan dalam format Anthropic, {"type": "error", "error": {"type": "...", "message": "..."}}, sehingga SDK memunculkan exception seperti biasa. Arti setiap status sama seperti di tempat lain — lihat error.