การเชื่อมต่อ Codex เข้ากับ DeepSeek Chat API: คู่มือการตั้งค่า Local Routing ด้วย CC Switch

@Jason_Young1231
จีน2 เดือนที่ผ่านมา · 30 พ.ค. 2569
512K
801
160
77
1.4K

TL;DR

คู่มือนี้อธิบายรายละเอียดวิธีการใช้ฟีเจอร์ Local Routing ของ CC Switch เพื่อเชื่อมช่องว่างของโปรโตคอลระหว่าง Codex CLI และผู้ให้บริการอย่าง DeepSeek โดยช่วยให้มั่นใจได้ถึงความเข้ากันได้ด้วยการแปลงการเรียกใช้งาน Responses API ให้เป็น Chat Completions

รุ่นที่ใช้งานได้: CC Switch 3.16.0 ขึ้นไป บทความนี้จัดทำขึ้นจากเอกสารและโค้ดของที่เก็บ โดยใช้ DeepSeek เป็นตัวอย่างของอินเทอร์เฟซที่เข้ากันได้กับ OpenAI Chat Completions ภาพหน้าจอเป็นภาพจากอินเทอร์เฟซส่วนหน้าในปัจจุบัน ซึ่งสร้างขึ้นโดยใช้ข้อมูลตัวอย่างที่ไม่เปิดเผยตัวตน เพื่อหลีกเลี่ยงการรั่วไหลของ API Keys จริงหรือยอดคงเหลือในบัญชี

เหตุใดจึงต้องมีการกำหนดเส้นทางภายใน (Local Routing)

Codex CLI เวอร์ชันใหม่ถูกออกแบบมาให้ใช้กับ OpenAI Responses API ในขณะที่ผู้ให้บริการหลายราย เช่น DeepSeek, Kimi, MiniMax และ SiliconFlow นั้นใช้รูปแบบ OpenAI Chat Completions ซึ่งก็คือ /chat/completions โครงสร้างของคำขอ เหตุการณ์สตรีม และรูปแบบการคืนค่าของโปรโตคอลทั้งสองนี้แตกต่างกัน การกรอกข้อมูลของ Chat ลงในการกำหนดค่า Codex โดยตรงมักจะทำให้รายการโมเดลไม่ถูกต้อง เกิดข้อผิดพลาด 404/400 หรือการตอบกลับแบบสตรีมที่ Codex ไม่สามารถแยกวิเคราะห์ได้อย่างถูกต้อง

แนวทางของ CC Switch คือการให้ Codex เชื่อมต่อไปยังเส้นทางภายใน (local route) เสมอ โดยยังคงส่งคำขอผ่าน Responses API เส้นทางภายในจะระบุว่าผู้ให้บริการปัจจุบันอยู่ในรูปแบบ Chat หรือไม่ จากนั้นจะเขียนคำขอใหม่เป็น Chat Completions เพื่อส่งไปยังผู้ให้บริการ upstream และสุดท้ายจะแปลงการตอบกลับของ Chat กลับเป็นรูปแบบ Responses เพื่อส่งคืนไปยัง Codex

Jason Young - inline image

ห่วงโซ่นี้แบ่งออกเป็นสี่ขั้นตอนหลัก:

  1. เมื่อ Codex เข้ามาแทนที่ การกำหนดค่าภายในจะถูกเขียนเป็น http://127.0.0.1:15721/v1 และบังคับใช้ wire_api = "responses"
  2. meta.apiFormat = "openai_chat" ของ Provider จะแจ้งให้เส้นทางภายในทราบว่า upstream ที่แท้จริงคือ Chat Completions
  3. เส้นทางภายในจะเขียน /responses หรือ /v1/responses ใหม่เป็น /chat/completions และแปลงเนื้อหาคำขอของ Responses เป็นเนื้อหาคำขอของ Chat
  4. หลังจากที่ upstream ส่งคืนข้อมูล เส้นทางภายในจะแปลง JSON หรือ SSE ของ Chat กลับเป็น JSON/SSE ของ Responses ที่ Codex สามารถเข้าใจได้

ขั้นตอนเตรียมการ

คุณต้องเตรียมสามสิ่งก่อน:

  • ติดตั้ง CC Switch และพร้อมที่จะเริ่มต้น
  • ติดตั้ง Codex CLI และรันอย่างน้อยหนึ่งครั้งเพื่อให้มีโครงสร้างไดเรกทอรี ~/.codex/config.toml
  • API Key สำหรับ DeepSeek หรือผู้ให้บริการ Chat Completions ที่คล้ายกัน

