Skip to main content
Generasi teks

Pesan yang Kompatibel dengan Anthropic

Migrasikan aplikasi Anthropic Anda ke Model Studio dengan mengubah tiga pengaturan. Topik ini mencakup parameter permintaan dan respons beserta contoh kode.

Untuk memigrasikan aplikasi Anthropic yang sudah ada ke Model Studio, ubah pengaturan berikut:
  • api_key: Ganti dengan Kunci API Model Studio.
  • base_url: Ganti dengan titik akhir Model Studio yang tercantum di bawah.
  • model: Ganti dengan nama model yang didukung, seperti qwen3.7-plus.
Alibaba Cloud Model Studio telah merilis domain khusus ruang kerja untuk wilayah China (Beijing), Singapura, dan China (Hong Kong). Domain khusus baru ini memberikan performa lebih unggul dan stabilitas lebih tinggi untuk permintaan inferensi. Kami merekomendasikan migrasi ke domain baru berikut:
  • China (Beijing): dari https://dashscope.aliyuncs.com ke https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapura: dari https://dashscope-intl.aliyuncs.com ke https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
  • China (Hong Kong): dari https://cn-hongkong.dashscope.aliyuncs.com ke https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com
{WorkspaceId} adalah ID ruang kerja Anda, yang dapat ditemukan pada halaman Detail Ruang Kerja di Konsol Alibaba Cloud Model Studio. Domain lama tetap berfungsi penuh.
  • Singapura
  • China (Beijing)
  • Jerman (Frankfurt)
  • AS (Virginia)
  • Jepang (Tokyo)
SDK base_url: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/apps/anthropicURL permintaan HTTP: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/apps/anthropic/v1/messages
Ganti {WorkspaceId} dengan ID ruang kerja aktual Anda. Otentikasi: Masukkan Kunci API Model Studio Anda di header x-api-key atau header Authorization: Bearer.

Isi Permintaan

model string (Wajib)Nama model. Model yang didukung:
Qwen-Max: qwen3.8-max, qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.7-max-2026-06-08, qwen3.6-max-preview, qwen3-max, qwen3-max-2026-01-23, qwen3-max-previewQwen-Plus: qwen3.7-plus, qwen3.7-plus-2026-05-26, qwen3.6-plus, qwen3.6-plus-2026-04-02, qwen3.5-plus, qwen3.5-plus-2026-04-20, qwen3.5-plus-2026-02-15, qwen-plus, qwen-plus-latest, qwen-plus-2025-09-11Qwen-Flash: qwen3.8-flash, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.6-flash-2026-04-16, qwen3.5-flash, qwen3.5-flash-2026-02-23, qwen-flash, qwen-flash-2025-07-28Qwen-Turbo: qwen-turboQwen-Coder: qwen3-coder-next, qwen3-coder-plus, qwen3-coder-plus-2025-09-23, qwen3-coder-flashQwen-VL: qwen3-vl-plus, qwen3-vl-flash, qwen-vl-max, qwen-vl-plusModel Open-Source Qwen: qwen3.6-27b, qwen3.5-397b-a17b, qwen3.5-122b-a10b, qwen3.5-27b, qwen3.5-35b-a3b, qwen3.8-2.4t-a95b, qwen3.8-27bModel Pihak Ketigadeepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash, deepseek-v4-flash-0731, kimi-k3, kimi-k2.7-code, kimi-k2.5, kimi-k2-thinking, glm-5.1, glm-5, glm-4.7, glm-4.6, MiniMax-M2.5, MiniMax-M2.1
max_tokens integer (Wajib)
  • Untuk model deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash, deepseek-v4-flash-0731, qwen3.8-max, dan qwen3.8-flash: max_tokens adalah jumlah maksimum token total untuk konten balasan dan konten rantai-pikiran. Generasi berhenti lebih awal ketika output model melebihi nilai ini, dan stop_reason bernilai max_tokens.
    max_tokens membatasi panjang gabungan konten balasan dan proses berpikir. Saat rantai-pikiran diperluas diaktifkan, max_tokens > thinking.budget_tokens
  • Untuk glm-5.2: Jika parameter thinking.budget_tokens tidak diberikan, max_tokens adalah jumlah maksimum token total untuk konten balasan dan konten rantai-pikiran. Generasi berhenti lebih awal ketika output model melebihi nilai ini, dan stop_reason bernilai max_tokens. Jika parameter thinking.budget_tokens diberikan, max_tokens hanya membatasi jumlah maksimum token untuk konten balasan, sedangkan token berpikir dikontrol secara terpisah oleh thinking.budget_tokens.
  • Untuk model lainnya: max_tokens membatasi jumlah maksimum token untuk konten balasan. Jika konten yang dihasilkan melebihi nilai ini, generasi berhenti lebih awal dan stop_reason bernilai max_tokens.
    max_tokens tidak membatasi panjang proses berpikir. Saat rantai-pikiran diperluas diaktifkan, token berpikir dikontrol secara terpisah oleh thinking.budget_tokens.
