ชี้ Continue ไปที่ custom OpenAI-compatible endpoint
Updated 2026-07-29
Continue ตั้งค่าโมเดลแบบ declarative ใน config.yaml ตั้ง provider เป็น openai ชี้ apiBase ไปที่ https://api.apisrouter.com/v1 แล้วทุก model block ที่คุณเพิ่มจะเลือกได้ใน extension พร้อม role chat, edit และ apply ที่กำหนดต่อโมเดลได้ภายใต้ key เดียว
คำตอบสั้น ๆ: model block ที่ provider เป็น openai พร้อม apiBase
provider openai ของ Continue รับ apiBase override ได้ ซึ่งเป็นเส้นทางที่มีเอกสารรองรับสำหรับ server แบบ OpenAI-compatible ใด ๆ เพิ่ม model block ใน config.yaml โดยตั้ง provider เป็น openai, apiBase เป็น https://api.apisrouter.com/v1, model id เป๊ะ ๆ และ key ของคุณ โมเดลจะปรากฏใน model selector ของ Continue และทุก request ที่มันส่งจะไปที่ gateway ผ่าน /v1/chat/completions มาตรฐาน กลไกเดียวกันนี้ครอบคลุมโมเดลได้มากเท่าที่คุณต้องการ: หนึ่ง block ต่อ id ทั้งหมดใช้ apiBase และ key ร่วมกัน เพราะ Continue ปฏิบัติกับฟิลด์ model เป็นสตริงธรรมดา id จากคนละ vendor อย่าง Claude ต่อด้วย GPT ต่อด้วย DeepSeek จึงอยู่เคียงข้างกันในไฟล์ config เดียว
models:
- name: Claude Sonnet 4.6
provider: openai
model: claude-sonnet-4-6
apiBase: https://api.apisrouter.com/v1
apiKey: sk-APIsRouter-...
roles:
- chat
- edit
- applyContinue มอบหมายงานให้โมเดลอย่างไร: roles
Continue (continuedev บน GitHub มีดาวราว 34K) คือ IDE agent สำหรับ VS Code และ JetBrains แนวคิด config ที่นิยามตัวมันคือ roles model block แต่ละอันมี list roles และ Continue route งานแต่ละประเภทไปยังโมเดลที่ถือ role นั้น: chat สำหรับแผงสนทนาและงาน agent, edit สำหรับการแปลงโค้ดแบบ inline, apply สำหรับการรวมการเปลี่ยนแปลงที่เสนอเข้ากับไฟล์ บวก autocomplete, embed และ rerank สำหรับ subsystem ของแต่ละอย่าง นี่คือคันโยกที่ทำให้ endpoint หลาย vendor น่าสนใจใน Continue โดยเฉพาะ chat ต้องการโมเดลที่แข็งแกร่งที่สุดที่คุณให้เหตุผลได้ ส่วน edit และ apply เป็น call ที่สั้นกว่าและเป็นกลไกมากกว่า ซึ่ง id ระดับกลางที่เร็วทำหน้าที่ได้ ด้วย apiBase เดียวที่เสิร์ฟทุก vendor การแบ่งนี้เป็นแค่ YAML ล้วน ๆ: Claude id ถือ chat, id ที่เร็วถือ edit และ apply, key เดียวข้ามทั้งหมด ขอบเขตหนึ่งที่บอกตรง ๆ: autocomplete เป็นงานแบบ fill-in-the-middle และ role autocomplete ของ Continue ถูกสร้างขึ้นรอบโมเดลที่ฝึกมาสำหรับฟอร์แมต completion นั้นมากกว่าแชท gateway แบบ chat-completions เป็นบ้านที่ถูกต้องสำหรับ traffic chat, edit และ apply เก็บ autocomplete ไว้บนการตั้งค่า FIM-capable ที่คุณใช้อยู่ทุกวันนี้ แทนที่จะกำหนด role นั้นให้กับ chat model แล้วคาดหวังคำแนะนำที่ดี
ตั้งค่าแบบเต็ม: หลายโมเดล แบ่ง role ประกาศ context
ไฟล์ config อยู่ที่ ~/.continue/config.yaml ชื่อของแต่ละ block คือ label ที่แสดงใน selector ส่วน model คือ id เป๊ะ ๆ ที่ gateway เสิร์ฟ defaultCompletionOptions.contextLength ประกาศ context window ของโมเดล และ Continue ใช้มันตัดสินว่าจะบรรจุบทสนทนาและ file context เข้าไปใน request มากแค่ไหน ดังนั้นการปล่อยค่านี้ไว้ที่ค่าเริ่มต้นแบบระมัดระวังบนโมเดล long-context จะตัด context เร็วเกินไป capability ปกติจะถูกตรวจจับอัตโนมัติ แต่สำหรับ id ที่ Continue ไม่รู้จัก คุณระบุมันได้ตรง ๆ: capabilities: [tool_use] บอก agent mode ว่ามันขับเคลื่อน tool ด้วยโมเดลนั้นได้ เรื่อง key: YAML รับ apiKey แบบตัวอักษรตรง ๆ ได้ ซึ่งใช้ได้ดีสำหรับไฟล์ local ที่ไม่หลุดออกจากเครื่องคุณ Continue ยังรองรับ syntax แบบ secrets template รูปแบบ ${{ secrets.APISROUTER_API_KEY }} สำหรับ config ที่จัดการผ่าน hub ของมัน ซึ่งเก็บค่าตัวจริงไม่ให้อยู่ในไฟล์ที่แชร์กัน ใช้รูปแบบที่ตรงกับที่ config ของคุณอยู่
models:
- name: Claude Sonnet 4.6
provider: openai
model: claude-sonnet-4-6
apiBase: https://api.apisrouter.com/v1
apiKey: ${{ secrets.APISROUTER_API_KEY }}
roles: [chat, edit]
capabilities: [tool_use]
defaultCompletionOptions:
contextLength: 200000
- name: Claude Haiku 4.5
provider: openai
model: claude-haiku-4-5-20251001
apiBase: https://api.apisrouter.com/v1
apiKey: ${{ secrets.APISROUTER_API_KEY }}
roles: [edit, apply]
- name: GPT-5.5
provider: openai
model: gpt-5.5
apiBase: https://api.apisrouter.com/v1
apiKey: ${{ secrets.APISROUTER_API_KEY }}
roles: [chat]เลือกโมเดลตาม role
การกำหนด role ยังเป็นกลไกเปรียบเทียบด้วย ตรึง edit และ apply ไว้คงที่ สลับ block chat ระหว่างสอง id ที่เป็นตัวเลือกเป็นเวลาสัปดาห์ละครั้ง แล้วให้มุมมอง usage ต่อ key ตั้งราคาส่วนต่างบนงานจริงของคุณ แต่ละตัวเลือกคือ YAML สามบรรทัดกับ endpoint เดียวกัน
- chat แบก agent loop และบทสนทนายาว ๆ: อ่านไฟล์, วางแผน edit, ตอบคำถามบน context จริง โมเดลระดับ frontier (claude-sonnet-4-6, gpt-5.5) ควรอยู่ที่นี่ และ token ส่วนใหญ่ของคุณไปที่นี่
- edit จัดการการแปลงโค้ดที่ไฮไลต์ไว้ call สั้นและเป็นกลไกมากกว่า chat ดังนั้น id ที่เร็วอย่าง claude-haiku-4-5-20251001 หรือ gpt-5.4-mini ทำให้ loop ของ edit คล่องตัวโดยไม่ลดผลลัพธ์
- apply รวมการเปลี่ยนแปลงที่เสนอเข้ากับไฟล์ เป็น role ที่เป็นกลไกที่สุดในสามอย่าง และเป็นตัวเลือกที่ชัดเจนที่สุดสำหรับโมเดลที่ราคาถูกที่สุดที่ยังทำได้ รวมถึง deepseek-v4-flash
- embed และ rerank ขับเคลื่อนการค้นหา codebase และเป็น subsystem แยกต่างหากที่มีรูปแบบโมเดลของตัวเอง การย้าย traffic ของ chat ไปที่ gateway ไม่จำเป็นต้องแตะมันเลย
จ่ายตามการใช้งาน · ถูกกว่าราคาทางการ
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| โมเดล | ราคาทางการ | ราคาของเรา |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| GPT-5.4 mini | $0.75 / $4.50 per M | $0.60 / $3.60 per M |
| DeepSeek V4 Flash | $0.14 / $0.28 per M | $0.10 / $0.30 per M |
รูปแบบความล้มเหลวเฉพาะของ Continue
apiBase ที่ไม่มี /v1 Continue ต่อ path ของ route อย่าง /chat/completions เข้ากับ base ที่คุณให้ ดังนั้น https://api.apisrouter.com/v1 ถูกต้อง ส่วน host เปล่า ๆ ไม่ถูกต้อง error แบบ 404 ตั้งแต่ครั้งแรกที่ใช้มักเป็นเรื่องนี้เกือบทุกครั้ง การเยื้อง YAML เปลี่ยนรูปแบบ config แบบเงียบ ๆ models คือ list ของ block และ apiBase ที่เยื้องผิดจะแนบไปกับ entry ผิดหรือไม่แนบไปกับอะไรเลย เมื่อโมเดลหนึ่งทำงานแต่ตัวข้าง ๆ ยืนยันตัวตนไม่ได้ ให้ diff การเยื้องของทั้งสองก่อนสงสัย gateway toggle completions แบบเก่า provider openai ค่าเริ่มต้นคือ /chat/completions ซึ่งเป็นสิ่งที่ gateway เสิร์ฟ useLegacyCompletionsEndpoint: true จะเปลี่ยนเส้นทาง block ไปที่ route แบบเก่า /completions ถ้า block ไหนตั้งค่านี้ไว้ request แบบ chat จะหยุดทำงานสำหรับโมเดลนั้น ความคาดหวังของ Responses API บน id ตระกูล GPT บาง path ของ Continue อาจลอง protocol responses ใหม่ของ OpenAI สำหรับชื่อโมเดล OpenAI บางตัว gateway แบบ chat-completions ไม่ได้เสิร์ฟ protocol นั้น ถ้า block ตระกูล GPT error แบบ route ผิด ให้ตั้ง useResponsesApi: false บน block นั้นเพื่อให้มันอยู่ที่ /chat/completions contextLength ที่ล้าสมัย Continue บรรจุ context ตาม defaultCompletionOptions.contextLength ไม่ใช่ตามสิ่งที่โมเดลรับได้จริง การประกาศ 32k บนโมเดล 200k ไม่ทำให้พังแบบเห็นได้ชัด มันแค่ทิ้ง context ที่คุณจ่ายเงินไปเงียบ ๆ ประกาศตามสิ่งที่โมเดลรองรับจริง
ใครที่ใช้ Continue ผ่าน gateway
- นักพัฒนาที่ทำงานใน IDE เป็นหลักและต้องการ Claude, GPT และ DeepSeek เลือกได้ใน VS Code หรือ JetBrains โดยไม่ต้องดูแล credential ชุดละหนึ่งต่อ vendor
- ทีมที่แบ่ง role ตาม profile ต้นทุน: chat ระดับ frontier, edit และ apply ที่เร็ว แต่ละ role ถือ id ที่เหมาะสม ทั้งหมดเก็บเงินบน surface เดียว
- วิศวกรที่เปรียบเทียบ chat model บนงานจริง แต่ละตัวเลือกคือ YAML block เดียวกับ apiBase เดียวกัน ไม่ใช่การ integrate provider ใหม่
- หัวหน้าทีมที่ทำ onboarding ให้เป็นมาตรฐาน: config.yaml template เดียวบวก APISROUTER_API_KEY ตัวเดียว แทนที่ checklist key ต่อ vendor และ usage ต่อ key แสดงว่าแต่ละที่นั่งใช้จ่ายเท่าไหร่
- นักพัฒนาที่ไม่มีทางเข้าถึงระบบเก็บเงินของ vendor รายใดรายหนึ่ง การเข้าถึงแบบเติมเงินโดยไม่ต้องใช้บัตรตัดการพึ่งพาการสมัครต่อ provider ออกไป
ตรวจสอบ endpoint และ debug request แรก
ดูว่า gateway เสิร์ฟอะไรบ้างก่อนแก้ YAML id ที่ /v1/models คืนมาคือสตริงเป๊ะ ๆ ที่ฟิลด์ model ของคุณต้องตรงด้วย ความล้มเหลวใน request แรกเป็นไปตามรูปแบบ 401 หมายความว่า key ใน block นั้นผิด หรือ secrets reference resolve ไม่ได้ เช็ก block ที่ล้มเหลวแทนที่จะเช็กทั้งไฟล์ เพราะ key เป็นแบบต่อ block การล้มเหลวก็เป็นต่อ block เช่นกัน error โมเดลไม่พบคือ id พิมพ์ผิด รวมถึง suffix เวอร์ชัน error แบบ route ผิดบน id ตระกูล GPT ชี้ไปที่ toggle responses-API ที่กล่าวไว้ข้างต้น และถ้า extension ไม่แสดง custom model เลย YAML ยัง parse ไม่ได้ ให้ตรวจสอบโครงสร้างไฟล์ก่อน เมื่อ request ไหลลื่นแล้ว console ของ APIsRouter แสดงโมเดลต่อ request, จำนวน token และค่าใช้จ่าย เพราะ Continue แบ่งงานตาม role มุมมอง usage ก็เป็นที่แรกที่คุณเห็นสัดส่วน traffic ระหว่าง chat กับ edit บนงานจริงของคุณ ซึ่งเป็นตัวเลขที่บอกว่าการเลือกโมเดลสำคัญตรงไหนจริง ๆ
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50คำถามที่พบบ่อย
Continue ใช้โมเดล Claude และ DeepSeek ผ่าน provider openai ได้ไหม?
ได้ provider openai ที่ตั้ง apiBase คือเส้นทางที่มีเอกสารรองรับสำหรับ server แบบ OpenAI-compatible ใด ๆ และ Continue ส่งฟิลด์ model ผ่านเป็นสตริงธรรมดา id ใดก็ตามที่ endpoint เสิร์ฟใช้ได้ รวมถึง id ของ Claude และ DeepSeek หนึ่ง model block ต่อ id
model block ทั้งหมดของฉันใช้ apiBase และ key ร่วมกันไหม?
แต่ละ block ประกาศ apiBase และ apiKey ของตัวเอง ดังนั้นจะแชร์ค่ากันหรือไม่ก็ได้ การชี้หลาย block ไปที่ endpoint เดียวกันด้วย key เดียวกันเป็นเรื่องปกติ และ YAML anchor ให้คุณประกาศคู่นี้ครั้งเดียวแล้วอ้างอิงต่อ block ได้
role ไหนควร route ผ่าน gateway?
chat, edit และ apply ซึ่งทั้งหมดพูด /v1/chat/completions autocomplete เป็นงานแบบ fill-in-the-middle ที่สร้างขึ้นรอบโมเดลรูปแบบ completion ดังนั้นเก็บ role นั้นไว้บนการตั้งค่า FIM ที่คุณมีอยู่ embed และ rerank เป็น subsystem แยกต่างหากและไม่ต้องเปลี่ยนอะไร
ทำไม model block หนึ่งทำงานในขณะที่อีกตัวคืน 401?
key เป็นแบบต่อ block ใน Continue ดังนั้นตัวข้าง ๆ ที่ทำงานไม่ได้พิสูจน์อะไรเกี่ยวกับ block ที่ล้มเหลว เช็กค่า apiKey หรือ secrets reference ของ block ที่ล้มเหลว และเช็กการเยื้อง: key ที่เยื้องผิดจะแนบไปกับ entry ผิดใน list
useLegacyCompletionsEndpoint ทำอะไรและต้องใช้ไหม?
มันเปลี่ยนเส้นทาง model block จาก /chat/completions ไปที่ route แบบเก่า /completions สำหรับ gateway แบบ chat-completions คุณไม่ต้องการมัน ปล่อยให้ไม่ได้ตั้งไว้ มันมีไว้สำหรับ server แบบ completion-only รุ่นเก่า
contextLength เปลี่ยนพฤติกรรมจริงไหม?
ใช่ Continue บรรจุบทสนทนาและ file context ตาม defaultCompletionOptions.contextLength การตั้งค่าต่ำเกินไปบนโมเดล long-context จะทิ้ง context ไปเงียบ ๆ ตั้งค่าให้ตรงกับสิ่งที่โมเดลรองรับจริง