> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Xử lý lỗi API và retry với CometAPI

> Xử lý lỗi CometAPI bằng cách tách biệt các vấn đề về cấu trúc request, lỗi xác thực, giới hạn tốc độ và các lỗi nền tảng có thể retry.

Xử lý lỗi CometAPI bằng cách quyết định xem request nên được sửa hay retry. Retry `429`, các lỗi thuộc nhóm timeout và lỗi máy chủ tạm thời bằng backoff; không retry các request sai định dạng hoặc lỗi xác thực.

## Chỉ retry các lỗi có thể retry

| Status hoặc tín hiệu        | Retry?          | Hành động                                                         |
| --------------------------- | --------------- | ----------------------------------------------------------------- |
| `400`                       | Không           | Sửa request body hoặc các tham số.                                |
| `401`                       | Không           | Sửa API key và header `Authorization`.                            |
| `403`                       | Thường là không | Xóa các field không được hỗ trợ và xác minh quyền truy cập model. |
| `429`                       | Có              | Retry với exponential backoff và jitter.                          |
| `500` với `invalid_request` | Không           | Sửa cấu trúc request.                                             |
| `500`, `503`, `504`, `524`  | Có              | Retry với backoff và giữ lại request ID.                          |

## Thêm backoff

Ví dụ Python sau đây chỉ retry các lỗi có thể retry:

```python theme={null}
import os
import random
import time
from openai import APIError, OpenAI, RateLimitError

client = OpenAI(
    api_key=os.environ["COMETAPI_KEY"],
    base_url="https://api.cometapi.com/v1",
)

for attempt in range(5):
    try:
        response = client.chat.completions.create(
            model="your-model-id",
            messages=[{"role": "user", "content": "Say hello."}],
        )
        print(response.choices[0].message.content)
        break
    except RateLimitError:
        delay = min(30, 2**attempt) + random.random()
        time.sleep(delay)
    except APIError as error:
        status_code = getattr(error, "status_code", None)
        if status_code in {500, 503, 504, 524}:
            delay = min(30, 2**attempt) + random.random()
            time.sleep(delay)
            continue
        raise
else:
    raise RuntimeError("The request failed after retries.")
```

Phản hồi thành công bao gồm đầu ra của model:

```json theme={null}
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Hello."
      }
    }
  ],
  "usage": {
    "total_tokens": 9
  }
}
```

## Ghi log ngữ cảnh hữu ích

Cấu trúc JSON sau đây an toàn để lưu trữ sau khi bạn đã loại bỏ thông tin bí mật của người dùng và các tệp lớn:

```json theme={null}
{
  "method": "POST",
  "path": "/v1/chat/completions",
  "model": "your-model-id",
  "status": 429,
  "request_id": "request_id_from_error_message",
  "retryable": true
}
```

## Các lỗi thường gặp

| Lỗi                           | Cách khắc phục                                                 |
| ----------------------------- | -------------------------------------------------------------- |
| Retrying `401`                | Dừng retry và xoay vòng hoặc tải lại API key.                  |
| Retrying JSON không hợp lệ    | Xác thực request body trước khi gửi request khác.              |
| Không có request ID trong log | Ghi lại chính xác error body trước khi SDK của bạn bọc nó lại. |
| Retry ngay sau `429`          | Thêm jitter và giảm concurrency.                               |

## Liên kết liên quan

* [Mã lỗi & cách xử lý](/vi/errors/error-codes-handling)
* [Giới hạn tốc độ và đồng thời](/vi/guides/rate-limits-and-concurrency)
* [Trang models](/vi/overview/models)
* [Danh mục model](https://www.cometapi.com/models/)
* [Bảng giá](https://www.cometapi.com/pricing/)
* [Hướng dẫn bắt đầu nhanh CometAPI](/vi/overview/quick-start)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "TechArticle",
        "@id": "https://apidoc.cometapi.com/guides/error-codes-and-retry-strategy",
        "headline": "Làm thế nào để xử lý mã lỗi và retry với CometAPI?",
        "description": "Xử lý lỗi CometAPI bằng cách tách biệt các vấn đề về cấu trúc request, lỗi xác thực, giới hạn tốc độ và các lỗi nền tảng có thể retry.",
        "url": "https://apidoc.cometapi.com/guides/error-codes-and-retry-strategy",
        "author": {
          "@type": "Organization",
          "name": "CometAPI"
        },
        "publisher": {
          "@type": "Organization",
          "name": "CometAPI",
          "url": "https://www.cometapi.com"
        }
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Tài liệu CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Hướng dẫn",
            "item": "https://apidoc.cometapi.com/guides/use-cometapi-with-openai-sdk"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Làm thế nào để xử lý mã lỗi và retry với CometAPI?",
            "item": "https://apidoc.cometapi.com/guides/error-codes-and-retry-strategy"
          }
        ]
      }
    ]
    }
    `}
</script>