system string atau array (Opsional)Prompt sistem yang menentukan perilaku model. system merupakan parameter tingkat atas — array messages tidak menerima peran system.String setara dengan satu blok type="text". Gunakan array untuk menandai titik pemutusan cache prompt.
type string (Wajib)Nilai tetap: text.text string (Wajib)Teks prompt sistem.cache_control objek (Opsional)Titik pemutusan cache prompt. Pada cache hit, permintaan selanjutnya ditagih dengan laju baca cache. Hanya berisi properti type dengan nilai tetap ephemeral.
messages array (Wajib)Array pesan, disusun secara bergantian dalam giliran user/assistant.
role string (Wajib)Peran pesan. Nilai valid: user, assistant.content string atau array (Wajib)Berupa string teks biasa atau array konten terstruktur. String setara dengan satu blok content dengan type="text".
Teks
type string (Wajib)Nilai tetap: text.text string (Wajib)Konten teks.cache_control objek (Opsional)Titik pemutusan cache prompt. Hanya berisi properti type dengan nilai tetap ephemeral.
Gambar (memerlukan model vision)
type string (Wajib)Nilai tetap: image.source objek (Wajib)Sumber data gambar.
type string (Wajib)Nilai valid: url (URL gambar publik), base64 (data terenkripsi Base64).url stringURL publik gambar. Wajib jika type bernilai url.media_type stringTipe MIME gambar, seperti image/jpeg. Wajib jika type bernilai base64.data stringData gambar terenkripsi Base64. Wajib jika type bernilai base64.
Video (memerlukan model vision)
type string (Wajib)Nilai tetap: video.source objek (Wajib)Sumber data video.
type string (Wajib)Nilai valid: url (URL video publik), base64 (data terenkripsi Base64).url stringURL publik video. Wajib jika type bernilai url.media_type stringTipe MIME video, seperti video/mp4. Wajib jika type bernilai base64.data stringData video terenkripsi Base64. Wajib jika type bernilai base64.
Penggunaan tool (peran assistant; instruksi pemanggilan tool yang dikembalikan oleh model)
type string (Wajib)Nilai tetap: tool_use.id string (Wajib)Identifier unik pemanggilan tool, digunakan untuk mengaitkan hasil dalam tool_result berikutnya.name string (Wajib)Nama tool yang dipanggil.input objek (Wajib)Parameter input pemanggilan tool. Strukturnya ditentukan oleh input_schema tool yang sesuai dalam tools.cache_control objek (Opsional)Titik pemutusan cache prompt. Hanya berisi properti type dengan nilai tetap ephemeral. Konten pemanggilan tool berpartisipasi dalam prefiks cache.
Hasil tool (peran user; hasil eksekusi tool yang dikirim kembali ke model)
type string (Wajib)Nilai tetap: tool_result.tool_use_id string (Wajib)Bersesuaian dengan id dalam blok tool_use.content string (Wajib)Konten yang dikembalikan oleh tool.cache_control objek (Opsional)Titik pemutusan cache prompt. Hanya berisi properti type dengan nilai tetap ephemeral.
stream boolean (Opsional)Apakah akan mengaktifkan streaming. Nilai default: false.temperature number (Opsional)Mengontrol keragaman teks yang dihasilkan. Rentang nilai: [0, 2). Nilai yang lebih tinggi menghasilkan respons yang lebih acak.
Rentang ini berbeda dari rentang resmi Anthropic yaitu [0.0, 1.0]. Saat memigrasikan dari Anthropic, pastikan untuk memverifikasi nilai parameter ini.
top_p number (Opsional)Ambang batas probabilitas pengambilan sampel nucleus.
Kedua parameter temperature dan top_p dapat mengontrol keragaman teks yang dihasilkan. Kami merekomendasikan hanya mengatur salah satunya. Untuk informasi lebih lanjut, lihat Ikhtisar.
top_k integer (Opsional)Ukuran kumpulan kandidat selama pengambilan sampel.stop_sequences array (Opsional)Urutan teks yang memicu penghentian generasi. Output berakhir sebelum urutan yang cocok.
Setelah pencocokan, stop_reason dalam respons tetap bernilai end_turn, dan respons tidak menyertakan urutan yang cocok.
thinking objek (Opsional)Konfigurasi rantai-pikiran diperluas. Saat diaktifkan, model melakukan penalaran sebelum merespons, dan respons mencakup blok konten bertipe thinking. Tidak semua model mendukung mode berpikir.
type string (Wajib)Nilai valid: enabled (aktifkan mode berpikir), disabled (nonaktifkan mode berpikir).budget_tokens integer (Opsional, akan ditinggalkan)
Parameter ini akan ditinggalkan. Untuk integrasi baru, gunakan effort.
Token maksimum untuk proses berpikir. Parameter ini terpisah dari max_tokens: ia membatasi bagian berpikir, sedangkan max_tokens membatasi balasan akhir. Anggaran token yang lebih besar memungkinkan analisis lebih menyeluruh terhadap pertanyaan kompleks. Berlaku saat type bernilai enabled.
tools array (Opsional)Definisi tool untuk pemanggilan fungsi.
name string (Wajib)Nama tool.description string (Opsional)Deskripsi fungsi tool.input_schema objek (Wajib)Definisi skema JSON parameter input tool.
tool_choice objek (Opsional)Strategi pemilihan tool:
  • {"type": "auto"}: Model memutuskan apakah akan memanggil tool (default).
  • {"type": "any"}: Memaksa model untuk memanggil tool apa pun.
  • {"type": "none"}: Melarang model memanggil tool.
  • {"type": "tool", "name": "tool_name"}: Memaksa model untuk memanggil tool tertentu.
