API Hop

เอกสาร

เอกสาร API Hop

การเชื่อมต่อ Codex

>-

Codex เรียกโมเดลผ่านโปรโตคอล OpenAI Responses ตั้งผู้ให้บริการโมเดลด้วย Base URL ที่เข้ากันได้กับ OpenAI ในหน้านี้

text
Codex base_url: https://api.apihop.ai/openai

สิ่งที่ต้องเตรียม

เตรียมคีย์ API ของ API Hop ที่ถูกต้องก่อน คีย์จะเขียนในไดเรกทอรีตั้งค่า Codex ในเครื่อง อย่านำคีย์เข้ารีโพซิทอรี บันทึก หรือภาพหน้าจอ

Codex มักเก็บไฟล์ตั้งค่าใน:

  • macOS / Linux: ~/.codex/
  • Windows: %userprofile%\.codex\

หากไม่มีไดเรกทอรีหรือไฟล์ตั้งค่า ให้สร้างก่อน:

bash
mkdir -p ~/.codex
touch ~/.codex/config.toml

สำหรับ Windows CMD:

bat
mkdir %userprofile%\.codex
type nul > %userprofile%\.codex\config.toml

สำรองการตั้งค่า

หากเคยใช้ Codex ให้สำรองการตั้งค่าปัจจุบันก่อน:

bash
cp ~/.codex/config.toml ~/.codex/config.toml.bak
cp ~/.codex/auth.json ~/.codex/auth.json.bak

ปรับปรุง config.toml

เปิด ~/.codex/config.toml แล้วเพิ่มหรือปรับการตั้งค่านี้:

toml
model_provider = "apihop"
model = "gpt-5.4"
review_model = "gpt-5.4"
model_reasoning_effort = "high"
disable_response_storage = true
network_access = "enabled"

[model_providers.apihop]
name = "API Hop"
base_url = "https://api.apihop.ai/openai"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = true
websocket_connect_timeout_ms = 15000

[features]
responses_websockets = true

กฎ base_url คือ API Base URL สาธารณะในหน้านี้ + /openai

หาก config.toml มี [marketplaces.*], [plugins.*] หรือการตั้งค่าเครื่องมืออื่นแล้ว ให้เก็บไว้ และเพิ่มหรือปรับเฉพาะการตั้งค่าผู้ให้บริการโมเดล Codex ข้างต้น

โหมด WebSocket

เมื่อเปิด supports_websockets = true และ responses_websockets = true Codex ใช้เอนด์พอยต์ Responses WebSocket ด้านล่าง:

text
https://api.apihop.ai/openai/responses

หาก API Base URL ใช้ https:// Codex ใช้การเชื่อมต่อ wss:// ที่ตรงกัน

โหมด WebSocket นี้เป็นตัวเชื่อม Responses ผ่าน WebSocket เฉพาะ Codex:

  • รองรับ response.create
  • รองรับ response.cancel
  • ส่ง response.completed
  • คงเหตุการณ์เพื่อความเข้ากันได้ response.processed ด้วย

response.cancelled ยืนยันคำขอยกเลิกภายใน ไม่ได้ยืนยันคืนเงินต้นทาง คำขอที่ไม่ทราบผลต้นทางยังกันยอดไว้จนยืนยันการใช้หรือความล้มเหลว

นี่ไม่ใช่ OpenAI Realtime API ไม่รองรับ session.update, conversation.item.*, input_audio_buffer.*, สตรีมเสียง ข้อความไบนารี หรือโครงสร้าง Realtime

หากพร็อกซีเครือข่าย เกตเวย์องค์กร หรือ Codex รุ่นเก่าสร้างการเชื่อมต่อ WebSocket ไม่ได้ ให้สลับชั่วคราวเป็น:

toml
[model_providers.apihop]
supports_websockets = false

[features]
responses_websockets = false

