การกำหนดเส้นทางและการเลือกโมเดล: ความสัมพันธ์ระหว่างช่องทาง โมเดล และไคลเอนต์
เมื่อใช้งาน AI Gateway สิ่งที่มักทำให้สับสนที่สุดคือแนวคิดสามอย่าง ได้แก่ ช่องทาง (channel), โมเดล (model) และ ไคลเอนต์ (client) การเข้าใจความสัมพันธ์ของทั้งสามจะช่วยให้คุณตั้งค่าการกำหนดเส้นทางได้ถูกต้อง และหลีกเลี่ยงความสงสัยประเภท "ทำไมคำขอถึงไม่ไปตามช่องทางที่ฉันคาดหวังไว้"
แนวคิดพื้นฐานสามอย่าง
- ช่องทาง คือการเชื่อมต่ออัปสตรีมหนึ่งช่อง: อินสแตนซ์ Ollama หนึ่งตัว หรือบัญชีผู้ให้บริการคลาวด์หนึ่งบัญชี
- โมเดล คือความสามารถหนึ่งอย่างบนช่องทาง: เช่น ชื่อโมเดลเฉพาะอย่าง
qwen3:8b - ไคลเอนต์ คือเครื่องมือ AI ที่คุณใช้ในชีวิตประจำวัน: Claude Code, Codex, opencode ฯลฯ
ความสัมพันธ์ของทั้งสามเป็นเส้นทางทางเดียว:
ไคลเอนต์ → (คีย์เสมือน) → เกตเวย์ (กลยุทธ์การกำหนดเส้นทาง) → ช่องทาง → โมเดล
ในทุกคำขอ ไคลเอนต์จะเป็นผู้ระบุชื่อโมเดลไว้ในคำขอ เกตเวย์จะค้นหาช่องทางที่สามารถให้บริการโมเดลนั้นได้จากชื่อโมเดล แล้วส่งคำขอต่อไปยังช่องทางดังกล่าว
"model (ชื่อช่องทาง)" ในรายการโมเดลหมายความว่าอย่างไร
ในตัวเลือกโมเดลของไคลเอนต์อย่าง Claude Code, opencode คุณจะเห็นรายการอย่าง qwen3:8b (Ollama Qwen3) ชื่อในวงเล็บหมายถึง ช่องทางต้นทางของโมเดลนั้น ไม่ใช่ "อีกการเชื่อมต่อหนึ่ง":
- ระหว่างไคลเอนต์ของคุณกับเกตเวย์มีการเชื่อมต่อเพียงช่องเดียวเสมอ (หนึ่งที่อยู่ + หนึ่งคีย์เสมือน)
- โมเดลเดียวกันสามารถตั้งค่าไว้บนหลายช่องทางได้ ในกรณีนี้ ตัวเลือกโมเดลจะยังคงแสดงเพียงบรรทัดเดียว (วงเล็บจะแสดงช่องทางต้นทางหนึ่งช่อง) ส่วนแต่ละคำขอจะได้รับบริการจากช่องทางใดจริง ๆ ขึ้นอยู่กับกลยุทธ์การกำหนดเส้นทาง (ดูด้านล่าง)
โหมดการกำหนดเส้นทางสามแบบ: Fixed, Failover, Balanced
คำถามที่กลยุทธ์การกำหนดเส้นทางตอบคือ: เมื่อโมเดลเดียวกันมีหลายช่องทางที่ให้บริการได้ จะใช้ช่องทางใด?
| โหมด | พฤติกรรม | เหมาะกับสถานการณ์ |
|---|---|---|
| Fixed (แบบคงที่) | ใช้ช่องทางเดิมตลอดไป | ช่องทางมีคุณภาพเสถียร ต้องการล็อกแหล่งที่มา |
| Failover (แบบหลัก-สำรอง) | เมื่อช่องทางหลักล้มเหลวหรือโควตาหมด จะสลับไปยังช่องทางสำรองตามลำดับ | การตั้งค่าแบบมีช่องทางหลักและสำรอง |
| Balanced (แบบกระจายโหลด) | กระจายคำขอแบบหมุนเวียนระหว่างช่องทางที่ใช้งานได้ | กระจายภาระงานระหว่างช่องทางคุณภาพเท่ากันหลายช่อง |
ขอบเขตสำคัญสองข้อ:
- การกำหนดเส้นทางสลับได้เฉพาะระหว่างช่องทาง ไม่ใช่สลับโมเดล โมเดลที่จะขอใช้งานถูกกำหนดโดยไคลเอนต์ของคุณเสมอ เกตเวย์จะไม่เปลี่ยนโมเดลให้คุณเอง
- โมเดลที่ต่างกันอยู่ที่ช่องทางของตัวเองอยู่แล้ว Balanced จะไม่ทำแบบ "ครั้งนี้ใช้โมเดลจากช่องทาง A ครั้งหน้าใช้โมเดลจากช่องทาง B" — มันหมุนเวียนเฉพาะระหว่างหลายช่องทางของ โมเดลเดียวกัน เท่านั้น
โมเดลถูกกำหนดโดยไคลเอนต์: วิธีสลับโมเดล
เกตเวย์ทำหน้าที่เพียงส่งต่อเท่านั้น: เครื่องมือของคุณแนบชื่อโมเดลมากับทุกคำขอ และเกตเวย์ก็กำหนดเส้นทางตามนั้น การสลับโมเดลทำในไคลเอนต์:
- opencode: พิมพ์
/modelsใน TUI เพื่อเลือก หรือตั้งค่าmodel(โมเดลหลัก) และsmall_model(งานเบา ๆ เช่น การสร้างหัวข้อ) ในopencode.json - Claude Code: ใช้คำสั่ง
/modelเพื่อสลับ - Codex: ระบุด้วยพารามิเตอร์
-m <model>หรือผ่านไฟล์คอนฟิก
เชื่อมต่อเครื่องมือประจำวันเข้ากับเกตเวย์อย่างปลอดภัย
กังวลว่าจะกระทบการใช้งานประจำวัน? ทำตามขั้นตอนนี้:
- ทดลองกับโปรเจกต์รองก่อน: ทำการเชื่อมต่อแบบคลิกเดียวในไดเรกทอรีโปรเจกต์ที่ไม่สำคัญ แล้วยืนยันว่าเวิร์กโฟลว์ทำงานปกติ
- ตรวจสอบด้วยคำขอเดียว: ส่งคำขอทดสอบหนึ่งรายการ แล้วไปที่หน้า "บันทึกการใช้งาน" เพื่อดูว่าคำขอไปที่โมเดลใด ช่องทางใด และมีต้นทุนเท่าไร
- ย้อนกลับได้ทุกเมื่อ: หยุดการเข้าควบคุมได้ที่หน้า "จัดการการเชื่อมต่อ" เมื่อหยุดแล้ว: คอนฟิกที่ ServBay เขียนไว้จะถูกลบออก และคีย์เสมือนที่สร้างขึ้นจากการเข้าควบคุมจะถูกเพิกถอน คอนฟิกที่คุณปรับแต่งเองไว้ก่อนหน้าจะไม่ถูกกู้คืนโดยอัตโนมัติ หากจำเป็นโปรดปรับแต่งด้วยตนเอง และการเปลี่ยนแปลงจะมีผลหลังจากรีสตาร์ทไคลเอนต์
สรุป
- ช่องทาง = การเชื่อมต่ออัปสตรีม; โมเดล = ความสามารถบนช่องทาง; ชื่อโมเดลถูกระบุโดยไคลเอนต์ในทุกคำขอ
- กลยุทธ์การกำหนดเส้นทางเลือกเฉพาะระหว่าง "หลายช่องทางของโมเดลเดียวกัน" เท่านั้น: Fixed คงที่, Failover หลัก-สำรอง, Balanced หมุนเวียน
- สลับโมเดลในตัวเลือกโมเดลของไคลเอนต์ และตรวจสอบว่าคำขอแต่ละรายการไปที่ช่องทางใดพร้อมต้นทุนเท่าไร ได้ที่หน้า "บันทึกการใช้งาน"