output_config objek (Opsional)
effort string (Opsional)Mengontrol intensitas inferensi model. Nilai valid dan nilai default bervariasi berdasarkan model.
  • glm-5.2, deepseek-v4-pro, dan deepseek-v4-flash: Nilai default: max Nilai valid:
    • high: Inferensi intensitas tinggi
    • max: Inferensi intensitas maksimum
    Nilai low dan medium dipetakan ke high, sedangkan xhigh dipetakan ke max.
  • qwen3.8-max/qwen3.8-flash: Nilai default: xhigh Nilai valid:
    • xhigh: Inferensi intensitas tinggi
    • medium: Inferensi intensitas menengah
    • low: Inferensi intensitas rendah
    Nilai max dan high dipetakan ke xhigh.
format objek (Opsional)Konfigurasi output terstruktur. Saat diaktifkan, model mengembalikan string JSON. Perilaku bervariasi berdasarkan model:
  • Output terstruktur ketat: Tersedia untuk model seri qwen3.8, qwen3.7, deepseek, dan glm. Model secara ketat mengikuti skema JSON yang diberikan, menjamin jenis bidang dan hierarki yang sama.
  • Output terstruktur reguler: Untuk semua model lainnya, batasan bidang skema tidak diberlakukan — API secara otomatis kembali ke mode JSON biasa (hanya menjamin bahwa output adalah string JSON yang valid). Dalam mode fallback ini, permintaan harus memenuhi kedua syarat berikut: (1) parameter output_config diberikan secara eksplisit; (2) konten system atau messages mengandung kata kunci "JSON" (tidak memperhatikan huruf besar/kecil). Jika kata kunci "JSON" tidak ada, API akan melempar error: 'messages' must contain the word 'json' in some form.
