Panduan Sambung Claude Code ke API Pihak Ketiga: Konfigurasi ANTHROPIC_BASE_URL & Penyelesaian Masalah
Panduan Sambung Claude Code ke API Pihak Ketiga: Konfigurasi ANTHROPIC_BASE_URL & Penyelesaian Masalah
Secara lalai, Claude Code menghantar semua request ke API rasmi Anthropic. Apabila laluan rasmi tidak stabil dari rangkaian anda, atau anda mahu urus kunci, bil dan pertukaran model di satu tempat, menghalakan Claude Code ke endpoint pihak ketiga yang serasi dengan Anthropic ialah penyelesaian paling langsung. Panduan ini hanya menyentuh konfigurasi sebenar: apa yang diubah, cara sahkan ia berfungsi, dan di mana mula memeriksa apabila berlaku masalah.
Versi 30 saat
Dua tetapan menyelesaikan segalanya: halakan ANTHROPIC_BASE_URL ke endpoint yang serasi dan set ANTHROPIC_API_KEY dengan kunci endpoint tersebut. Kemudian jalankan claude --print "say hi" untuk sahkan.
Fahami dahulu: Claude Code ialah "klien"
Definisi: Claude Code membaca sekumpulan kecil environment variable untuk menentukan ke mana request dihantar, kunci mana yang digunakan, dan model mana yang dijalankan. Selagi endpoint sasaran melaksanakan format request/response Anthropic Messages API, Claude Code berfungsi dengannya sama seperti dengan API rasmi β tool calling, streaming dan sesi berbilang giliran bergantung pada keserasian endpoint.
Penggantian base URL ialah keupayaan yang didokumenkan, bukan laluan belakang. EXAIV menyediakan endpoint serasi Anthropic; lihat halaman persediaan rasmi untuk versi ringkas.
Environment variable yang menentukan
| Pembolehubah | Fungsi | Nota |
|---|---|---|
ANTHROPIC_BASE_URL | Alamat request dihantar | Punca endpoint (EXAIV: https://exaiv.com/api/ai/v1/anthropic) |
ANTHROPIC_API_KEY | Kunci API | Dihantar melalui header x-api-key; digunakan Anthropic dan kebanyakan gateway termasuk EXAIV |
ANTHROPIC_AUTH_TOKEN | Bearer token | Dihantar melalui Authorization: Bearer; guna hanya jika endpoint menghendaki |
ANTHROPIC_MODEL | Model lalai | ID model yang disokong endpoint, contoh claude-opus-5-5 |
ANTHROPIC_DEFAULT_SONNET_MODEL / ANTHROPIC_DEFAULT_HAIKU_MODEL | Pemetaan tier | Menghala tugasan latar Claude Code ke model yang benar-benar ada di endpoint |
Punca kegagalan paling biasa
Kebanyakan kegagalan bukan kerana keserasian β pembolehubah itu sahaja tidak pernah masuk ke shell semasa: tetingkap terminal berbeza, fail konfigurasi salah, atau dua tetapan bertindih. Sentiasa mula memeriksa di environment variable.
Kaedah 1: settings.json (disyorkan, kekal)
Claude Code membaca environment variable dari ~/.claude/settings.json, terpakai bagi setiap sesi dan mudah distandardkan merentas pasukan. Contoh untuk EXAIV:
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"env": {
"ANTHROPIC_BASE_URL": "https://exaiv.com/api/ai/v1/anthropic",
"ANTHROPIC_API_KEY": "YOUR_EXAIV_API_KEY",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
},
"model": "claude-opus-5-5"
}
Mulakan semula claude selepas menyimpan. Untuk hadkan pada satu projek, letakkan struktur sama dalam .claude/settings.json di akar projek.
Kaedah 2: environment variable sementara (ujian pantas)
Tanpa ubah sebarang fail β export dalam shell semasa:
export ANTHROPIC_BASE_URL="https://exaiv.com/api/ai/v1/anthropic"
export ANTHROPIC_API_KEY="YOUR_EXAIV_API_KEY"
# Pengesahan minimum
claude --print "say hi"
Jika ia membalas, endpoint sudah aktif. Untuk kekal, dua baris export boleh dimasukkan ke ~/.zshrc atau ~/.bashrc β tetapi ia menjejaskan semua arahan claude. Jika anda juga mempunyai langganan rasmi, lebih baik guna settings.json aras projek supaya tidak tertumpah kredit pihak ketiga.
Di mana lihat model yang tersedia
Endpoint yang menentukan model yang wujud. Katalog penuh EXAIV (Claude, GPT, Gemini, DeepSeek, Kimi dan lain-lain) di halaman model; tukar model dalam Claude Code melalui ANTHROPIC_MODEL atau arahan /model dalam sesi.
Penyelesaian masalah: periksa mengikut turutan tetap
| Gejala | Periksa dahulu |
|---|---|
| 401 unauthorized | Adakah ANTHROPIC_API_KEY sudah di-export dalam shell semasa? Ejaan kunci betul, tiada ruang berlebihan? |
| 403 forbidden | Kunci dilumpuhkan, atau tiada kebenaran untuk model itu |
| 404 not found | Adakah laluan base URL lengkap (EXAIV perlu /api/ai/v1/anthropic)? Adakah model ID wujud di endpoint? |
| 429 rate limited | Endpoint hadkan kadar β kurangkan beban atau cuba kemudian |
| Connection timeout | Proxy/firewall tempatan menyekat; sahkan pada rangkaian lain |
Turutan penyahpepijatan
Jangan salahkan Claude Code dahulu. Periksa mengikut turutan: environment variables β base URL β kunci β model ID β rangkaian. Sembilan daripada sepuluh masalah berada di dua lapis pertama.
Siapa yang dapat manfaat daripada sambungan pihak ketiga
Bukan semua pengguna Claude Code perlu ini. Tiga senario dengan pulangan paling jelas:
Pengguna dengan laluan rasmi tidak stabil. Di sesetengah wilayah, mencapai endpoint rasmi kerap tamat masa β terhenti di tengah sesi coding adalah pembunuh produktiviti sebenar. Melalui gateway serasi yang lebih dekat, laluan lebih pendek dan kesinambungan sesi jelas bertambah baik.
Pengguna berat. Claude Code menggunakan token jauh lebih banyak daripada sembang biasa β setiap panggilan tool dan setiap bacaan fail dikira ke dalam context. Jika digunakan setiap hari, bayar ikut guna pada harga unit lebih rendah boleh memberi perbezaan bulanan yang ketara. Anggaran bezanya patut berdasarkan penggunaan sebenar anda, bukan nombor pemasaran mana-mana pihak.
Pasukan yang mahu satu pintu. Apabila pasukan menjalankan Claude Code, Cursor dan skrip dalaman serentak, menghalakan semua tool ke satu gateway dengan satu set kunci dan satu bil jauh lebih mudah dikawal berbanding akaun berasingan setiap tool. EXAIV menyediakan endpoint serasi OpenAI mahupun Anthropic β satu kunci meliputi dua protokol.
Cara kira kos: mulakan dengan pakej percubaan
EXAIV mengebil dalam kredit bayar ikut guna: beli pakej sekali sahaja, setiap panggilan ditolak mengikut harga model, tiada yuran langganan. Peringkat terendah ialah pakej terkecil yang disenaraikan di halaman harga β cukup untuk satu kitaran pengesahan sebenar:
- Daftar dan jana kunci API dalam konsol
- Konfigur Claude Code seperti di atas
- Jalankan tugasan harian sebenar sejam dua, perhatikan lengkung baki dalam konsol
- Anggarkan kos bulanan, kemudian putuskan naik pakej atau tidak
Setiap model ada harganya sendiri, harga tepat berada di halaman harga secara masa nyata β sebab itu artikel ini tidak pernah menulis nombor tetap bagi setiap panggilan: harga mengikut perubahan rasmi, halaman masa nyata sentiasa paling tepat.
Penggunaan pasukan: satu konfigurasi, sifar leret
Perangkap terbesar pasukan ialah setiap orang konfigur berbeza. Amalan yang berkesan:
Masukkan templat settings.json ke dalam repo. Simpan fail contoh tanpa kunci di akar projek; anggota baru salin dan isi kunci masing-masing. Lima minit siap.
Keluarkan kunci seorang demi seorang, jangan kongsi. Setiap ahli guna kunci sendiri dengan penggunaan jelas dalam konsol. Masalah mudah dikesan, dan berhenti kerja bermakna cabut satu kunci tanpa ganggu orang lain.
Asingkan konteks dengan skrip wrapper. Jika ahli turut memegang langganan rasmi, tulis skrip alias yang menunjuk ke konfigurasi aras projek supaya kuota rasmi dan pihak ketiga tidak terpakai bersilang.
Asas keselamatan
Kunci API ialah kredensial dompet. Empat peraturan asas:
- Kunci tidak pernah masuk git. Fail konfigurasi berkunci sebenar dikeluarkan daripada kawalan versi; dalam repo hanya templat tanpa kunci
- Putar berkala. Jana semula kunci dalam konsol dari semasa ke semasa dan tarik balik yang lama; syak bocor, tukar serta-merta
- Kebenaran minimum. Jangan tampal kunci dalam log CI, kod frontend atau sembang
- Pantau anomali. Jika kadar penurunan baki menyimpang daripada biasa, tarik balik kunci dahulu, siasat kemudian
Rujukan pantas persediaan ikut OS
| macOS / Linux | Windows | |
|---|---|---|
| Fail settings | ~/.claude/settings.json | %USERPROFILE%\.claude\settings.json |
| Pembolehubah sementara | export ANTHROPIC_BASE_URL=... | $env:ANTHROPIC_BASE_URL='...' (PowerShell) |
| Kekal dalam shell | ~/.zshrc / ~/.bashrc | Panel environment variable sistem |
| Arahan ujian | claude --print "say hi" | Sama |
Selebihnya β pemetaan model, turutan penyelesaian masalah, amalan keselamatan β serupa di semua platform.
Mengapa pemetaan tier lebih penting daripada disangka
Claude Code tidak hanya memanggil model utama pilihan anda. Di latar belakang ia menembak banyak request kecil β meringkas output tool, menulis mesej commit, carian pantas β dan request itu ditanda tier Sonnet atau Haiku. Jika endpoint anda tidak mempunyai model lalai tepat untuk tier tersebut, panggilan gagal atau fallback secara tidak diduga.
Itulah yang diselesaikan ANTHROPIC_DEFAULT_SONNET_MODEL dan ANTHROPIC_DEFAULT_HAIKU_MODEL: menghalakan request bertanda tier ke model yang benar-benar wujud di endpoint. Corak paling ringkas dan stabil ialah menetapkan kedua-duanya sama dengan model utama anda; memetakan tier Haiku ke model lebih murah ialah pengoptimuman biasa selepas semuanya stabil. Logik sama digunakan dalam gateway: semak halaman model untuk tahu apa yang ada, kemudian petakan tier ke model yang anda pasti tersedia.
Penalaan timeout dan rangkaian
Dua pembolehubah menyelesaikan hampir semua aduan sambungan:
API_TIMEOUT_MSβ giliran agen yang kompleks boleh sah mengambil masa beberapa minit; timeout pihak klien terlalu pendek membunuh request yang sebenarnya berjaya. Jika giliran terpotong tanpa mesej ralat, naikkan nilainya.- Proxy bertindih β jika shell anda turut menetapkan
HTTP_PROXY/HTTPS_PROXY, request mungkin berpusing melalui proxy tempatan sebelum sampai ke gateway. Apabila base URL betul tetapi sambungan tetap gagal, uji dengan pembolehubah proxy dilepas sebelum mengubah perkara lain.
Kedua-duanya tidak wajib secara lalai β ia dua knob pertama untuk diputar apabila tetapan betul tetapi laluan rangkaian salah.
Kajian kes penyahpepijatan sebenar
Corak kegagalan paling biasa, dari mula hingga akhir, supaya anda boleh padankan kes sendiri:
Seorang pembangun mengedit settings.json, menjalankan claude --print "say hi", dan menerima 401 authentication_error. Naluri menyalahkan endpoint. Yang dibuat pula ialah senarai semak:
- Environment variables β kunci dalam settings.json betul, tetapi pembangun turut sempat export
ANTHROPIC_API_KEYlama dalam shell yang sama hari itu. Pembolehubah shell mengatasi settings.json; kunci lapuk itulah yang dihantar.unset ANTHROPIC_API_KEYdan cuba semula β panggilan kini memulangkan teks - Base URL β tiada apa perlu dibaiki; ia betul dari mula
- Kunci β kunci itu sendiri sah sejak awal; ia cuma dilindungi (shadowed)
- Model ID β model utama yang dikonfigur wujud di endpoint; tetapi tugasan latar yang merujuk model Sonnet lalai gagal. Memetakan
ANTHROPIC_DEFAULT_SONNET_MODELke model utama yang sama membuang ralat terakhir - Rangkaian β tidak pernah sampai ke sana; masalah ada di lapisan satu dan tiga
Jumlah masa daripada kekecewaan ke persediaan berfungsi: kira-kira empat minit, sebaik senarai semak menggantikan agakan. Pengajarannya umum: setiap lapisan sama ada berfungsi atau menunjuk ke lapisan seterusnya β jangan sesekali nyahpepijat dua lapisan serentak.
Satu tabiat yang menjimatkan masa: uji endpoint dahulu, bukan klien
Sebelum menyentuh sebarang konfigurasi, buktikan dahulu endpoint hidup dengan curl telanjang β tanpa Claude Code, tanpa SDK:
curl https://exaiv.com/api/ai/v1/anthropic/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"claude-opus-5-5","max_tokens":32,"messages":[{"role":"user","content":"hi"}]}'
Jika curl ini membalas, keseluruhan persoalan mengecil kepada konfigurasi klien. Jika gagal, anda tahu masalahnya di kunci atau rangkaian β bukan di Claude Code. Satu minit ujian ini menjimatkan berjam-jam meneka.
FAQ
Adakah Claude Code berbeza bila guna API pihak ketiga?
ANTHROPIC_API_KEY berbanding ANTHROPIC_AUTH_TOKEN β mana satu?
Adakah guna endpoint pihak ketiga menyalahi terma?
Ada beza pada Windows?
Apakah berlaku apabila kredit habis?
Boleh ke kekalkan langganan rasmi bersama sambungan pihak ketiga?
Selepas sambung, boleh tukar model lain?
Bolehkah projek berbeza guna kunci berbeza?
Adakah konfigurasi hilang apabila saya mengemas kini Claude Code?
Perlukah base URL ditamatkan dengan /v1?
Bacaan berkaitan
- Halaman persediaan Claude Code β versi ringkas di laman
- Rujukan Anthropic Messages API β format request/response
- Harga β harga model masa nyata