ชี้ Aider ไปที่ OpenAI-compatible API base

Updated 2026-07-29

Aider เชื่อมต่อกับ OpenAI-compatible endpoint ด้วย environment variable สองตัวกับ model prefix ตั้ง OPENAI_API_BASE เป็น https://api.apisrouter.com/v1 รัน aider --model openai/<model-id> แล้ว session pair programming จะเดินทางผ่าน key เดียว โดยเข้าถึงทุกโมเดลในแคตตาล็อกได้

คำตอบสั้น ๆ: env var สองตัวกับ model prefix

เส้นทาง OpenAI-compatible ที่ Aider มีเอกสารรองรับคือแบบนี้เป๊ะ: export OPENAI_API_BASE ด้วย endpoint ของคุณ export OPENAI_API_KEY ด้วย key สำหรับมัน แล้วเติม openai/ นำหน้าชื่อโมเดล เพื่อให้ Aider พูดโปรโตคอล chat-completions กับ base นั้น สตริงหลัง prefix จะถูกส่งผ่านไปยัง endpoint ตรง ๆ ดังนั้น id ใดก็ตามที่ gateway เสิร์ฟใช้ได้หมด รวมถึง id ของ Claude และ DeepSeek ด้วย แค่นี้คือการเชื่อมต่อทั้งหมด บน Mac และ Linux ใช้ export บน Windows ใช้ setx แล้วเปิด shell ใหม่ เพราะ setx ไม่มีผลกับ session ปัจจุบัน ค่าเดียวกันนี้เก็บไว้ในไฟล์ config ของ Aider หรือไฟล์ .env ก็ได้ ถ้าคุณชอบการตั้งค่าต่อโปรเจกต์มากกว่า shell state

export OPENAI_API_BASE=https://api.apisrouter.com/v1
export OPENAI_API_KEY=sk-APIsRouter-...

aider --model openai/claude-sonnet-4-6

Aider แก้ปัญหาโมเดลและ provider อย่างไร

Aider (Aider-AI บน GitHub มีดาวประมาณ 47K) คือ terminal pair programmer ต้นตำรับ: มันแมป git repo ของคุณ รับคำขอเปลี่ยนแปลงในแชท แก้ไขไฟล์โดยตรง แล้ว commit ผลลัพธ์ เบื้องหลังมันส่ง model call ผ่าน litellm ซึ่งเป็นเหตุผลที่ prefix openai/ สำคัญ: litellm อ่าน prefix เพื่อเลือกโปรโตคอล provider และ openai/ หมายความว่า "พูด chat-completions กับสิ่งที่ OPENAI_API_BASE ระบุไว้" ชื่อโมเดลที่ไม่มี prefix จะถูกเดา provider จากตัวสะกดแทน ซึ่งจะส่ง Claude id ไปทาง Anthropic native API และ ANTHROPIC_API_KEY ของคุณแทนที่จะไปทาง gateway มีพฤติกรรมเฉพาะของ Aider หนึ่งอย่างที่ควรรู้ก่อน session แรก: มันเก็บ registry ความสามารถของโมเดลของตัวเอง และโมเดลที่มันไม่รู้จักจะทำให้เกิดคำเตือน "Unknown context window size and costs, using sane defaults" หลังจากนั้น Aider จะสมมติว่า context window ไม่จำกัดและต้นทุนเป็นศูนย์ session ยังทำงานได้ แต่ subsystem ที่มีประโยชน์สองอย่างจะเสื่อมลง: การจัดงบ token ไม่สามารถเตือนก่อนที่คุณจะทะลุ context limit จริงได้ และหน้าจอแสดงต้นทุนระหว่าง session จะอ่านเป็นศูนย์ วิธีแก้คือไฟล์ metadata เล็ก ๆ ซึ่งกล่าวถึงด้านล่าง และคุ้มค่ากับเวลาสองนาทีที่เสียไป Aider ยังรันมากกว่าหนึ่งโมเดลต่อ session main model ทำหน้าที่โค้ด, weak model จัดการ commit message และสรุปแชท และใน architect mode editor model แยกต่างหากจะเป็นคนใช้แผน ทั้งสามตัวรับ prefix openai/ เดียวกัน ดังนั้นทั้งสามตัวส่งผ่าน gateway ได้ด้วย key เดียว

