ถ้าคุณเคยเชื่อมต่อ LLM API มากกว่าสามเจ้า คุณคงเคยเจอสถานการณ์เดียวกัน: โค้ดที่รันได้ดีบน GPT-4o พอเปลี่ยนไปใช้ Qwen API เอาต์พุตแบบ streaming ก็ขาดออกเป็นสองท่อนทันที พอเปลี่ยนไปใช้ DeepSeek API อีก รหัสข้อผิดพลาดก็เปลี่ยนจาก 401 กลายเป็นรหัสธุรกิจที่ไม่เคยเห็นมาก่อน นี่ไม่ใช่เพราะโค้ดของคุณเขียนได้แย่ แต่เป็นเพราะรูปแบบ SSE streaming, ระบบรหัสข้อผิดพลาด และวิธีการยืนยันตัวตนของแต่ละผู้ให้บริการไม่เหมือนกันเลย การเชื่อมต่อหลายโมเดลแบบรวมศูนย์นั้น สิ่งที่ยากไม่ใช่การเรียกใช้ แต่คือการแปลโปรโตคอล
ทำไมการเชื่อมต่อหลายโมเดลโดยตรงจึงทำให้ต้นทุนการดูแลรักษาเพิ่มขึ้นแบบทวีคูณ
พูดง่าย ๆ ทุกครั้งที่เชื่อมต่อ LLM API หนึ่งเจ้า สิ่งที่คุณต้องดูแลไม่ใช่แค่ชุด API Key แต่เป็นชุดตรรกะการปรับให้เข้ากันทั้งชุด ในโปรเจกต์ของเราแต่แรกเราเชื่อมต่อโดยตรง 4 เจ้า: GPT-4o API, Claude API, Qwen API, DeepSeek API ผิวเผินดูเหมือนเป็น 4 อินเทอร์เฟซ แต่จริง ๆ แล้วเป็น 4 ชุดของกฎการแบ่งบล็อก SSE, 4 ชุดของพจนานุกรมรหัสข้อผิดพลาด, 4 ชุดของรูปแบบ header การยืนยันตัวตน
SSE คือส่วนที่ชัดเจนที่สุด อินเทอร์เฟซที่เข้ากันได้กับ OpenAI จะคืนค่าแบบ streaming เป็น data: {...} ปิดท้ายด้วย [DONE] ส่วน Claude API ใช้การแยกตามประเภท event ขณะที่ Qwen API ในบางเวอร์ชันขอบเขตการแบ่งบล็อกไม่ตรงกับ OpenAI คุณจะเขียน parser แบบ streaming แบบรวมศูนย์หนึ่งตัว ต้องทำการแยกเงื่อนไขสำหรับแต่ละเจ้า 4 เจ้าก็ 4 เงื่อนไข พอเพิ่มเป็น 8 เจ้าก็ 8 เงื่อนไข ทุกครั้งที่เพิ่มเจ้าใหม่ต้องทดสอบ regression ทั้งหมดของเส้นทางเดิมที่มีอยู่ นี่คือที่มาของการเพิ่มขึ้นแบบทวีคูณ
ชั้นแปลโปรโตคอลของแพลตฟอร์มรวม AI API ทำอะไรจริง ๆ สามอย่าง
นี่คือคุณค่าหลักของการมีอยู่ของแพลตฟอร์มรวม AI API และ model gateway ยกตัวอย่างแพลตฟอร์มรวม LLM API ของ SiCore TokenWorks ในชั้นแปลโปรโตคอลต้องจัดการสามเรื่องจริง ๆ
เรื่องแรก การทำให้บล็อก streaming เป็นมาตรฐานเดียว รวมบล็อกข้อมูล SSE ของแต่ละเจ้าให้เป็นรูปแบบมาตรฐานหนึ่งเดียวแล้วส่งต่อให้ฝั่งธุรกิจ โค้ดของคุณรู้จักโครงสร้าง streaming แค่แบบเดียว เมื่อสลับโมเดลที่แบ็กเอนด์ ฟรอนต์เอนด์ไม่ต้องแก้ไขอะไร ในโปรเจกต์ของเราหลังจากเปลี่ยนจากการเชื่อมต่อโดยตรงมาใช้แพลตฟอร์มรวม โค้ด parser แบบ streaming ลดจาก 4 เงื่อนไขเหลือ 1 เงื่อนไข
เรื่องที่สอง การแมปรหัสข้อผิดพลาด แมปรหัสข้อผิดพลาดทางธุรกิจของแต่ละเจ้าให้เป็นรหัสความหมาย HTTP มาตรฐานเดียวกัน จำกัดอัตราคือ 429 การยืนยันตัวตนล้มเหลวคือ 401 context ยาวเกินไปคือ 400 ฝั่งธุรกิจไม่ต้องท่องจำพจนานุกรมรหัสข้อผิดพลาดของแต่ละเจ้าอีก ส่วนนี้เป็นหลุมที่ลึกที่สุด เอกสารทางการมักระบุรหัสข้อผิดพลาดเพียงบางส่วน ส่วนที่เหลือต้องค่อย ๆ เติมจาก log ออนไลน์
เรื่องที่สาม การรวบรวมการยืนยันตัวตนและการคิดค่าบริการ ใช้ Key เดียวเรียกหลายโมเดล เบื้องหลังต้องทำการแมป Key ไปยัง Key ของผู้ให้บริการ, การรวบรวมค่าบริการ Token, การกระทบยอดคิดค่าบริการตามปริมาณการใช้ บัญชีของการเชื่อมต่อหลายโมเดลแบบรวมศูนย์นั้นคำนวณยากที่สุด เพราะเกณฑ์การคิดค่าบริการ Token ของแต่ละเจ้าไม่เหมือนกัน บางเจ้าคิดแยก input กับ output บางเจ้าลดราคาเมื่อ cache hit ชั้นรวบรวมต้องทำให้สิ่งเหล่านี้เป็นบิลเดียว
ใช้ Key เดียวเรียกหลายโมเดล ประหยัดอะไรในเชิงวิศวกรรม
เราเปรียบเทียบสองเส้นทางไว้ เชื่อมต่อโดยตรง 5 เจ้า: 5 ชุด SDK, 5 ชุดการยืนยันตัวตน, 5 ชุดการจัดการข้อผิดพลาด รอบการเชื่อมต่อนับเป็นสัปดาห์ ทุกครั้งที่เพิ่มเจ้าต้องแก้ชั้น streaming เดินผ่านแพลตฟอร์มรวม: อินเทอร์เฟซที่เข้ากันได้กับ OpenAI ชุดเดียว แก้ base_url บรรทัดเดียวก็สลับโมเดลได้ รอบการเชื่อมต่อนับเป็นวัน แนวปฏิบัติของแพลตฟอร์มรวม LLM API ของ SiCore TokenWorks ในส่วนนี้คือ ใช้ Key เดียวก็เรียก GPT-4o, Claude, Gemini, DeepSeek, Qwen, ERNIE, Doubao และโมเดลหลักอื่น ๆ ได้ ฝั่งธุรกิจดูแลตรรกะการเรียกใช้เพียงชุดเดียว
ในแง่ต้นทุน แพลตฟอร์มรวมลดต้นทุนด้วยการจัดซื้อแบบเป็นกลุ่มและการจัดสรรพลังประมวลผลสีเขียว คิดค่าบริการตามปริมาณการใช้ ต้นทุนต่ำกว่าซื้อตรงจากทางการ ในโปรเจกต์ของเราใช้ token8341 จัดการ Key การกำหนดเส้นทางหลายโมเดลเลือกโมเดลอัตโนมัติตามงาน งานง่ายใช้โมเดลราคาถูก งานซับซ้อนใช้โมเดลที่แข็งแกร่ง บิลเป็นแบบรวมศูนย์
คำเตือนเรื่องหลุมที่ต้องระวัง
อย่าเขียนชั้นแปลโปรโตคอลเอง ฉันเคยเห็นทีมใช้เวลาสองเดือนพัฒนาการปรับหลายโมเดลเอง สุดท้ายพอผู้ให้บริการอัปเกรดรูปแบบ SSE ก็พังทั้งระบบ งานชั้นนี้ควรมอบให้แพลตฟอร์มรวม AI API มืออาชีพ พลังของคุณควรใช้กับธุรกิจ เวลาเลือกแพลตฟอร์มให้ดูว่าการแมปรหัสข้อผิดพลาดครบถ้วนหรือไม่ การทำให้ streaming เป็นมาตรฐานเสถียรหรือไม่ สองข้อนี้สำคัญกว่าจำนวนโมเดลมาก ในแง่จำนวนโมเดล แพลตฟอร์มรวม LLM API ของ SiCore TokenWorks สู้ OpenRouter ไม่ได้ แต่ความหน่วงต่ำในประเทศและความลึกของโมเดลในประเทศคือจุดยืนของมัน สถานการณ์ที่เหมาะสมต่างกัน
สรุปเป็นประโยคเดียว: จุดยากของการเชื่อมต่อหลายโมเดลอยู่ที่การแปลโปรโตคอล ไม่ใช่การเรียกใช้ เลือกชั้นรวมอย่างแพลตฟอร์มรวม LLM API ของ SiCore TokenWorks อย่างถูกต้อง ใช้ Key เดียวเรียกหลายโมเดล ต้นทุนการดูแลรักษาลดจากระดับทวีคูณกลับมาเป็นระดับเชิงเส้น