เมื่อเขียนโค้ดเชื่อมต่อ API ของ ChatGPT, Claude, Gemini สิ่งที่น่าหงุดหงิดที่สุดไม่ใช่ตรรกะธุรกิจ แต่คือการได้รับข้อผิดพลาด 401/403/429 ทันที อย่ารีบร้อน ข้อผิดพลาด "คีย์ API" ประเภทนี้ส่วนใหญ่ไม่ได้เสียจริง แต่เป็นรายละเอียดการตั้งค่าที่เล่นตลก
1 401 invalid_api_key ให้สงสัยวิธีคัดลอกก่อน
ฉันเห็นความผิดพลาดมากที่สุด: คีย์คัดลอกมีช่องว่างเกิน, ขาดคำนำหน้า, หรือใช้คีย์จากสภาพแวดล้อมทดสอบใน production แนะนำให้ทำ "การทดสอบขั้นต่ำ" ด้วยคำขอเพียงบรรทัดเดียว เก็บให้เรียบง่าย (KISS) อย่าไปหาหลุมในกองธุรกิจ
2 403 permission denied ส่วนใหญ่เกิดจากโปรเจกต์หรือโมเดลไม่ได้เปิด
Claude และ Gemini บางครั้งผูกสิทธิ์กับโปรเจกต์, ภูมิภาค, หรือไวต์ลิสต์โมเดล ยืนยันว่าโมเดลที่คุณเลือกเปิดสำหรับคีย์ปัจจุบันหรือไม่, และตรวจสอบในคอนโซลว่ามีข้อความ "ต้องเปิดใช้งาน API/บัญชีการชำระเงิน" หรือไม่
3 429 rate limit ไม่ใช่โค้ดแย่ แต่เป็นโควตาหรือการเชื่อมต่อพร้อมกัน
429 พบบ่อยสองแบบ: คำขอถี่เกินไป, โควตาหมด ทำการลองใหม่ด้วย exponential backoff, เพิ่มขีดจำกัดการเชื่อมต่อพร้อมกัน, จะดีขึ้นทันที
4 environment variables ไม่ทำงาน รันได้บนเครื่องแต่ล้มบนเซิร์ฟเวอร์
ใน Node/Python มักพบว่า ENV ไม่ถูก inject, container ไม่ restart, ชื่อตัวแปรใน CI พิมพ์ผิด อ้างอิงแนวทางการแก้ไขจากเครื่องมือ: ยืนยันว่า "คีย์ถูกอ่านจริงหรือไม่" ก่อน แล้วค่อยตรวจสอบเน็ตเวิร์กและโค้ด
5 ข้อจำกัดเน็ตเวิร์กและภูมิภาค 403 ดูเหมือนผีด墙
พร็อกซีบริษัท, ทางออกเซิร์ฟเวอร์คลาวด์, นโยบายภูมิภาค อาจทำให้คำขอดู "เหมือนไม่มีสิทธิ์" ลำดับการตรวจสอบที่ฉันชอบ:
- ลองใช้ curl เชื่อมต่อตรงจากเครื่องเดียวกันสำเร็จหรือไม่
- เปลี่ยนเน็ตเวิร์กหรือโหนดทางออกแล้วลองใหม่
- ตรวจสอบว่า header ถูก WAF/พร็อกซีแก้ไขหรือไม่
ความแตกต่างเล็กน้อยของ Midjourney
Midjourney ทำงานในระบบนิเวศ Discord เป็นหลัก, ไม่ใช่ระบบคีย์ API แบบดั้งเดิม; ปัญหาที่คุณเจอมักเป็นการอนุญาต Discord, สิทธิ์ช่อง, หรือบอทไม่สามารถใช้ได้ แนวทางเหมือนกัน: ใช้ขั้นตอนน้อยที่สุดเพื่อทดสอบ, ตรวจสอบสิทธิ์ก่อน แล้วค่อยตรวจสอบเน็ตเวิร์ก
หากคุณกำลังจัดการกับการสมัครสมาชิก, โหนดเน็ตเวิร์ก, ภูมิภาคบัญชี ที่ดู "ลึกลับ" กว่า แนะนำให้ดูที่ Titikey หลุมหลายหลุมสามารถหลีกเลี่ยงได้ด้วยโซลูชันที่สะดวกกว่า