type string (Wajib)Nilai tetap: json_schema.schema objek (Wajib)Objek skema JSON yang mengikuti spesifikasi standar JSON Schema. Harus mencakup type (tipe data), properties (definisi bidang), required (array nama bidang wajib), dan additionalProperties (harus diatur ke false).
  • Panggilan Dasar
  • Streaming
  • Pemikiran Lanjutan
  • Pemahaman Gambar
  • Pemahaman Video
  • pemanggilan fungsi
  • cache prompt
  • Output terstruktur
Python
import anthropic
import os

client = anthropic.Anthropic(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Replace {WorkspaceId} with your actual workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/apps/anthropic",
)

message = client.messages.create(
    model="qwen3.8-max",
    max_tokens=1024,
    system="You are a helpful assistant",
    messages=[
        {
            "role": "user",
            "content": "Who are you?"
        }
    ],
    thinking={"type": "disabled"},
)

print(message.content[0].text)

Respons Non-streaming

id stringIdentifier pesan unik.type stringNilai tetap: message.role stringNilai tetap: assistant.model stringModel yang digunakan untuk generasi.content arrayArray konten.
Teks
type stringNilai tetap: text.text stringTeks respons yang dihasilkan oleh model.
Thinking (dikembalikan saat Extended Thinking diaktifkan)
type stringNilai tetap: thinking.thinking stringPenalaran model sebelum respons akhir.signature stringSaat ini tetap sebagai string kosong.
Penggunaan alat (skenario pemanggilan fungsi)
type stringNilai tetap: tool_use.id stringIdentifier unik pemanggilan tool, digunakan untuk mencocokkan tool_result.name stringNama tool yang dipanggil.input objekParameter input pemanggilan tool.
stop_reason stringAlasan penghentian generasi. Nilai valid: end_turn (penyelesaian normal), max_tokens (batas token tercapai), tool_use (pemanggilan tool).stop_sequence stringSelalu null.usage objekStatistik penggunaan token.
Dalam panggilan streaming, bidang usage pada event message_start hanya berisi input_tokens dan output_tokens. Keempat bidang lengkap dikembalikan dalam event message_delta.
input_tokens integerToken input.output_tokens integerToken output.cache_creation_input_tokens integerToken yang dikonsumsi untuk pembuatan cache.cache_read_input_tokens integerToken yang dikonsumsi dari pembacaan cache.
Contoh Respons
{
  "id": "msg_e2898f19-fc0e-4cb3-bd9b-5b7dc4ea3bc9",
  "type": "message",
  "role": "assistant",
  "model": "qwen3.8-max",
  "content": [
    {
      "type": "thinking",
      "thinking": "Let me analyze this problem...",
      "signature": ""
    },
    {
      "type": "text",
      "text": "Hello! I am Qwen..."
    }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 22,
    "output_tokens": 223,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0
  }
}

Respons Streaming

message_startEvent stream pertama, menandai awal pesan.
type stringNilai tetap: message_start.message objekObjek pesan awal. content adalah array kosong, dan usage hanya berisi input_tokens dan output_tokens.
content_block_startMenandai awal blok konten.
type stringNilai tetap: content_block_start.index integerIndeks berbasis 0 yang bersesuaian dengan posisi dalam array content.content_block objekObjek awal blok konten. Nilai type adalah text, thinking, atau tool_use. Untuk tipe tool_use, bidang input adalah objek kosong dalam event ini, dan parameter input lengkap dirakit dari delta content_block_delta berikutnya.
content_block_deltaPembaruan inkremental blok konten. Beberapa delta dikirim per blok.
type stringNilai tetap: content_block_delta.index integerIndeks blok konten terkait.delta objekObjek delta. Nilai type:
  • text_delta: Delta teks, berisi bidang text.
  • thinking_delta: Delta rantai-pikiran, berisi bidang thinking.
  • signature_delta: Delta signature, berisi bidang signature (saat ini tetap sebagai string kosong).
  • input_json_delta: Delta parameter input pemanggilan tool, berisi bidang partial_json.
