ngodingdocs

Biaya & batas

Kompatibilitas & batasan

Apa yang diterjemahkan antar format dan apa yang sengaja ditolak.

Kompatibilitas & batasan jalur terjemah

Semua model bisa dipanggil lewat ketiga format. Bila format klien sama dengan format upstream → passthrough. Bila berbeda → terjemah:

Klien \ Upstreamopenai_chatopenai_responsesanthropic
Chatpassthroughterjemahterjemah
Responsesterjemahpassthroughterjemah
Messagesterjemahterjemahpassthrough

Format upstream ditentukan oleh route model itu (Anthropic Messages, OpenAI Responses, atau OpenAI Chat) dan bisa berbeda antar model maupun berubah dari waktu ke waktu. Kamu tidak perlu menyesuaikan apa pun: terjemahan berjalan otomatis.

Yang diterjemahkan

  • System prompt: Chat system/developer, Responses instructions + input system/developer, Anthropic system (string/blok) — saling dipetakan.
  • Tool fungsi saja: Chat tools[].function, Responses tools[]{type:"function"}, Anthropic tools[]. Hasil tool (role:"tool" / function_call_output / tool_result) menjadi bagian pesan user; pesan berurutan dengan role sama digabung.
  • Gambar: image_url / input_image / image (base64 atau URL https).
  • Reasoning effort: reasoning_effort / reasoning.effort / thinking:{type:"adaptive"} + output_config.effort — saling dipetakan. Thinking Anthropic kembali ke klien OpenAI sebagai reasoning_content (Chat) / item reasoning (Responses).
  • JSON schema: response_format / text.format → output_config.format di Anthropic.
  • Model: id publik di body selalu diganti ke nama upstream saat request, dan dikembalikan ke id publik di respons (termasuk tiap chunk stream).
  • Parameter tak dikenal di jalur terjemah diabaikan (bukan error) — kecuali yang di bawah.

Yang ditolak

Alasannya: tool server yang tidak kami jalankan sendiri ditagih di luar token (per panggilan / harga berbeda), sehingga tidak bisa dijual per credit dengan jelas. mcp lebih berisiko lagi: server akan memanggil URL klien atas akun kami. Web search, web fetch, dan X search kami jalankan sendiri dan ditagih per credit — lihat Server tools.

Tool

FormatTool klienDijalankan Ngoding (server tools)Ditolak → 400 unsupported_tool
Chatfunction, customweb_search_optionsfile_search, code_interpreter, image_generation, mcp*, …
Responsesfunction, custom, local_shell, apply_patch, shell tanpa environment atau environment.type: "local" (dieksekusi klien)web_search, x_searchsama seperti Chat, plus shell dengan container hosted (container_auto, container_reference; menunggu sandbox milik kami)
Messagestanpa type, custom, tool klien versi-an (bash_*, text_editor_*, computer_*, memory_*)web_search_*, web_fetch_*, x_search_20261005code_execution* (menunggu sandbox milik kami), mcp*, …

Berlaku di semua jalur — termasuk passthrough. Server tool yang tidak aktif untuk sebuah model (cek capabilities di GET /v1/models) juga ditolak 400 unsupported_tool. Request Responses dan Chat yang memakai server tool selalu lewat jalur terjemah, juga bila upstream-nya berformat sama, dan hanya menerima tool klien berjenis function (detail).

Parameter yang ditolak → 400 unsupported_parameter

FormatParameter
Messagesmcp_servers, container
Chataudio, modalities berisi "audio"

Yang dibuang diam-diam (bukan error)

  • service_tier — selalu tier default.
  • Nilai header anthropic-beta berawalan code-execution, mcp-client, web-fetch, web-search, files-api, skills, context-1m (context-1m = harga premium konteks panjang di luar tier katalog). Nilai beta lain diteruskan.
  • Responses: previous_response_id, background, conversation, prompt → 400 unsupported_parameter di semua jalur (termasuk passthrough); request ke upstream selalu store: false. Kirim ulang konteks tiap request (stateless).
  • n > 1 (Chat) di jalur terjemah → 400.
  • max_tokens melebihi batas keluaran model → dipotong, bukan error.
  • Ke Anthropic tidak pernah dikirim budget_tokens (ditolak model 4.7+).

Privasi & keamanan terjemahan

  • Header Authorization/x-api-key klien, cookie, dan x-forwarded-* tidak diteruskan ke upstream. Header respons upstream tidak diteruskan (bisa membocorkan org id).
  • Pesan error upstream disanitasi (≤ 500 karakter, nama model upstream → id publik, redaksi sk-…, org-…, req_…, user-…).
  • Tidak ada retry otomatis ke upstream (menghindari tagihan ganda).