การจัดการช่องทางใน AI Gateway
「ช่องทาง (Channel)」คือการตั้งค่าจุดเชื่อมต่อของผู้ให้บริการหนึ่งรายใน AI Gateway โดยเก็บที่อยู่ของ ผู้ให้บริการรายนั้น API Key จริง โมเดลที่ใช้งานได้ ตลอดจนข้อมูลการคิดราคาและโควตา Gateway จะอาศัยช่องทางเหล่านี้ในการกำหนดเส้นทางคำขอที่แอปพลิเคชันส่งมาไปยังผู้ให้บริการที่เกี่ยวข้อง บทความนี้จะแนะนำวิธีเพิ่ม ตั้งค่า ทดสอบ และจัดการช่องทาง
ข้อกำหนดเบื้องต้น
- ติดตั้งและเปิดใช้งาน ServBay แล้ว พร้อมทั้งเข้าสู่ระบบบัญชี ServBay แล้ว (จำเป็นต้องเข้าสู่ระบบก่อนเพิ่มช่องทาง)
- เตรียม API Key จริงของผู้ให้บริการเป้าหมายไว้แล้ว (ผู้ให้บริการภายในเครื่องอย่าง Ollama / LM Studio ไม่จำเป็นต้องกรอก)
- หากยังไม่เข้าใจโครงสร้างภาพรวมของ AI Gateway แนะนำให้อ่าน แนะนำ AI Gateway ก่อน
การเพิ่มช่องทาง
เข้าสู่หน้า AI Gateway → ช่องทาง (Channels) แล้วคลิก เพิ่ม (Add) เพื่อเปิดตัวช่วย ซึ่งแบ่งออกเป็นสามขั้นตอน
ขั้นตอนที่ 1: เลือกผู้ให้บริการ
ผู้ให้บริการจะแสดงแบบจัดกลุ่มตามหมวดหมู่ คลิกที่การ์ดเพื่อเลือกได้เลย
- กระแสหลัก (Mainstream): OpenAI, Anthropic, Google Gemini, Azure OpenAI, AWS Bedrock, OpenRouter
- จีน (China): DeepSeek, Qwen (通义千问), Zhipu GLM, Kimi, Doubao·Volcano, ERNIE Bot (文心一言), Hunyuan, MiniMax, 01.AI, StepFun (阶跃星辰)
- ภายในเครื่อง (Local): Ollama, LM Studio
- กำหนดเอง (Custom): OpenAI Compatible, Custom
หลังจากเลือกผู้ให้บริการแล้ว Gateway จะกรอก Base URL เริ่มต้นของผู้ให้บริการรายนั้นให้โดยอัตโนมัติ
การสลับสองภูมิภาค
ผู้ให้บริการจากจีนอย่าง Qwen, Zhipu GLM, Kimi, Doubao·Volcano, Hunyuan, MiniMax และ StepFun ต่างมี endpoint สองชุดให้เลือก ทั้งในประเทศจีนและทั่วโลก เมื่อเลือกผู้ให้บริการประเภทนี้ ตัวช่วยจะแสดงตัวเลือก "ภูมิภาค" (🇨🇳 ในประเทศ / 🌐 ทั่วโลก) ขึ้นมา เมื่อสลับแล้ว Base URL จะอัปเดตเป็นที่อยู่ของภูมิภาคที่เลือกให้โดยอัตโนมัติ
ขั้นตอนที่ 2: กรอกการตั้งค่า
- ชื่อช่องทาง (จำเป็น) — ใช้สำหรับระบุช่องทางนี้ในรายการ สามารถกำหนดเองได้
- Base URL (จำเป็น) — ที่อยู่ API ของผู้ให้บริการ ผู้ให้บริการส่วนใหญ่จะกรอกไว้ให้อัตโนมัติแล้ว ส่วน Azure OpenAI และ Custom จะต้องกรอกด้วยตนเอง
- API Key (ไม่บังคับ) — คีย์จริงของผู้ให้บริการ หากเว้นว่างไว้ จะทดสอบได้เพียงว่า endpoint เข้าถึงได้หรือไม่ แต่จะยืนยันความถูกต้องของคีย์ไม่ได้ ผู้ให้บริการภายในเครื่อง (Ollama / LM Studio) โดยทั่วไปไม่จำเป็นต้องกรอก
- โมเดล — มีสองวิธี เลือกอย่างใดอย่างหนึ่ง:
- ค้นหาอัตโนมัติ: หลังคลิกค้นหา Gateway จะเรียก API รายการโมเดลของผู้ให้บริการเพื่อดึงโมเดลที่ใช้งานได้ แล้วให้คุณเลือกหลายรายการในรูปแบบป้าย (chip)
- กรอกด้วยตนเอง: พิมพ์ชื่อโมเดลโดยตรง สำหรับช่องทาง Azure ต้องกรอกชื่อการปรับใช้ (Deployment name) แทนชื่อโมเดล
- ลำดับความสำคัญ / น้ำหนัก — เมื่อมีหลายช่องทางที่ให้บริการโมเดลเดียวกันได้ Gateway จะใช้ค่านี้ในการกำหนดเส้นทางและการกระจายโหลด
ข้อควรระวังสำหรับ Azure OpenAI
ในช่อง "โมเดล" ของช่องทาง Azure ควรกรอกชื่อการปรับใช้ (Deployment name) ที่คุณสร้างใน Azure Portal ไม่ใช่ชื่อโมเดลต้นทาง และ Base URL ก็ต้องกรอก endpoint ของทรัพยากร Azure ของคุณด้วย
ขั้นตอนที่ 3: ยืนยันและส่งข้อมูล
ตรวจสอบสรุปการตั้งค่าแล้วจึงส่งข้อมูล เมื่อส่งสำเร็จ ช่องทางใหม่จะปรากฏในรายการช่องทาง พร้อมแสดงสถานะสุขภาพแบบเรียลไทม์
การตรวจสอบความสามารถและกลยุทธ์การกำหนดเส้นทาง
หลังจากเพิ่มช่องทางแล้ว Gateway จะทำการตรวจสอบความสามารถ (capability probing) กับช่องทางนั้น ซึ่งเป็นกลไกการกำหนดเส้นทางอัจฉริยะที่เป็นหัวใจหลักที่สุดของ AI Gateway ผลการตรวจสอบจะกำหนดว่าเครื่องมืออย่าง Claude Code จะใช้งานได้โดยตรง หรือต้องสร้างการแมปโมเดล ตลอดจนวิธีเลือกโมเดลเป้าหมาย
ตัวชี้วัดสำคัญสองประการของการตรวจสอบ
Gateway จะตรวจสอบข้อเท็จจริงหลักสองประการสำหรับแต่ละช่องทาง (ทั้งคู่มีสามสถานะ: true / false / ยังไม่ทราบผล):
| รายการตรวจสอบ | ความหมาย | true | false | ยังไม่ทราบผล |
|---|---|---|---|---|
รู้จักชื่อโมเดล Claude (accepts_claude_names) | ช่องทางรู้จักชื่อโมเดล claude-opus-* / claude-sonnet-* / claude-haiku-* เหล่านี้โดยตรงหรือไม่ | เชื่อมต่อตรงได้เลย ไม่ต้องแมป | ไม่รู้จัก ต้องสร้างการแมปเพื่อแปลชื่อ claude-* เป็นชื่อโมเดลจริงของต้นทาง | การตรวจสอบไม่ได้รันหรือล้มเหลว สรุปผลไม่ได้ |
แยกตามระดับ (tier_aware) | ต้นทางส่งคืนโมเดลที่ต่างกันตามระดับ opus / sonnet / haiku ด้วยตัวเองหรือไม่ | ต้นทางแยกระดับไว้แล้ว ปล่อยให้ต้นทางจัดการได้เลย | ไม่แยก (ส่งคืนโมเดลเดียวกันทุกระดับ) Gateway ต้องสร้างการแมป | ตรวจสอบไม่ได้หรือยังไม่เคยตรวจ |
ทำไมต้องตรวจสอบแทนที่จะเดา
ผู้ให้บริการแต่ละรายมีพฤติกรรมแตกต่างกันมาก OpenAI ไม่รู้จักชื่อโมเดล claude-* โดยตรง ผู้ให้บริการตัวกลางบางรายรู้จักผ่านการส่งต่อ ส่วนผู้ให้บริการแบบแพ็กเกจเขียนโค้ด (เช่น การสมัคร Claude Pro/Max) อาจรู้จักเฉพาะชื่อโมเดลที่ผูกกับการสมัครเท่านั้น Gateway ไม่ได้เดาจากประเภทช่องทาง แต่จะตรวจสอบจริงก่อนแล้วจึงตัดสินใจกลยุทธ์การกำหนดเส้นทาง
การตัดสินการกำหนดเส้นทาง: ห้าสถานะ
เมื่อคุณใช้ "接管一键" กับ Claude Code ที่หน้า AI Gateway → การจัดการการเชื่อมต่อ → ไคลเอนต์ Gateway จะรวบรวมผลการตรวจสอบของช่องทางตัวเลือกทั้งหมด แล้วได้การตัดสินการกำหนดเส้นทางออกมา:
| สถานะช่องทางตัวเลือก | ผลตัดสิน | ความหมาย |
|---|---|---|
| ไม่มีช่องทางตัวเลือกที่ใช้ได้ (ไม่มีช่องทาง / ไม่มีช่องทางไหนสุขภาพดี / ไม่มีช่องทางในขอบเขตของ virtual key) | ไม่มีช่องทางตัวเลือก | คุณต้องเพิ่มหรือซ่อมแซมช่องทางก่อน |
| ช่องทางตัวเลือกใดช่องทางหนึ่งมีค่าตรวจสอบเป็นยังไม่ทราบผล | ยังไม่ได้ตรวจสอบ | ต้องรันการตรวจสอบก่อนหนึ่งครั้ง จะสร้างการแมปบนพื้นฐานที่ยังไม่ได้ยืนยันไม่ได้ |
| ช่องทางตัวเลือกทั้งหมดรู้จักชื่อโมเดล claude | เชื่อมต่อตรง | ไม่สร้างการแมป ส่งต่อคำขอไปตามเดิม |
| ช่องทางตัวเลือกทั้งหมดไม่รู้จักชื่อโมเดล claude | ต้องแมป | Gateway สร้างการแมปสามระดับ แปล claude-* เป็นชื่อโมเดลจริงของต้นทาง |
| ในตัวเลือกมีทั้งที่รู้จักและไม่รู้จัก | แบบผสม | ต้องให้คนตัดสินใจ (ที่รู้จักส่งตรง ส่วนที่ไม่รู้จักใช้การแมป) |
การแมปโมเดล: แปล claude-* เป็นโมเดลจริงของต้นทาง
เมื่อผลตัดสินเป็น「ต้องแมป」 Gateway จะสร้างกฎการแมปโมเดลสามข้อสำหรับ Claude Code ครอบคลุมสามระดับตามลำดับ:
| ชื่อโมเดลที่ Claude Code ส่งออก | กฎการแมป (ไวลด์การ์ด) | แมปไปยัง |
|---|---|---|
claude-opus-* | จับคู่คำขอระดับ opus ทั้งหมด | โมเดลเรือธงในช่องทางตัวเลือก |
claude-sonnet-* | จับคู่คำขอระดับ sonnet ทั้งหมด | โมเดลเรือธงหรือโมเดลมาตรฐานในช่องทางตัวเลือก |
claude-haiku-* | จับคู่คำขอระดับ haiku ทั้งหมด | โมเดลน้ำหนักเบาในช่องทางตัวเลือก |
กฎการเลือกโมเดลเป้าหมาย (ไล่ตามลำดับความสำคัญ):
- ค่าที่ตั้งไว้ล่วงหน้าตามตระกูล: หากในโมเดลตัวเลือกมีคีย์เวิร์ดของตระกูลที่รู้จัก (เช่น
glm) ให้เลือกโมเดลเรือธงของตระกูลนั้น (เช่นglm-5.2) เป็นเป้าหมายระดับ opus/sonnet และเลือกโมเดลน้ำหนักเบาของตระกูลนั้น (เช่นglm-4.7-flash) เป็นเป้าหมายระดับ haiku ทันที - การจับคู่คีย์เวิร์ด: เมื่อไม่มีค่าที่ตั้งไว้ล่วงหน้าตามตระกูล opus/sonnet จะเลือกโมเดลแรกในรายการตัวเลือก ส่วน haiku จะเลือกโมเดลแรกในตัวเลือกที่ตรงกับคีย์เวิร์ดน้ำหนักเบา (
flash/mini/lite/air/small/turbo/haiku) - ตัวสำรอง: หากยังไม่ตรง ระดับทั้งสามจะเลือกโมเดลแรกในรายการตัวเลือก
การตั้งค่าระดับ haiku ผิดมีราคาแพงที่สุด
ระดับ haiku ของ Claude Code มีปริมาณการเรียกใช้งานมากที่สุด (การเรียกใช้แบบน้ำหนักเบาในการสนทนาแต่ละครั้งใช้ระดับนี้) หากเผลอใส่โมเดลเรือธงลงในระดับ haiku ค่าใช้จ่ายอาจเพิ่มขึ้นหลายเท่า ตารางจับคู่คีย์เวิร์ดของ Gateway ครอบคลุมคำต่อท้ายน้ำหนักเบา 7 แบบ (flash / mini / lite / air / small / turbo / haiku) เพื่อให้มั่นใจว่าจะไม่ใส่โมเดลหนักลงในระดับ haiku
กลไกการเขียนการแมป
หลังจากยืนยันการ接管 Gateway จะเขียนบันทึกการแมปผ่าน API /admin/model-mappings โดยแต่ละบันทึกการแมปประกอบด้วย:
- โปรโตคอลต้นทาง (
source_protocol):anthropic(คำขอที่ Claude Code ส่งออกเป็นรูปแบบ Anthropic) - การจับคู่โมเดลต้นทาง (
source_model_pattern): ไวลด์การ์ด เช่นclaude-opus-* - โปรโตคอลเป้าหมาย (
target_protocol):openai(แปลงเป็นรูปแบบ OpenAI แบบเดียวกันทั้งหมดก่อนส่งให้ต้นทาง) - โมเดลเป้าหมาย (
target_model): ชื่อโมเดลเฉพาะที่เลือกจากการตรวจสอบ
การเขียนเป็นแบบ idempotent (ทำซ้ำได้โดยไม่เกิดผลซ้ำ) — การ接管ซ้ำจะไม่สร้างการแมปซ้ำ ก่อนเขียนจะดึงรายการการแมปที่มีอยู่มาเปรียบเทียบก่อน
กฎการกำหนดเส้นทางขณะทำงาน: failover และการลดระดับ
นอกเหนือจากการแมปแบบคงที่ที่เขียนในขั้นตอนการ接管 Gateway ยังรองรับกฎการกำหนดเส้นทางขณะทำงาน (routing rules) ที่ตัดสินใจแบบไดนามิกเมื่อคำขอผ่าน Gateway:
| ฟิลด์ของกฎ | หน้าที่ |
|---|---|
เงื่อนไขการทริกเกอร์ (condition_type) | ทริกเกอร์การลดระดับเมื่อใด เช่น เมื่อโควตาของช่องทางหมด (quota_exhausted) |
เกณฑ์ต้นทุน (cost_threshold_usd) | ไม่บังคับ: ทริกเกอร์เมื่อต้นทุนสะสมของช่องทางนั้นเกินเกณฑ์ |
การกระทำ (action_type) | ทำอะไรหลังทริกเกอร์ เช่น สลับไปยังช่องทางสำรองที่ระบุ (switch_to) |
ช่องทางเป้าหมาย (target_channel_id) | ช่องทางสำรองที่ลดระดับไป |
โมเดลเป้าหมาย (target_model) | ไม่บังคับ: สลับโมเดลพร้อมกันเมื่อลดระดับไปยังช่องทางสำรอง |
การรวมกฎการกำหนดเส้นทางหลายข้อเข้าด้วยกัน ช่วยให้คุณทำได้ เช่น เมื่อโควตาการสมัครของช่องทาง A หมด จะสลับไปยัง endpoint แบบจ่ายตามการใช้งานของช่องทาง B โดยอัตโนมัติ หรือเมื่อต้นทุน 24 ชั่วโมงของช่องทางใดช่องทางหนึ่งเกินขีดจำกัด จะลดระดับไปยังโมเดลที่ถูกกว่า
การกระจายโหลดและลำดับความสำคัญ
เมื่อมีหลายช่องทางที่สุขภาพดีสามารถให้บริการโมเดลเดียวกันได้ Gateway จะเลือกตามกลยุทธ์ต่อไปนี้:
- โหมดลำดับความสำคัญ (ค่าเริ่มต้น): เลือกเฉพาะช่องทางที่มีลำดับความสำคัญสูงสุดเท่านั้น ในกลุ่มช่องทางที่มีลำดับความสำคัญเท่ากัน Gateway จะกระจายตามน้ำหนักภายใน
- โหมดหมุนเวียน (
round_robin): กระจายคำขอสลับกันไปในช่องทางตัวเลือกที่สุขภาพดีทั้งหมด
ลำดับความสำคัญตั้งค่าได้ในการตั้งค่าช่องทาง (ตัวเลขยิ่งมากยิ่งมีลำดับความสำคัญสูง) ส่วน allowed_channels ของ virtual key จะจำกัดขอบเขตช่องทางที่เลือกได้
การทดสอบการเชื่อมต่อ
ในรายการช่องทาง คุณสามารถทำการทดสอบการเชื่อมต่อกับช่องทางเดียวได้ การทดสอบแบ่งเป็นสองมิติ:
- การเข้าถึง endpoint ได้ (reachable) — ตรวจสอบว่า Base URL เชื่อมต่อได้หรือไม่ (เครือข่ายและที่อยู่ถูกต้องหรือไม่)
- ความถูกต้องของคีย์ (authenticated) — เรียกใช้ API ของผู้ให้บริการจริงเพื่อยืนยันว่า API Key ถูกต้องหรือไม่ จะยืนยันเฉพาะเมื่อกรอก API Key ไว้เท่านั้น
ผลการทดสอบจะแสดง: ความหน่วงไปกลับ (มิลลิวินาที) ป้ายสถานะ และข้อความข้อผิดพลาด
TIP
ในตัวช่วยเพิ่มช่องทาง หาก endpoint เข้าถึงไม่ได้ จะบล็อกไม่ให้คุณไปยังขั้นตอนถัดไป แต่หาก endpoint เข้าถึงได้แต่คีย์ไม่ถูกต้อง จะแจ้งเตือนเท่านั้น คุณยังดำเนินการต่อได้ (เช่น ในกรณีที่คุณตั้งใจจะเติมคีย์ในภายหลัง)
การตั้งค่าขั้นสูง
เมื่อเพิ่มหรือแก้ไขช่องทาง สามารถขยายการตั้งค่าขั้นสูงได้ ใช้สำหรับการคำนวณต้นทุนและการควบคุมโควตา:
- ตัวคูณการคิดราคา (Rate Multiplier) — คูณตัวคูณเข้ากับราคาทางการของผู้ให้บริการ เพื่อความสะดวกในการคำนวณตามต้นทุนจริงหรือราคาขายต่อของคุณ ค่าเริ่มต้นคือ
1.0 - โครงสร้างการคิดค่าบริการ — อธิบายวิธีการคิดค่าบริการของช่องทางนั้น เช่น จ่ายตามการใช้งาน (pay as you go), การสมัคร (subscription), แพ็กเกจ (package)
- ยอดคงเหลือ — แหล่งที่มาของยอดคงเหลือเลือกได้ระหว่างค่าคงที่ บิล OSS หรือดูแลด้วยตนเอง เมื่อเลือกบิล OSS ยังระบุประเภทบิลได้ด้วย ยอดคงเหลือและเวลาที่อัปเดตจะแสดงแบบอ่านอย่างเดียวในรายละเอียดช่องทาง
- วันหมดอายุการสมัคร — ช่องทางประเภทการสมัคร / แพ็กเกจสามารถบันทึกวันหมดอายุได้
- การจำกัดโควตา — ตั้งเพดานได้ตามจำนวน Token จำนวนคำขอ หรือจำนวนเงิน พร้อมเลือกรอบระยะเวลา (รายวัน / รายสัปดาห์ / รายเดือน / กำหนดเอง) เมื่อโควตาหมด ช่องทางนั้นจะถูกตัดออกจากการเลือกเส้นทางโดยอัตโนมัติ เป็นวาล์วนิรภัยที่ป้องกันการใช้จ่ายเกินโดยไม่คาดคิด
การแก้ไขและลบช่องทาง
- แก้ไข — เปิดช่องทางใดช่องทางหนึ่งในรายการช่องทางเพื่อแก้ไขชื่อ Base URL API Key โมเดล และการตั้งค่าขั้นสูง
- ลบ — หลังจากลบช่องทางแล้ว virtual key ที่พึ่งพาช่องทางนั้นจะไม่สามารถกำหนดเส้นทางไปยังช่องทางนั้นได้อีก โปรดดำเนินการด้วยความระมัดระวัง
สถานะสุขภาพ
รายการช่องทางและหน้าภาพรวม จะแสดงสถานะสุขภาพของแต่ละช่องทางแบบเรียลไทม์ (ปกติ / ลดระดับ / ใช้งานไม่ได้) ช่วยให้คุณค้นหาการตั้งค่าผู้ให้บริการที่ใช้งานไม่ได้ได้อย่างรวดเร็ว
คำถามที่พบบ่อย (FAQ)
- ถาม: เมื่อเพิ่มช่องทางแล้วมีข้อความแจ้งว่าต้องเข้าสู่ระบบ?
- ตอบ: AI Gateway เป็นฟีเจอร์เสริมของ ServBay ก่อนเพิ่มช่องทาง / คีย์ต้องเข้าสู่ระบบบัญชี ServBay ก่อน เพียงทำตามคำแนะนำบนหน้าจอเพื่อเข้าสู่ระบบ
- ถาม: มีข้อความแจ้งว่าจำนวนช่องทางถึงขีดจำกัดแล้ว?
- ตอบ: จำนวนช่องทางที่สร้างได้ขึ้นอยู่กับแพ็กเกจของบัญชี เมื่อถึงขีดจำกัดสามารถลบช่องทางที่ไม่ใช้หรืออัปเกรดแพ็กเกจได้
- ถาม: การค้นหาโมเดลอัตโนมัติดึงรายการไม่ได้?
- ตอบ: โปรดตรวจสอบก่อนว่า Base URL ถูกต้องและ API Key ใช้งานได้ (ใช้ "ความถูกต้องของคีย์" ในการทดสอบการเชื่อมต่อเพื่อยืนยัน) ผู้ให้บริการบางรายต้องมีคีย์ที่ถูกต้องจึงจะส่งคืนรายการโมเดล หรือจะเปลี่ยนไปกรอกชื่อโมเดลด้วยตนเองก็ได้
- ถาม: การเชื่อมต่อ Ollama / LM Studio ภายในเครื่องต้องกรอก Key ไหม?
- ตอบ: โดยทั่วไปไม่ต้อง เพียงตรวจสอบว่าบริการภายในเครื่องที่เกี่ยวข้องเปิดทำงานและรับฟังพอร์ตเริ่มต้นอยู่ (Ollama
11434, LM Studio1234) ก็เพียงพอ
- ตอบ: โดยทั่วไปไม่ต้อง เพียงตรวจสอบว่าบริการภายในเครื่องที่เกี่ยวข้องเปิดทำงานและรับฟังพอร์ตเริ่มต้นอยู่ (Ollama
สรุป
ช่องทางเป็นพื้นฐานของการกำหนดเส้นทางคำขอใน AI Gateway ผ่านตัวช่วยสามขั้นตอน คุณสามารถเชื่อมต่อผู้ให้บริการเกือบ 20 รายได้อย่างรวดเร็ว พร้อมด้วยการสลับสองภูมิภาค การค้นหาโมเดลอัตโนมัติ และการทดสอบการเชื่อมต่อสองมิติเพื่อให้มั่นใจว่าการตั้งค่าถูกต้อง จากนั้นจึงใช้การตั้งค่าขั้นสูงอย่างการคิดราคาและโควตาเพื่อจัดการต้นทุนอย่างละเอียด หลังจากตั้งค่าช่องทางเสร็จแล้ว ก็สามารถสร้าง virtual key เพื่อให้แอปพลิเคชันและเครื่องมือใช้งานได้
