Rivya AI Docs

ข้อผิดพลาดและขีดจำกัด API

จัดการ public error codes ของ Rivya API, ค่า HTTP status, rate limits, idempotency conflicts และการตัดสินใจลองใหม่

ตรวจล่าสุดเมื่อ 2026/05/11

Rivya API ส่งคืน public error codes ที่เสถียรใน JSON ให้ถือค่า error.code เป็นสัญญาสำหรับการเชื่อมต่อระบบ

รูปแบบข้อผิดพลาด

{
  "error": {
    "code": "api_key_missing",
    "message": "A valid Bearer API key is required.",
    "requestId": "req_..."
  }
}

เก็บ requestId ไว้ใน logs ของคุณเมื่อขอให้ทีมซัพพอร์ตของ Rivya ตรวจสอบ API request ที่ล้มเหลว

Error Codes ที่เสถียร

CodeHTTP statusความหมายการดำเนินการที่แนะนำ
public_api_disabled503การเรียก Public API ถูกปิดชั่วคราวลองใหม่ภายหลัง หรือใช้ Studio ด้วยตัวเองชั่วคราว
api_key_missing401request ไม่ได้ใส่ Bearer API keyส่ง Authorization: Bearer rvya_sk_...
api_key_invalid401key ตรวจสอบไม่ได้ตรวจ key และหมุนเวียนใหม่หากจำเป็น
api_key_revoked401key ถูกเพิกถอนใน Settingsสร้าง key ใหม่
api_key_expired401key ใช้งานไม่ได้แล้วสร้าง key ใหม่
api_scope_denied403key ไม่มี scope ที่ต้องใช้สร้าง key ที่มี scope ที่ต้องการ
rate_limited429request ในช่วงเวลาปัจจุบันมากเกินไปถอยระยะแล้วลองใหม่ภายหลัง
validation_failed400body, model, prompt หรือ params ไม่ถูกต้องเทียบ body ของคุณกับ model reference
not_found404task ที่ขอไม่มีอยู่ หรือไม่ได้เป็นของบัญชีนี้ตรวจ public task ID และขอบเขตบัญชี
webhook_url_rejected400webhook endpoint URL ไม่ได้รับอนุญาตใช้ HTTPS public URL ที่ไม่มี credentials, fragments, localhost หรือ private network addresses
chat_model_not_supported400โมเดลที่เลือกยังไม่พร้อมใช้งานกับ Chat APIอ่าน /api/v1/models แล้วเลือก chat model ที่พร้อมใช้งาน
chat_session_conflict409chat session ใช้กับ request นี้ไม่ได้ใช้ session ที่สร้างผ่าน API ซึ่งเป็นของบัญชีและโมเดลเดียวกัน
chat_attachment_not_supported400ไม่รองรับ chat attachment นี้อัปโหลดรูปภาพผ่าน Files API แล้วส่ง file_id
idempotency_conflict409idempotency key เดียวกันถูกใช้ซ้ำกับ input ที่ต่างกันใช้ key ใหม่ หรือส่ง body เดิมทุกประการอีกครั้ง
insufficient_credits402บัญชีมีเครดิตไม่พอเติมเครดิตหรือเลือก request ที่ต้นทุนต่ำลง
internal_error500request ทำไม่สำเร็จลองใหม่ด้วย idempotency หรือติดต่อซัพพอร์ตพร้อม requestId

ขีดจำกัดอัตราการเรียก (Rate Limits)

Rivya ใช้ application-level Public API rate limits ต่อ API key ค่า production เริ่มต้นกำหนดโดย PUBLIC_API_RATE_LIMIT_PER_MINUTE

เมื่อได้รับ rate_limited ให้ใช้ exponential backoff อย่าลองใหม่แบบวนถี่

retry แบบ idempotent

ส่ง Idempotency-Key กับทุก request production ที่เป็น POST /api/v1/generations และ POST /api/v1/chat/completions

รูปแบบที่แนะนำ:

  • สร้าง key ที่ไม่ซ้ำกันต่อ logical generation request
  • ใช้ key เดิมซ้ำเฉพาะเมื่อลองใหม่ด้วย body เดิม
  • เก็บ public task ID ที่ได้กลับมากับ job record ของคุณเอง
  • สำหรับ Chat API ให้เก็บ session_id ที่ได้กลับมาเมื่อต้องการสนทนาต่อใน conversation เดิม
  • อย่าใช้ key เดียวกันกับ model, prompt หรือ params ที่ต่างกัน

หาก network ล้มเหลวหลังส่ง request แล้ว ให้ลองใหม่ด้วย body เดิมและ Idempotency-Key เดิม Rivya สามารถคืน public response ที่บันทึกไว้แทนการสร้าง task ซ้ำ

การตัดสินใจ Retry

ลองใหม่สำหรับ error เหล่านี้ด้วย backoff:

  • public_api_disabled
  • rate_limited
  • internal_error
  • ความล้มเหลวของ network ชั่วคราว

อย่าลองใหม่สำหรับ error เหล่านี้โดยไม่เปลี่ยน input:

  • api_key_invalid
  • api_key_revoked
  • api_scope_denied
  • validation_failed
  • webhook_url_rejected
  • chat_model_not_supported
  • chat_session_conflict
  • chat_attachment_not_supported
  • idempotency_conflict
  • insufficient_credits

หน้าที่เกี่ยวข้อง

สารบัญ