content_block_stopMenandai akhir blok konten.
type stringNilai tetap: content_block_stop.index integerIndeks blok konten yang berakhir.
message_deltaDikirim setelah semua blok konten berakhir. Berisi alasan berhenti dan penggunaan token akhir.
type stringNilai tetap: message_delta.delta objekBerisi stop_reason dan stop_sequence. Untuk nilai valid, lihat tabel Respons Non-streaming di atas.usage objekStatistik penggunaan token lengkap, termasuk input_tokens, output_tokens, cache_creation_input_tokens, dan cache_read_input_tokens.
message_stopEvent terakhir, menandai akhir pesan.
type stringNilai tetap: message_stop.Selain itu, respons streaming secara berkala mengirim event ping ({"type":"ping"}) untuk menjaga koneksi tetap aktif. Klien dapat mengabaikannya.
Contoh respons streaming
{"type":"message_start","message":{"id":"msg_xxx","type":"message","role":"assistant","model":"qwen3.8-max","content":[],"usage":{"input_tokens":15,"output_tokens":0}}}
{"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""}}
{"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"Here's a thinking process:\n\n1. **Analyze User Input:**\n   - **Topic:** Artificial Intelligence (AI)\n   - **Request:** Give a brief introduction to artificial intelligence."}}
{"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":""}}
{"type":"content_block_stop","index":0}
{"type":"content_block_start","index":1,"content_block":{"type":"text","text":""}}
{"type":"content_block_delta","index":1,"delta":{"type":"text_delta","text":"Artificial intelligence (AI) is an important branch of computer science..."}}
{"type":"content_block_stop","index":1}
{"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":15,"output_tokens":1078,"cache_creation_input_tokens":0,"cache_read_input_tokens":0}}
{"type":"message_stop"}

FAQ

Setelah mengonfigurasi Claude Desktop atau Claude Code, uji koneksi gagal denganModel discovery — Gateway /v1/models returned HTTP 404, atau URL permintaan berisi/v1/v1/models. Bagaimana cara memperbaikinya? Fitur penemuan model klien seperti Claude Desktop dan Claude Code secara otomatis menambahkan /v1/models ke URL dasar yang dikonfigurasi. Periksa dua hal berikut:
  • Jangan mengakhiri URL dasar dengan/v1/: URL harus berakhir di /apps/anthropic (misalnya, untuk China (Beijing) gunakan https://dashscope.aliyuncs.com/apps/anthropic; lihat informasi titik akhir di atas untuk wilayah lainnya). Jika Anda salah memasukkan .../apps/anthropic/v1/, klien akan menambahkan /v1/models dan menghasilkan path duplikat /v1/v1/models, yang mengembalikan HTTP 404. Oleh karena itu, saat Anda mendapatkan 404, pertama-tama periksa apakah URL permintaan aktual berisi /v1/v1/ yang duplikat; jika iya, hapus /v1/ di akhir URL dasar.
  • Tambahkan model secara manual untuk melewati penemuan: Titik akhir kompatibel Anthropic Model Studio hanya menyediakan API Messages (/v1/messages) dan tidak menyediakan titik akhir daftar model (/v1/models), sehingga permintaan penemuan model mengembalikan 404. Tambahkan model secara manual (misalnya, qwen3.7-plus) di bagian Models pada klien untuk melewati penemuan otomatis.
Pembuatan Gambar
  • FAQ
Video Generation
Model Dunia
Audio
  • Pembuatan audio
Realtime API
Penyematan Teks
TokenPlan
Model production