ตั้งค่าแบบเต็ม: การเชื่อมต่อบวก model metadata

การเชื่อมต่อคือสอง variable ข้างบนนี้ ส่วนที่ทำให้เนียนขึ้นคือการลงทะเบียน metadata เพื่อให้ Aider ปฏิบัติกับโมเดลของ gateway เป็นสิ่งที่รู้จักแล้ว สร้าง .aider.model.metadata.json ในโฮมไดเรกทอรี, root ของ git repo หรือ working directory (หรือส่ง --model-metadata-file) โดยใช้ชื่อเต็มที่รวม prefix openai/ เป็น key ฟิลด์ litellm_provider ควรตรงกับ prefix นั้น เมื่อลงทะเบียน max_input_tokens แล้ว การจัดงบ context ของ Aider จะทำงานตาม window จริงของโมเดล แทนที่จะสมมติว่ามันไม่จำกัด ไฟล์เสริมอีกไฟล์ .aider.model.settings.yml ปรับพฤติกรรมต่อโมเดล: edit_format ควบคุมว่า Aider ขอการเปลี่ยนแปลงโค้ดอย่างไร (แบบ diff สำหรับโมเดลที่จัดการได้ แบบไฟล์ทั้งไฟล์สำหรับโมเดลที่จัดการไม่ได้) และ use_repo_map ควบคุมการรวม repo context Aider ไม่สามารถเดารูปแบบ edit ที่ดีที่สุดสำหรับโมเดลที่ไม่รู้จักได้ ดังนั้นการประกาศค่านี้คือความต่างระหว่างโมเดลที่ดูธรรมดาไปกับโมเดลที่ทำงานได้เต็มศักยภาพ

{
  "openai/claude-sonnet-4-6": {
    "max_input_tokens": 200000,
    "max_output_tokens": 64000,
    "litellm_provider": "openai",
    "mode": "chat"
  },
  "openai/deepseek-v4-pro": {
    "max_input_tokens": 128000,
    "max_output_tokens": 16000,
    "litellm_provider": "openai",
    "mode": "chat"
  }
}

เลือกโมเดล main, weak และ editor

session ของ Aider ยาวและวนซ้ำ ซึ่งทำให้การเปรียบเทียบโมเดลตรงไปตรงมาผิดปกติ: รัน feature branch เดียวกันด้วย main model สองตัวคนละวัน แล้วความต่างจะปรากฏในจำนวนครั้งที่คุณพิมพ์ /undo endpoint เดียวทำให้แต่ละตัวเลือกเป็นแค่การเปลี่ยน flag และ usage ต่อ key ตั้งราคาให้แต่ละการทดลอง

  • main model รับผิดชอบทุกการแก้ไข มันอ่าน repo map, reasoning เกี่ยวกับไฟล์ของคุณ และสร้าง diff ดังนั้นตำแหน่งนี้คือของ claude-sonnet-4-6 หรือ gpt-5.5 โมเดลที่พลาด syntax ของ diff จะทำให้คุณเสียเวลารีวิวในทุกการเปลี่ยนแปลง
  • weak model (--weak-model) เขียน commit message และสรุปประวัติแชท มันทำงานตลอดเวลาแต่ไม่แตะโค้ดเลย ดังนั้นควรส่งไปที่ id ที่เร็วและราคาถูกผ่าน gateway เดียวกัน แทนที่จะปล่อยให้ใช้ค่าเริ่มต้นจากที่อื่น
  • architect mode แยกการวางแผนออกจากการแก้ไข: main model วางแผน editor model (--editor-model) เป็นคนใช้ การจับคู่ reasoner ที่แข็งแกร่งวางแผนกับ id ที่ปรับจูนมาสำหรับโค้ดอย่าง kimi-k2.7-code เป็นคนใช้ คือการจับคู่ที่ key ของ vendor เดียวไม่สามารถทำได้
  • deepseek-v4-pro และ gpt-5.4 คุ้มค่ากับการ benchmark เป็น main model ประจำวันในงาน refactor หนัก ๆ ที่ปริมาณ token ต่อ session ทำให้ส่วนต่างราคาสะสมขึ้นมาก

