ข้อผิดพลาด 401: ทำอย่างไรเมื่อเรียก claude-opus-4-5-20251101 ไม่สำเร็จ

401 หมายความว่าการยืนยันตัวตนล้มเหลว คำขอไม่มี API Key หรือคีย์ไม่ถูกต้อง ถูกลบ หรือหมดอายุ

401 Unauthorized หมายความว่าคำขอไม่มีข้อมูลรับรองความถูกต้องที่ใช้งานได้ gateway ไม่สามารถระบุตัวตนผู้เรียกได้ คำขอจึงไม่ไปถึงโมเดล upstream การตรวจสอบ header Authorization และสถานะของ key คือทางเดียวที่จะแก้ได้

claude-opus-4-5-20251101 ให้บริการโดย Anthropic ทุกอย่างในหน้านี้ — สาเหตุ วิธีแก้ และข้อมูลที่วัดจริง — รวบรวมจากพฤติกรรมการทำงานจริงของโมเดลนี้บนชั้น gateway

ที่เกตเวย์นี้ สาเหตุที่พบบ่อยที่สุดคือ ไม่มีส่วนหัว Authorization ขั้นตอนแรกที่แนะนำคือ ส่งส่วนหัวเป็น Authorization: Bearer ตามด้วยคีย์ของคุณ

สาเหตุที่พบบ่อย

  • ไม่มีส่วนหัว Authorization
  • คีย์พิมพ์ผิดหรือมีช่องว่างเกิน
  • คีย์ถูกลบหรือปิดใช้งานในหน้าโทเค็น
  • ใช้คีย์ของแพลตฟอร์มอื่นโดยไม่ตั้งใจ

วิธีแก้ไข

  • ส่งส่วนหัวเป็น Authorization: Bearer ตามด้วยคีย์ของคุณ
  • สร้างคีย์ใหม่ในหน้าโทเค็น
  • ตรวจว่าไม่ได้ใช้คีย์ของบริการอื่น
  • ทดสอบคีย์ด้วยคำขอ curl ที่เล็กที่สุด

ตัวอย่างการลองใหม่แบบ Exponential Backoff

โค้ดด้านล่างจะลองใหม่เมื่อ claude-opus-4-5-20251101 ตอบกลับ 401 สูงสุด 5 ครั้ง โดยเพิ่มเวลารอและใส่ jitter แบบสุ่ม เพื่อไม่ให้คำขอจำนวนมาก retry พร้อมกัน อ่าน base URL และ API key จาก environment variables อย่าเขียนลงในโค้ดตรงๆ

import os, time, random
import requests

BASE  = os.getenv("OPENAI_BASE_URL")   # e.g. https://<your-gateway>/v1
KEY   = os.getenv("OPENAI_API_KEY")
MODEL = 'claude-opus-4-5-20251101'


def chat(messages, retries=5):
    """Retry with exponential backoff + jitter."""
    for i in range(retries):
        try:
            r = requests.post(
                BASE + "/chat/completions",
                headers={"Authorization": "Bearer " + KEY},
                json={"model": MODEL, "messages": messages, "stream": True},
                timeout=60,
            )
            if r.status_code == 429 or r.status_code >= 500:
                time.sleep(min(2 ** i + random.uniform(0, 1), 30))
                continue
            r.raise_for_status()
            return r.json()
        except requests.exceptions.Timeout:
            time.sleep(min(2 ** i + random.uniform(0, 1), 30))
    raise RuntimeError("gave up after " + str(retries) + " retries")


print(chat([{"role": "user", "content": "hello"}]))

ข้อมูลสำคัญของโมเดลนี้

ปลายทาง APIhttps://api.airai.cc/v1
เข้ากันได้กับ OpenAIOpenAI-compatible
ผู้ให้บริการAnthropic
บริบท200K
ความสามารถReasoning, Tools, Files, Vision
รูปแบบ APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
สูตรคิดเงินp * 5 + cr * 0.5 + cc * 6.25 + cc1h * 10 + c * 25

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

เมื่อ 401 เกิดบ่อย ควรบันทึกข้อมูลอะไร?

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

เมื่อ claude-opus-4-5-20251101 ตอบกลับ 401 จะถูกคิดเงินหรือไม่?

ไม่คิดเงิน มีเพียงผลลัพธ์ที่สร้างจริงเท่านั้นที่นับเป็นการใช้งานคิดค่าบริการเฉพาะส่วนที่สร้างเสร็จแล้ว ส่วนที่ล้มเหลวไม่คิดการคิดเงินเป็นแบบ p * 5 + cr * 0.5 + cc * 6.25 + cc1h * 10 + c * 25 ไม่มีผลลัพธ์ก็ไม่คิดเงินเมื่อคิดเงินแบบ p * 5 + cr * 0.5 + cc * 6.25 + cc1h * 10 + c * 25 ต้นทุนของ output ยาวมาจาก output token เป็นหลักตรวจสอบยอดคงเหลือและขีดจำกัดอัตราในคอนโซลก่อน แล้วค่อยดูโค้ดเมื่อประเมินต้นทุนจาก p * 5 + cr * 0.5 + cc * 6.25 + cc1h * 10 + c * 25 ให้นับงบการลองใหม่เข้าไปด้วย

การเรียกตรงจาก frontend หรือผ่าน backend แบบใดทำให้เกิด 401 ได้ง่ายกว่า?

ควรมีโมเดลสำรองเตรียมไว้ด้วยโมเดลนี้จาก Anthropic มี upstream node หลายตัวที่ gateway สลับได้เตรียมโมเดลสำรองที่เบากว่าไว้ โฟลว์หลักจะไม่สะดุดใส่ชื่อโมเดลไว้ในคอนฟิก เปลี่ยนต้นทางโดยไม่ต้องแก้โค้ด

เมื่อมี upstream หลายโหนด gateway จะสลับอัตโนมัติเมื่อเกิด 401 หรือไม่?

ข้อผิดพลาดนี้ไม่เกี่ยวกับความสามารถของโมเดล แต่เป็นปัญหาระดับ gatewayแท็กความสามารถของโมเดลนี้คือ Reasoning, Tools, Files, Visionตัดสินใจก่อนว่าอยู่ระดับบัญชีหรือระดับโมเดล สองแบบนี้ต้องการวิธีแก้ต่างกันโดยสิ้นเชิง

ข้อผิดพลาดอื่นของโมเดลนี้

โมเดลอื่นที่เจอข้อผิดพลาดเดียวกัน

อัปเดตข้อมูล: 2026-10-11 19:15

ฝ่ายสนับสนุนด้านเทคนิคบริการลูกค้าออนไลน์
กลับไปด้านบน