คู่มือเชื่อมต่อ Claude Code กับ third-party API: ตั้งค่า ANTHROPIC_BASE_URL และวิธีแก้ปัญหา
คู่มือเชื่อมต่อ Claude Code กับ third-party API: ตั้งค่า ANTHROPIC_BASE_URL และวิธีแก้ปัญหา
โดยปกติ Claude Code จะส่งทุก request ไปที่ official API ของ Anthropic แต่เมื่อเส้นทางทางการไม่เสถียรจากเครือข่ายของคุณ หรือคุณต้องการรวมการจัดการ key และการเรียกเก็บเงินของหลายโมเดลไว้ที่เดียว การชี้ Claude Code ไปที่ endpoint ของบุคคลที่สามที่รองรับ Anthropic คือทางแก้ที่ตรงไปตรงมาที่สุด บทความนี้จะพูดถึงสิ่งที่ต้องแก้ วิธีตรวจสอบว่าใช้งานได้ และควรเริ่มตรวจสอบจากตรงไหนเมื่อมีปัญหา
เวอร์ชัน 30 วินาที
ใช้แค่ 2 การตั้งค่า: ชี้ ANTHROPIC_BASE_URL ไปที่ endpoint ที่รองรับ และตั้ง ANTHROPIC_API_KEY เป็น key ของ endpoint นั้น จากนั้นรัน claude --print "say hi" เพื่อทดสอบ
เข้าใจก่อน: Claude Code คือ "client"
นิยาม: Claude Code อ่าน environment variables ชุดเล็ก ๆ เพื่อตัดสินใจว่าจะส่ง request ไปที่ใด ใช้ key ใดยืนยันตัวตน และรันโมเดลใด ตราบใดที่ endpoint ปลายทาง implement รูปแบบ request/response ของ Anthropic Messages API Claude Code ก็ใช้งานได้เหมือน official API — การเรียก tool, streaming และ session หลายรอบขึ้นอยู่กับความเข้ากันได้ของ endpoint
การเปลี่ยน base URL เป็นความสามารถที่มีในเอกสารทางการ ไม่ใช่การแก้ไข ดูเวอร์ชันย่อได้ที่หน้าตั้งค่าอย่างเป็นทางการ
Environment variables ที่สำคัญ
| ตัวแปร | หน้าที่ | หมายเหตุ |
|---|---|---|
ANTHROPIC_BASE_URL | ที่อยู่ปลายทางที่ส่ง request | รากของ endpoint (EXAIV: https://exaiv.com/api/ai/v1/anthropic) |
ANTHROPIC_API_KEY | API key | ส่งผ่าน header x-api-key; Anthropic และ gateway ส่วนใหญ่รวมถึง EXAIV ใช้แบบนี้ |
ANTHROPIC_AUTH_TOKEN | Bearer token | ส่งผ่าน Authorization: Bearer; ใช้เมื่อ endpoint ต้องการเท่านั้น |
ANTHROPIC_MODEL | โมเดลเริ่มต้น | model ID ที่ endpoint รองรับ เช่น claude-opus-5-5 |
ANTHROPIC_DEFAULT_SONNET_MODEL / ANTHROPIC_DEFAULT_HAIKU_MODEL | แมป tier | ส่งงานเบื้องหลังของ Claude Code ไปที่โมเดลที่ endpoint มีจริง |
สาเหตุความล้มเหลวที่พบบ่อย
ส่วนใหญ่ไม่ใช่ปัญหาความเข้ากันได้ของ endpoint แต่ env vars ไม่เคยเข้าสู่ shell ปัจจุบัน: เปิด terminal คนละหน้าต่าง เขียนผิดไฟล์ หรือสองที่ตั้งค่าทับกัน ให้เริ่มตรวจที่ environment variables เสมอ
วิธีที่ 1: settings.json (แนะนำ, ถาวร)
Claude Code อ่าน env vars จาก ~/.claude/settings.json ใช้ได้ทุก session และง่ายต่อการทำมาตรฐานทั้งทีม ตัวอย่างสำหรับ 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"
}
รีสตาร์ท claude หลังบันทึก หากต้องการใช้เฉพาะโปรเจกต์ ให้วางโครงสร้างเดียวกันใน .claude/settings.json ที่รากโปรเจกต์
วิธีที่ 2: environment variables ชั่วคราว (ทดสอบเร็ว)
ไม่ต้องแก้ไฟล์ — export ใน shell ปัจจุบัน:
export ANTHROPIC_BASE_URL="https://exaiv.com/api/ai/v1/anthropic"
export ANTHROPIC_API_KEY="YOUR_EXAIV_API_KEY"
# ทดสอบขั้นต่ำ
claude --print "say hi"
หากตอบกลับมาแปลว่า endpoint ใช้งานได้แล้ว หากต้องการถาวรให้ใส่สองบรรทัดนี้ใน ~/.zshrc หรือ ~/.bashrc — แต่จะกระทบทุกคำสั่ง claude หากคุณมี subscription ทางการด้วย แนะนำใช้ settings.json ระดับโปรเจกต์แทน เพื่อไม่ใช้เครดิต third-party โดยไม่ตั้งใจ
ดูโมเดลที่ใช้ได้จากที่ไหน
Endpoint คือผู้กำหนดว่ามีโมเดลอะไร แคตตาล็อกเต็มของ EXAIV (Claude, GPT, Gemini, DeepSeek, Kimi และอื่น ๆ) อยู่ที่หน้าโมเดล; เปลี่ยนโมเดลใน Claude Code ผ่าน ANTHROPIC_MODEL หรือคำสั่ง /model ใน session
แก้ปัญหา: ตรวจตามลำดับคงที่
| อาการ | ตรวจอะไรก่อน |
|---|---|
| 401 unauthorized | ANTHROPIC_API_KEY export ใน shell ปัจจุบันหรือยัง? key สะกดถูกไหม มีช่องว่างเกินไหม? |
| 403 forbidden | key ถูกปิด หรือไม่มีสิทธิ์โมเดลนั้น |
| 404 not found | path ของ base URL ครบไหม (EXAIV ต้องมี /api/ai/v1/anthropic)? model ID มีจริงใน endpoint ไหม? |
| 429 rate limited | endpoint จำกัดอัตรา — ลดความถี่หรือลองใหม่ |
| Connection timeout | proxy/firewall ในเครื่องบล็อก; ลองเครือข่ายอื่น |
ลำดับการ debug
อย่าโทษ Claude Code ก่อน ตรวจตามลำดับ: environment variables → base URL → key → model ID → network ปัญหา 9 ใน 10 อยู่สองชั้นแรก
ใครเหมาะกับการต่อ third-party API
ไม่ใช่ทุกคนต้องแก้การตั้งค่านี้ สามกลุ่มนี้ได้ประโยชน์ชัดที่สุด:
ผู้ใช้ที่เส้นทางทางการไม่เสถียร. บางพื้นที่เข้าถึง endpoint ทางการแล้ว timeout บ่อย การหลุดกลาง session เขียนโค้ดคือฆ่าประสิทธิภาพจริง ๆ การต่อผ่าน gateway ที่ใกล้กว่าทำให้เส้นทางสั้นลงและ session ต่อเนื่องขึ้นชัดเจน
สายหนัก. Claude Code กิน token มากกว่าแชตทั่วไปมาก — ทุกการเรียก tool และทุกการอ่านไฟล์นับเข้า context ถ้าใช้ทุกวัน ระบบ pay-as-you-go ที่ราคาต่อหน่วยต่ำกว่าจะต่างกันรายเดือนได้ไม่น้อย แนะนำประเมินจากการใช้งานจริงของคุณ ไม่ใช่ตัวเลขโฆษณาของฝ่ายใดฝ่ายหนึ่ง
ทีมที่อยากรวมศูนย์. ทีมที่ใช้ทั้ง Claude Code, Cursor และสคริปต์ภายใน การชี้ทุกเครื่องมือไปที่ gateway เดียวด้วย key และบิลเดียวกันควบคุมงบได้ง่ายกว่าแยกบัญชีแต่ละเครื่องมือ EXAIV มีทั้ง endpoint แบบ OpenAI และ Anthropic compatible ใช้ key เดียวครอบคลุมสองโปรโตคอล
ค่าใช้จ่ายคิดอย่างไร: เริ่มจากแพ็กทดลอง
EXAIV คิดเป็น credits แบบ pay-as-you-go: ซื้อแพ็กครั้งเดียว ใช้คิดเงินตามราคาโมเดลต่อครั้ง ไม่มีค่า subscription แพ็กต่ำสุดคือ แพ็กเล็กที่สุดที่ระบุไว้ในหน้าราคา พอสำหรับการทดลองจริงทั้งวง:
- สมัครและสร้าง API key ในคอนโซล
- ตั้งค่า Claude Code ตามบทความนี้
- ใช้งานงานประจำวันจริง 1–2 ชั่วโมง แล้วดูกราฟการใช้เครดิตในคอนโซล
- ประมาณค่าใช้จ่ายรายเดือนแล้วค่อยตัดสินใจอัปเกรดแพ็ก
แต่ละโมเดลราคาไม่เท่ากัน ราคาที่แม่นยำอยู่ที่หน้าราคาแบบเรียลไทม์ — นี่คือเหตุผลที่บทความนี้ไม่ใส่ตัวเลขราคาต่อครั้งตายตัว: ราคาเปลี่ยนตามทางการ หน้าเรียลไทม์ถูกที่สุดเสมอ
ใช้ในทีม: คอนฟิกเดียว ไม่เย็น
กับดักใหญ่ของทีมคือแต่ละคนตั้งค่าไม่เหมือนกัน สิ่งที่ได้ผล:
เอาเทมเพลต settings.json ขึ้น repo. เก็บไฟล์ตัวอย่างไม่มี key ไว้ที่รากโปรเจกต์ คนใหม่คัดลอกแล้วใส่ key ตัวเอง เสร็จใน 5 นาที
แจก key รายคน ไม่ใช้ร่วม. แต่ละคนใช้ key ตัวเอง เห็นการใช้งานแยกในคอนโซล มีปัญหาสืบได้ง่าย คนพ้นทีมก็เพิกถอน key เดียว
ใช้ wrapper script แยกบริบท. ถ้าในทีมมี subscription ทางการด้วย เขียนสคริปต์ชี้ไปที่ config ระดับโปรเจกต์ กันโควตาสองฝั่งปนกัน
พื้นฐานความปลอดภัย
API key คือของมีค่าทางการเงิน มี 4 กฎ:
- key ห้ามเข้า git. ไฟล์ config ที่มี key จริงต้องอยู่นอก version control ใน repo มีแต่เทมเพลต
- หมุนเวียนตามรอบ. สร้าง key ใหม่ในคอนโซลเป็นระยะ เพิกถอนตัวเก่า สงสัยรั่วให้เปลี่ยนทันที
- สิทธิ์น้อยที่สุด. อย่าใส่ key ใน CI log, โค้ดฝั่ง frontend หรือแชต
- จับผิดความผิดปกติ. ถ้าเครดิตหายเร็วผิดปกติ ให้เพิกถอน key ก่อนแล้วค่อยสืบ
ตารางตั้งค่าด่วนแยกระบบปฏิบัติการ
| macOS / Linux | Windows | |
|---|---|---|
| ไฟล์ settings | ~/.claude/settings.json | %USERPROFILE%\.claude\settings.json |
| ตัวแปรชั่วคราว | export ANTHROPIC_BASE_URL=... | $env:ANTHROPIC_BASE_URL='...' (PowerShell) |
| ถาวรใน shell | ~/.zshrc / ~/.bashrc | หน้า system environment variables |
| คำสั่งทดสอบ | claude --print "say hi" | เหมือนกัน |
ส่วนอื่น — การแมปโมเดล ลำดับแก้ปัญหา แนวปฏิบัติด้านความปลอดภัย — เหมือนกันทุกแพลตฟอร์ม
ทำไมการแมป tier สำคัญกว่าที่คิด
Claude Code ไม่ได้เรียกแค่โมเดลหลักที่คุณเลือก ในเบื้องหลังมันยิง request เล็ก ๆ จำนวนมาก — สรุปผลลัพธ์ tool, เขียน commit message, ค้นข้อมูลด่วน — โดยติดแท็กเป็น tier Sonnet หรือ Haiku ถ้า endpoint ของคุณไม่มีโมเดลดีฟอลต์ตรง tier นั้น คำขอจะล้มเหลวหรือ fallback ไม่คาดคิด
นั่นคือสิ่งที่ ANTHROPIC_DEFAULT_SONNET_MODEL และ ANTHROPIC_DEFAULT_HAIKU_MODEL แก้: มันเปลี่ยนเส้นทาง request ที่ติดแท็ก tier ไปยังโมเดลที่ endpoint มีจริง วิธีที่เรียบง่ายและเสถียรที่สุดคือตั้งทั้งคู่เท่ากับโมเดลหลักของคุณ ส่วนการจับ tier Haiku ไปใส่โมเดลถูกกว่าเป็นการ optimize ยอดนิยมเมื่อทุกอย่างนิ่งแล้ว ตรรกะเดียวกันใช้ใน gateway: เช็กหน้าโมเดลว่ามีอะไร แล้วแมป tier ไปยังโมเดลที่รู้ว่ามีจริง
ปรับ timeout และเครือข่าย
สองตัวแปรแก้เรื่องการเชื่อมต่อได้เกือบทั้งหมด:
API_TIMEOUT_MS— turn ของ agent ที่ซับซ้อนอาจใช้เวลาหลายนาทีอย่างถูกต้องตามกฎ ถ้า timeout ฝั่ง client สั้นเกิน request ที่ควรสำเร็จจะพัง ถ้าเห็น turn ถูกตัดโดยไม่มี error ให้เพิ่มค่านี้- Proxy ซ้อนทับ — ถ้า shell ของคุณตั้ง
HTTP_PROXY/HTTPS_PROXYไว้ request อาจวนผ่าน proxy ในเครื่องก่อนถึง gateway เมื่อ Base URL ถูกต้องแต่เชื่อมต่อไม่ได้ ให้ทดสอบโดยเคลียร์ตัวแปร proxy ออกก่อนแก้สิ่งอื่น
ทั้งสองไม่จำเป็นต้องตั้งตามดีฟอลต์ — เป็นสองลูกบิดแรกที่ควรหมุนเมื่อการตั้งค่าถูกแต่เส้นทางเครือข่ายผิด
FAQ
Claude Code ทำงานต่างไหมเมื่อใช้ third-party API?
ANTHROPIC_API_KEY กับ ANTHROPIC_AUTH_TOKEN ต่างกันอย่างไร?
การใช้ third-party endpoint ผิดกฎหรือไม่?
บน Windows ต่างไหม?
ถ้าเครดิตหมดจะเกิดอะไรขึ้น?
ใช้ subscription ทางการคู่กับ third-party ได้ไหม?
ต่อแล้วเปลี่ยนโมเดลอื่นได้ไหม?
แยก key ตามโปรเจกต์ได้ไหม?
อ่านต่อ
- หน้าตั้งค่า Claude Code — เวอร์ชันย่อบนเว็บไซต์
- Anthropic Messages API reference — รูปแบบ request/response
- ราคา — ราคาโมเดลแบบเรียลไทม์