เอกสารอย่างเป็นทางการของ DeepSeek ปัจจุบันระบุว่า base URL ที่เข้ากันได้กับ OpenAI คือ https://api.deepseek.com (ผู้ให้บริการรายอื่นมักใช้ base URL ที่ลงท้ายด้วย /v1) และเส้นทาง Chat API คือ /chat/completions; ค่าที่ตั้งไว้ล่วงหน้าของ DeepSeek ใน CC Switch มีข้อมูลนี้อยู่แล้ว ดังนั้นโปรดใช้ค่าที่ตั้งไว้ล่วงหน้าก่อน แทนที่จะต่อเส้นทางอินเทอร์เฟซด้วยตนเอง

ขั้นตอนที่ 1: เพิ่ม Codex Provider

เปิด CC Switch สลับไปที่แท็บ Codex ที่ด้านบน แล้วคลิกเครื่องหมายบวกที่มุมขวาบนเพื่อเพิ่ม provider

เลือก DeepSeek จากค่าที่ตั้งไว้ล่วงหน้าในตัว; คุณต้องทำเพียงสองสิ่ง:

  • ป้อน DeepSeek API Key
  • บันทึก provider
Jason Young - inline image

ค่าที่ตั้งไว้ล่วงหน้าได้รวมที่อยู่คำขอของ DeepSeek, โมเดลเริ่มต้น, เมนูโมเดล และพารามิเตอร์การคิด/การใช้เหตุผลไว้แล้ว และจะเปิด "ต้องใช้การแมปเส้นทางภายใน (Requires Local Routing Mapping)" โดยอัตโนมัติ คุณสามารถปรับโมเดลเริ่มต้นหรือชื่อที่แสดงของโมเดลได้ตามต้องการ; การแปลงโปรโตคอลจะดำเนินการโดยเลเยอร์การกำหนดเส้นทาง

ขั้นตอนที่ 2: เปิดใช้งาน Local Routing และเข้ารับช่วง Codex

ไปที่หน้า Routing ในการตั้งค่า ขยาย Local Routing และเปิดสวิตช์สองตัว:

  1. เปิดสวิตช์หลักของ Routing เพื่อเริ่มบริการภายใน ที่อยู่เริ่มต้นคือ 127.0.0.1:15721
  2. เปิด Codex ใน Routing Enablement หากคุณต้องการให้เฉพาะ Codex เท่านั้นที่ผ่านเส้นทางนี้ คุณสามารถปิด Claude และ Gemini ได้
Jason Young - inline image

หลังจากเข้ารับช่วง CC Switch จะชี้การกำหนดค่าแบบเรียลไทม์ของ Codex ไปยังเส้นทางภายในและจัดการการตรวจสอบสิทธิ์ด้วยตัวยึดตำแหน่ง DeepSeek Key จริงยังคงถูกบันทึกไว้ในการกำหนดค่า CC Switch Provider และถูกฉีดโดยเส้นทางภายในระหว่างการส่งต่อ ดังนั้นคุณจึงไม่จำเป็นต้องเปิดเผย Key ในการกำหนดค่าแบบเรียลไทม์ของ Codex

ขั้นตอนที่ 3: สลับ Provider และรีสตาร์ท Codex

กลับไปที่รายการ provider ของ Codex แล้วคลิก Enable สำหรับ provider DeepSeek หากคุณเห็นแท็ก "Requires Route" หมายความว่า provider นี้ต้องใช้ในขณะที่เส้นทางกำลังทำงานอยู่ หากไม่ได้เริ่มเส้นทาง CC Switch จะแสดงข้อความแจ้งว่า "จำเป็นต้องใช้บริการ Routing เพื่อการใช้งานปกติ"

หลังจากสลับแล้ว แนะนำให้รีสตาร์ทเซสชันเทอร์มินัลของ Codex ปัจจุบัน เนื่องจาก:

  • กระบวนการ Codex อาจอ่าน config.toml เก่าไปแล้ว
  • หลังจากสร้าง modelcatalogjson แล้ว เมนู /model มักจะต้องใช้กระบวนการใหม่เพื่อรีเฟรช

เมื่ออยู่ใน Codex แล้ว คุณสามารถใช้ /model เพื่อตรวจสอบว่าโมเดลปัจจุบันมาจากค่าที่ตั้งล่วงหน้าของ DeepSeek หรือไม่ เช่น DeepSeek V4 Flash ในปัจจุบัน แอป Codex ไม่รองรับการเลือกหลายโมเดลแบบกำหนดเอง และจะใช้โมเดลแรกในการกำหนดค่าเป็นค่าเริ่มต้น

วิธีจัดการกับ Chat Providers อื่นๆ