จากนั้น Codex จะกลับไปใช้ HTTP POST https://api.apihop.ai/openai/responses ส่วน Compact เป็นความสามารถแยก โมเดล GPT ห้ารายการปัจจุบันไม่มีช่อง Compact ที่ตรวจยืนยัน การสลับโหมด HTTP/WebSocket ไม่เปิดการย่อบริบท เริ่มสนทนาใหม่ก่อนเกินขีดจำกัดบริบทโมเดล อย่าพึ่งการย่อบริบทยาวอัตโนมัติกับเส้นทางเหล่านี้

เขียนคีย์ API

แทน YOUR_APIHOP_API_KEY ด้วยคีย์ API ของ API Hop ของคุณ:

bash
echo '{"OPENAI_API_KEY":"YOUR_APIHOP_API_KEY"}' > ~/.codex/auth.json

สำหรับ Windows CMD:

bat
echo {"OPENAI_API_KEY":"YOUR_APIHOP_API_KEY"} > %userprofile%\.codex\auth.json

เริ่มใหม่และทดสอบ

บันทึกการตั้งค่า ออกจาก Codex อย่างสมบูรณ์ แล้วเปิดใหม่

ทดสอบ CLI ได้ด้วย:

bash
codex "Reply in one sentence whether the current model is available."

สำหรับส่วนขยาย VS Code หรือแอปเดสก์ท็อป ให้ออกจากแอปอย่างสมบูรณ์ เปิดใหม่ แล้วเริ่มแชตปกติ

การแก้ปัญหา

  • base_url ต้องเป็น API Base URL สาธารณะในหน้านี้ต่อด้วย /openai
  • wire_api ต้องเป็น responses อย่าเปลี่ยนเป็น chat
  • ข้อผิดพลาด Compact ไม่พร้อมหมายถึงไม่มีช่อง Compact ที่ตรวจยืนยัน การเปลี่ยนเกณฑ์โทเคนในเครื่องไม่สามารถเปิดได้
  • API Hop รองรับทั้ง HTTP Responses และ Codex Responses WebSocket คง supports_websockets = true และ responses_websockets = true เป็นค่าเริ่มต้น หาก Codex รุ่นของคุณหรือพร็อกซีเครือข่ายใช้ WebSocket ไม่ได้ ตั้ง supports_websockets = false ชั่วคราวเพื่อกลับไป HTTP
  • auth.json ต้องเป็น JSON ถูกต้อง และชื่อคีย์ต้องเป็น OPENAI_API_KEY
  • หากได้รับ 401 หรือ invalid key ตรวจว่าคีย์ API ถูกต้องและไม่ได้ถูกคีย์เก่าในเครื่องเขียนทับ
  • หากโมเดลไม่พร้อม ตรวจ GET https://api.apihop.ai/v1/models แล้วตั้ง model และ review_model เป็นโมเดล GPT ที่มองเห็น ตัวอย่างเริ่มต้นใช้ gpt-5.4 ส่วน gpt-5.3-codex และ gpt-5.6-luna ยังไม่ได้เปิดใช้ปัจจุบัน
  • ออกจาก Codex อย่างสมบูรณ์และเปิดใหม่หลังเปลี่ยนการตั้งค่า ปิดเฉพาะหน้าต่างอาจไม่โหลด auth.json ใหม่
  • POST https://api.apihop.ai/openai/responses: เอนด์พอยต์ที่เข้ากันได้กับ Responses ของ API Hop ที่แนะนำ
  • POST https://api.apihop.ai/openai/responses/compact: ต้องมีช่อง Compact ที่เปิดใช้ชัดเจน มิฉะนั้นส่ง 503 ก่อนกันยอด ช่องที่รองรับส่ง response.compaction
  • WS /openai/responses: เอนด์พอยต์ที่เข้ากันได้กับ Responses WebSocket รองรับ response.create, response.cancel ส่ง response.completed และคงเหตุการณ์เพื่อความเข้ากันได้ response.processed
  • WS /openai/responses/compact: ใช้การตรวจความสามารถ Compact และเอนด์พอยต์เดียวกัน การจับมือ WebSocket อย่างเดียวไม่พิสูจน์ว่าโมเดลรองรับ