จ่ายตามการใช้งาน · ถูกกว่าราคาทางการ

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
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
GPT-5.4$2.50 / $15.00 per M$2.00 / $12.00 per M
DeepSeek V4 Pro$0.43 / $0.87 per M$0.40 / $0.90 per M
Kimi K2.7 Code$0.95 / $4.00 per M$1.00 / $4.00 per M

รูปแบบความล้มเหลวเฉพาะของ Aider

การเชื่อ "sane defaults" ค่า fallback สำหรับโมเดลที่ไม่รู้จักสมมติว่า context ไม่จำกัดและต้นทุนเป็นศูนย์ ในทางปฏิบัติหมายความว่า Aider จะปล่อยให้ session ยาว ๆ ขยายเกิน window จริงของโมเดลไปเรื่อย ๆ จนกว่า gateway จะปฏิเสธ request หรือโมเดลเงียบ ๆ เสีย context ช่วงต้นไป โดยที่ตัวติดตามต้นทุนไม่แสดงอะไรเลยตลอดเวลานั้น ลงทะเบียน metadata แล้วปัญหาทั้งสองจะหายไป ตัดขาด prefix openai/ ถ้าไม่มีมัน litellm จะเดา provider จากชื่อโมเดล Claude id จะถูกส่งไปที่ API ของ Anthropic และล้มเหลวเพราะไม่มี ANTHROPIC_API_KEY ซึ่งอ่านเหมือนปัญหา key แต่จริง ๆ เป็นปัญหา prefix metadata ที่ไม่ตรงกัน entry ใน .aider.model.metadata.json ใช้ชื่อเต็มรวม prefix เป็น key และ litellm_provider ควรสอดคล้องกับ prefix นั้น key ที่เป็น id เปล่า ๆ หรือฟิลด์ provider ที่ไม่ตรงกัน จะล้มเหลวเงียบ ๆ โดยไม่แจ้งใช้งาน และคุณจะกลับไปที่ค่าเริ่มต้นโดยไม่มี error บอก shell state บน Windows setx เขียนตัวแปรสำหรับ shell ในอนาคตเท่านั้น การรัน aider ใน terminal เดียวกับที่คุณเพิ่งรัน setx จะใช้ environment เก่า และ 401 ที่ตามมาคือปัญหา lifecycle ของ shell ไม่ใช่ปัญหา credential edit format ที่ผิด โมเดลที่ไม่ได้ลงทะเบียนจะได้ edit format ค่าเริ่มต้นที่อาจไม่ใช่สิ่งที่มันถนัดที่สุด ถ้าโมเดลที่แข็งแกร่งยังคงสร้าง edit ที่ Aider ปฏิเสธซ้ำ ๆ ให้ตั้ง edit_format อย่างชัดเจนใน .aider.model.settings.yml ก่อนสรุปว่าโมเดลนั้นเขียนโค้ดไม่ได้

ใครที่ใช้ Aider ผ่าน gateway

  • ผู้ใช้ Aider ทุกวันที่ต้องการสลับ Claude, GPT และ DeepSeek ต่อ session ด้วย --model โดยไม่ต้องดูแลบัญชี vendor ต่อโมเดลตระกูล
  • นักพัฒนาที่จับคู่ frontier main model กับ weak model ที่เร็วสำหรับ commit message ทั้งคู่คิดเงินผ่าน key เดียวพร้อมความชัดเจนต่อ session
  • ผู้ใช้ architect mode ที่ผสมโมเดลวางแผนและโมเดลแก้ไขจากคนละ vendor ใน session เดียวกัน
  • ทีมที่ onboard วิศวกรด้วยความลับเดียวแทนที่จะเป็น checklist key ของ vendor โดย usage ต่อ key คือรายงานค่าใช้จ่าย
  • นักพัฒนาที่ไม่มีทางเข้าถึงระบบเก็บเงินของ vendor รายใดรายหนึ่ง การเข้าถึงแบบเติมเงินโดยไม่ต้องใช้บัตรตัดการพึ่งพาการสมัครต่อ provider ออกไป

ตรวจสอบ endpoint และ debug session แรก

