Lỗi
UberLLM trả về các gói lỗi theo kiểu OpenAI nên việc xử lý lỗi hiện có vẫn hoạt động như cũ:
{
"error": {
"code": "insufficient_credits",
"message": "Your credit balance is too low to serve this request.",
"type": "insufficient_credits"
}
}
Bề mặt suy luận (/v1/*)
| HTTP | code |
Ý nghĩa | Cần làm gì |
|---|---|---|---|
| 402 | insufficient_credits |
Số dư trả trước của bạn không đủ để chi trả cho việc đặt trước của yêu cầu. | Nạp tiền tại Dashboard → Credits. |
| 402 | key_spend_cap_exceeded |
API key này đã đạt giới hạn chi tiêu đã cấu hình (hàng ngày / hàng tháng / trọn đời). | Tăng hoặc xóa giới hạn của API key, hoặc sử dụng API key khác. |
| 400 | invalid_request |
Phần thân yêu cầu không thể được phân tích cú pháp, hoặc mô hình đã từ chối yêu cầu (thông báo sẽ cho biết lý do). | Sửa yêu cầu; yêu cầu này sẽ không được thử lại. |
| 413 | request_too_large |
Phần thân yêu cầu vượt quá 10 MB (thường là hình ảnh gửi dưới dạng base64). | Gửi hình ảnh dưới dạng https:// liên kết, hoặc rút ngắn cuộc hội thoại. Không có phí nào được tính. |
| 404 | model_not_found |
ID model không khả dụng. Tiền tố uberllm/ phía trước vẫn được: uberllm/deepseek/deepseek-v4.1-flash sẽ đến deepseek/deepseek-v4.1-flash. |
Kiểm tra GET /v1/models; sửa ID. |
| 400 | context_length_exceeded |
Prompt dài hơn mức mô hình chấp nhận, bất kể nhà cung cấp nào. Trên /v1/chat/completions mà không có danh sách models, mô hình gần nhất có thể xử lý sẽ trả lời thay thế (phản hồi model sẽ nêu tên mô hình đó); lỗi này xảy ra khi không có mô hình nào làm được, hoặc trên /v1/messages. Thông báo sẽ cung cấp cả kích thước và tên các mô hình có thể xử lý. |
Gửi ít hơn, hoặc chọn mô hình mà thông báo nêu tên. Không có phí nào được tính. |
| 400 | tools_not_supported |
Yêu cầu gửi tools và mô hình không thể gọi chúng, bất kể nhà cung cấp nào. Quy tắc thay thế tương tự như trên. Thông báo sẽ nêu tên các mô hình có thể. |
Gửi mà không có tools, hoặc chọn mô hình mà thông báo nêu tên. Không có phí nào được tính. |
| 400 | max_price_exceeded |
Hiện tại không ai bán mô hình này trong provider.max_price của bạn (và không có mô hình nào trong models có thể xử lý nó). |
Tăng max_price, thử lại sau, hoặc nêu tên các mô hình khác. Không có phí nào được tính. |
| 400 | unsupported_routing_option |
Một tùy chọn provider mà UberLLM không thể áp dụng (thông báo sẽ nêu tên tùy chọn đó). |
Bỏ qua tùy chọn đó; xem Models & routing. |
| 400 | invalid_metadata |
metadata không phải là một đối tượng gồm tối đa 16 giá trị văn bản. |
Sửa các tags; số phải nằm trong dấu ngoặc kép. |
| 400 | unknown_capability |
Một alias best-price: / fastest: không chỉ định công việc nào. |
Sử dụng một trong các chat, image, image-edit, text-to-video, image-to-video, music, speech, transcription. |
| 400 | wrong_endpoint |
Mô hình (hoặc alias) thực hiện một công việc mà route này không hỗ trợ: một mô hình hình ảnh, video, âm nhạc, giọng nói hoặc chuyển đổi giọng nói thành văn bản được gửi đến /v1/chat/completions hoặc /v1/messages, một mô hình chat được gửi đến một route media, hoặc giọng nói và chuyển đổi giọng nói thành văn bản bị hoán đổi. Thông báo sẽ nêu tên route phù hợp. Yêu cầu bị từ chối trước khi bất kỳ điều gì chạy; không có phí nào được tính, và Activity sẽ liệt kê nó là bị từ chối. |
Gửi nó đến route mà thông báo nêu tên (cũng có trong endpoints trên /v1/models/{id}). |
| 503 | no_timing_data |
fastest: đã được yêu cầu trước khi đủ số lượng yêu cầu được tính thời gian để so sánh các mô hình. |
Sử dụng best-price: hoặc nêu tên một mô hình. |
| 429 | rate_limited |
API key này đã vượt quá giới hạn yêu cầu mỗi phút, hoặc marketplace tiếp tục giới hạn tốc độ sau các lần thử lại tự động. | Giảm tần suất và thử lại với jitter; tăng giới hạn tốc độ của API key. |
| 503 | no_available_provider |
Hiện tại không ai có thể phục vụ mô hình đó, ngay cả sau các lần thử lại tự động (không có người bán, mọi người bán đều thất bại hoặc quá chậm để bắt đầu, hoặc các tùy chọn provider của bạn không còn gì để định tuyến đến), hoặc một alias best-price: / fastest: không tìm thấy mô hình nào khả dụng cho công việc đó. Thông báo sẽ nêu tên mô hình hoặc công việc. Điều này cũng bao gồm trường hợp người bán có tài khoản nhà cung cấp riêng bị lỗi: UberLLM sẽ thử các người bán khác và không bao giờ chuyển lỗi của người bán đó như thể API key của bạn bị sai. |
Thử lại sau một thời gian ngắn hoặc chọn một mô hình khác. Không có phí nào được tính. |
| 503 | service_unavailable |
Một vấn đề tạm thời từ phía UberLLM. | Thử lại sau vài phút. |
Các yêu cầu hình ảnh, video và âm nhạc có thêm một vài mã riêng (image_required,
invalid_image_url (một liên kết hình ảnh nguồn không dẫn đến hình ảnh),
max_cost_too_low, idempotency_key_reused, artifact_expired); xem
Tạo video hoặc hình ảnh.
Một yêu cầu chat bị từ chối hoặc thất bại sẽ hiển thị trong Dashboard → Activity cùng với
thông báo bạn đã nhận được. Các phản hồi chat, hình ảnh, video, âm nhạc, giọng nói và chuyển đổi giọng nói thành văn bản
đều mang một header X-Request-Id với cùng ID như hàng Activity của nó,
bao gồm cả lỗi.
Các lần thử lại sẽ tự động diễn ra cho bạn trước khi một lỗi được trả về: tối đa 4 lần thử, chỉ trước byte nội dung đầu tiên. Xem Models & routing.
Đặt trước và hủy bỏ
UberLLM đặt trước một chi phí ước tính trước khi ủy quyền và thanh toán dựa trên mức sử dụng thực tế sau đó. Nếu một yêu cầu gặp lỗi, bị hủy bỏ, hoặc bạn ngắt kết nối giữa chừng khi streaming, phần đặt trước chưa sử dụng sẽ được giải phóng — bạn chỉ bị tính phí cho nội dung thực sự được tạo ra. Các luồng bị hủy bỏ được đối chiếu từ ước tính của tokenizer và được gắn cờ trong Dashboard → Activity.
Giới hạn tần suất
Giới hạn tần suất theo từng khóa được áp dụng với một cửa sổ thời gian cố định. Đối với các yêu cầu suy luận, kiểm tra giới hạn tần suất đóng khi thất bại — nếu UberLLM không thể xác minh giới hạn của bạn, yêu cầu sẽ bị từ chối thay vì được phục vụ không giới hạn. Đặt (hoặc tăng) giới hạn yêu cầu mỗi phút của một khóa trong Dashboard → API keys.
Mọi phản hồi được xác thực /v1/* mang theo thông tin về cửa sổ hiện tại của khóa:
| Tiêu đề | Ý nghĩa |
|---|---|
X-RateLimit-Limit |
Số yêu cầu mà khóa này có thể gửi mỗi phút |
X-RateLimit-Remaining |
Số yêu cầu còn lại trong phút hiện tại |
X-RateLimit-Reset |
Thời điểm cửa sổ bắt đầu lại (giây Unix) |
Retry-After |
Khi 429 từ giới hạn này: số giây phải đợi trước khi thử lại |
Hãy giảm tốc độ khi X-RateLimit-Remaining gần 0. Các tiêu đề sẽ không được gửi khi không thể đọc được cửa sổ.
API Người bán (/api/v1/seller/*)
Chúng sử dụng các mã REST tiêu chuẩn:
| HTTP | code |
Ý nghĩa |
|---|---|---|
| 400 | invalid_request |
Xác thực thất bại (ví dụ: endpoint_url không phải https, thiếu giá cho absolute, multiplier nằm ngoài 0 < m ≤ 1.5). Thông báo sẽ nêu tên trường. |
| 400 | model_not_in_catalog |
model_id không phải là một mẫu danh mục đã biết. |
| 401 | unauthorized |
JWT của bảng điều khiển bị thiếu hoặc không hợp lệ. |
| 404 | seller_not_found |
Không có người bán nào cho tổ chức của bạn — hãy gọi POST /api/v1/seller/register trước. |
| 404 | offer_not_found |
Không có ưu đãi nào với ID đó dưới quyền người bán của bạn. |
| 409 | invalid_status_transition |
Thay đổi trạng thái không hợp lệ — ví dụ: tiếp tục một ưu đãi delisted (đã hủy niêm yết là trạng thái cuối cùng). |
Lưu ý: một lần kiểm tra xác thực thất bại không phải là phản hồi lỗi. Ưu đãi được tạo/cập nhật thành công và được trả về với status: "paused" cùng một last_probe_error giải thích lý do — hãy sửa endpoint và PATCH nó trở lại active để kiểm tra lại. Xem Người bán.
Lỗi xác thực
| HTTP | Ý nghĩa |
|---|---|
| 401 | Thiếu/không hợp lệ header Authorization. Khóa suy luận là Bearer ull_...; các endpoint của bảng điều khiển sử dụng JWT tài khoản của bạn. |
| 403 | Khóa hợp lệ nhưng thiếu phạm vi yêu cầu (ví dụ: khóa chỉ dùng cho suy luận gọi một endpoint của bảng điều khiển). |