ผู้ให้บริการรูปแบบ Chat ทั่วไป เช่น DeepSeek, Kimi, MiniMax และ SiliconFlow มีค่าที่ตั้งไว้ล่วงหน้าใน CC Switch แล้ว; โปรดใช้ค่าที่ตั้งไว้ล่วงหน้าเหล่านี้ก่อน สำหรับผู้ให้บริการที่ไม่อยู่ในค่าที่ตั้งไว้ล่วงหน้าเท่านั้น คุณจึงจำเป็นต้องเลือกการกำหนดค่าแบบกำหนดเอง ในกรณีนั้น ให้กรอก API Key, base URL และโมเดลตามเอกสารของพวกเขา และตั้งค่า API Format เป็น OpenAI Chat Completions (ต้องใช้การกำหนดเส้นทาง)

หาก upstream รองรับ OpenAI Responses API โดยตรง คุณไม่จำเป็นต้องเปิด "ต้องใช้การแมปเส้นทางภายใน (Requires Local Routing Mapping)" ในกรณีนี้ CC Switch สามารถเชื่อมต่อโดยตรงผ่าน Responses โดยไม่ต้องแปลง Chat

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

Codex รายงาน 404 หรือไม่พบ /responses

โดยปกติเกิดจากการไม่ได้เปิดใช้งานการเข้ารับช่วง Codex หรือคุณเขียน upstream Chat base URL ด้วยตนเองลงใน Codex โดยตรง ตรวจสอบว่า ~/.codex/config.toml ชี้ไปที่ http://127.0.0.1:15721/v1 หรือไม่

DeepSeek upstream รายงาน 404

หากใช้ค่าที่ตั้งล่วงหน้าของ DeepSeek ในตัว ให้ยืนยันก่อนว่า provider ปัจจุบันมาจากค่าที่ตั้งล่วงหน้าจริง ๆ และเปิดใช้งานการกำหนดเส้นทาง Codex แล้ว เฉพาะเมื่อใช้ provider แบบกำหนดเองเท่านั้นที่คุณต้องตรวจสอบ base URL อีกครั้ง: ควรเป็นที่อยู่รากของบริการ ไม่ใช่เส้นทางอินเทอร์เฟซแบบเต็มที่มี /chat/completions

/model ไม่แสดงโมเดลของ DeepSeek

ให้รีสตาร์ท Codex หลังจากบันทึก provider CC Switch จะสร้าง cc-switch-model-catalog.json และเขียนเส้นทางลงใน modelcatalogjson แต่กระบวนการ Codex ที่กำลังทำงานอยู่อาจไม่โหลดไดเรกทอรีโมเดลแบบร้อน

ในปัจจุบัน แอป Codex ไม่รองรับการเลือกหลายโมเดล และจะใช้โมเดลแรกเป็นค่าเริ่มต้น

Route เปิดอยู่แต่คำขอยังคงไปยัง provider ผิด

ตรวจสอบให้แน่ใจว่าสามสถานะสอดคล้องกัน: provider ปัจจุบันใต้แท็บ Codex คือ DeepSeek; บริการกำหนดเส้นทางภายในกำลังทำงาน; และสวิตช์ Codex ใน Routing Enablement เปิดอยู่

ฉันสามารถใช้บัญชี OpenAI Codex อย่างเป็นทางการผ่าน local routing ได้หรือไม่?

ไม่แนะนำ CC Switch ป้องกันการสลับไปยัง provider อย่างเป็นทางการในโหมดการเข้ารับช่วงของ local routing เนื่องจากการใช้พร็อกซีเพื่อเข้าถึง API อย่างเป็นทางการอาจมีความเสี่ยงต่อบัญชี การกำหนดเส้นทางมีไว้สำหรับสถานการณ์ของบุคคลที่สาม การรวม หรือการแปลงโปรโตคอลเป็นหลัก

ลิงก์อ้างอิง

บันทึกในคลิกเดียว

อ่านบทความไวรัลเชิงลึกด้วย AI ใน YouMind

บันทึกแหล่งที่มา ถามคำถามที่ตรงประเด็น สรุปข้อโต้แย้ง และเปลี่ยนบทความไวรัลให้เป็นโน้ตที่นำกลับมาใช้ได้ใน AI เวิร์กสเปซเดียว

สำรวจ YouMind
สำหรับครีเอเตอร์

เปลี่ยน Markdown ของคุณให้เป็นบทความ 𝕏 ที่สะอาดตา

เวลาคุณเผยแพร่งานเขียนยาวของตัวเอง การจัดรูปแบบรูปภาพ ตาราง และบล็อกโค้ดให้เข้ากับ 𝕏 นั้นน่าปวดหัว YouMind เปลี่ยนร่าง Markdown ทั้งฉบับให้เป็นบทความ 𝕏 ที่สะอาดตาและพร้อมโพสต์ทันที

ลอง Markdown เป็น 𝕏

แพตเทิร์นให้ถอดรหัสเพิ่มเติม

บทความไวรัลล่าสุด

สำรวจบทความไวรัลเพิ่มเติม