ดูรายการโมเดลของ gateway ก่อนเริ่ม id หลัง openai/ ต้องตรงกับ id ที่เสิร์ฟจริงเป๊ะ รวมถึง suffix เวอร์ชันด้วย ความล้มเหลวใน session แรกจัดหมวดได้เร็ว 401 หมายความว่า OPENAI_API_KEY มองไม่เห็นจาก shell ที่เปิด aider (บน Windows มีผลแค่ shell ใหม่หลัง setx เช็กด้วย echo ใน terminal เดียวกัน) error โมเดลไม่พบจาก gateway คือ id พิมพ์ผิด error ที่พูดถึง key ของ vendor อื่นหมายความว่าชื่อโมเดลไม่มี prefix จึงถูก route แบบ native และคำเตือนโมเดลไม่รู้จักตอนเริ่มไม่ใช่ error แต่เป็นสัญญาณให้คุณเพิ่มไฟล์ metadata ก่อน ไม่ใช่หลังจาก session ยาวชนกับ context limit จริง ระหว่าง session หน้าจอ token และต้นทุนของ Aider เองจะแม่นยำขึ้นเมื่อลงทะเบียน metadata แล้ว และ console ของ APIsRouter แสดง session เดียวกันจากฝั่ง endpoint: โมเดลต่อ request, จำนวน token และค่าใช้จ่าย สำหรับ pair programmer ที่ทำงานทั้งวัน มุมมองต่อ key แบบนี้คือคำตอบที่ตรงไปตรงมาว่า Aider หนึ่งสัปดาห์เสียเงินไปเท่าไหร่จริง ๆ

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" | head -50

คำถามที่พบบ่อย

เชื่อมต่อ Aider กับ OpenAI-compatible endpoint อย่างไร?

Export OPENAI_API_BASE ด้วย URL ของ endpoint และ OPENAI_API_KEY ด้วย key ของมัน แล้วรัน aider --model openai/<model-id> นี่คือเส้นทาง openai-compat ที่ Aider มีเอกสารรองรับ prefix openai/ บอก litellm layer ของมันให้พูด chat-completions กับ base URL ของคุณ

Aider รันโมเดล Claude หรือ DeepSeek ผ่านการตั้งค่านี้ได้ไหม?

ได้ id หลัง openai/ ถูกส่งผ่านไปยัง endpoint เป็นสตริงธรรมดา ดังนั้นโมเดลใดก็ตามที่ gateway เสิร์ฟใช้ได้: aider --model openai/claude-sonnet-4-6 หรือ openai/deepseek-v4-pro เก็บ prefix ไว้ ไม่งั้น id จะถูกเดา provider แล้วเลี่ยงออกจาก base ของคุณ

คำเตือน "Unknown context window size and costs" หมายความว่าอะไร?

Aider ไม่รู้จักโมเดลนี้ จึงสมมติว่า context window ไม่จำกัดและต้นทุนเป็นศูนย์ session ยังทำงานได้ แต่การจัดงบ context และหน้าจอต้นทุนผิด ลงทะเบียนโมเดลใน .aider.model.metadata.json ด้วยชื่อเต็ม openai/ แล้วคำเตือนกับปัญหาทั้งสองจะหายไป

weak model กับ editor model ผ่าน gateway ด้วยไหม?

ผ่าน ถ้าคุณชี้ไปที่มัน: --weak-model openai/<fast-id> สำหรับ commit message และการสรุป และ --editor-model openai/<id> ใน architect mode ทั้งสามช่องรับ prefix ได้ ดังนั้น key เดียวครอบคลุมการผสม main/weak/editor ข้าม vendor ได้

ทำไม Aider ยังขอ Anthropic key อยู่?

ชื่อโมเดลถูกส่งเข้ามาโดยไม่มี prefix openai/ litellm เดา vendor จากชื่อแล้วลองเส้นทาง Anthropic native ซึ่งต้องการ ANTHROPIC_API_KEY เพิ่ม prefix แล้ว request จะไปที่ OPENAI_API_BASE พร้อม gateway key ของคุณแทน

ควรตั้ง edit_format ให้โมเดลของ gateway ไหม?

สำหรับโมเดลที่ Aider ไม่รู้จัก ควรตั้ง edit_format ใน .aider.model.settings.yml ควบคุมว่า Aider ขอการเปลี่ยนแปลงโค้ดอย่างไร และโมเดล frontier ส่วนใหญ่ทำงานได้ดีที่สุดกับรูปแบบ diff การปล่อยโมเดลที่ไม่รู้จักไว้ที่ค่าเริ่มต้นอาจทำให้โมเดลที่แข็งแกร่งดูแย่กว่าความเป็นจริง