> ## 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.

# Hướng dẫn nhanh API tương thích OpenAI: Gửi yêu cầu Chat Completions với CometAPI

> Sử dụng CometAPI làm base URL tương thích với API OpenAI cho các yêu cầu Chat Completions bằng curl, Python, Node.js và các OpenAI SDK.

Trang này là hướng dẫn nhanh về API tương thích OpenAI của CometAPI. Trang này giúp bạn tái sử dụng cấu trúc yêu cầu Chat Completions, OpenAI SDK và base URL của CometAPI. Đây không phải là hướng dẫn thiết lập tài khoản OpenAI hoặc trang chỉ dành cho model của OpenAI.

## Những gì bạn sẽ xây dựng

Bạn sẽ gửi một yêu cầu văn bản tới route `POST /v1/chat/completions` tương thích OpenAI của CometAPI, in ra thông điệp của assistant và giữ nguyên cấu trúc yêu cầu để sẵn sàng dùng cho các ứng dụng đã sử dụng OpenAI SDK.

## Khi nào nên dùng trang này

Sử dụng hướng dẫn nhanh này khi một trong các điều sau phù hợp với dự án của bạn:

* Bạn đã dùng OpenAI SDK hoặc cấu trúc yêu cầu Chat Completions.
* Bạn muốn chuyển base URL sang CometAPI.
* Bạn muốn gọi một model ID của CometAPI thông qua một route tương thích API OpenAI.

## Điều kiện tiên quyết

* Một API key của CometAPI được lưu trong `COMETAPI_KEY`
* Một model ID văn bản từ [trang Models](/vi/overview/models)
* `curl`, Python 3.10+ hoặc Node.js 18+

## API key, base URL, xác thực

Sử dụng base URL của CometAPI với các client tương thích OpenAI:

```text theme={null}
https://api.cometapi.com/v1
```

Xác thực các yêu cầu HTTP trực tiếp bằng Bearer token:

```text theme={null}
Authorization: Bearer $COMETAPI_KEY
```

## Ví dụ mã

Sử dụng các tab bên dưới để gửi cùng một yêu cầu Chat Completions bằng cURL, Python và Node.js.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.cometapi.com/v1/chat/completions \
    -H "Authorization: Bearer $COMETAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "your-model-id",
      "messages": [
        {
          "role": "user",
          "content": "Write one sentence about CometAPI."
        }
      ]
    }'
  ```

  ```python Python theme={null}
  import os
  from openai import OpenAI

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

  completion = client.chat.completions.create(
      model="your-model-id",
      messages=[
          {
              "role": "user",
              "content": "Write one sentence about CometAPI.",
          }
      ],
  )

  print(completion.choices[0].message.content)
  ```

  ```javascript Node.js theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    apiKey: process.env.COMETAPI_KEY,
    baseURL: "https://api.cometapi.com/v1",
  });

  const completion = await client.chat.completions.create({
    model: "your-model-id",
    messages: [
      {
        role: "user",
        content: "Write one sentence about CometAPI.",
      },
    ],
  });

  console.log(completion.choices[0].message.content);
  ```
</CodeGroup>

## Giải thích luồng hoạt động

Tương thích OpenAI nghĩa là ứng dụng của bạn giữ nguyên endpoint Chat Completions, nội dung request body và tên phương thức SDK, đồng thời thay đổi base URL và model ID sang các giá trị của CometAPI.

Route này mặc định là đồng bộ. API trả về đối tượng phản hồi hoàn chỉnh trong một HTTP response, và ứng dụng của bạn đọc `choices[0].message.content`.

Để nhận đầu ra tăng dần, đặt `stream` thành `true`. Phản hồi sẽ trở thành Server-Sent Events và kết thúc bằng `data: [DONE]`. Hãy dùng streaming cho giao diện chat và các phản hồi dài. Giữ dạng đồng bộ cho các tác vụ nền và các bài kiểm tra đơn giản.

## Các tham số phổ biến

| Parameter               | Use                                                                                  |
| ----------------------- | ------------------------------------------------------------------------------------ |
| `model`                 | model ID CometAPI dành cho model có khả năng xử lý văn bản.                          |
| `messages`              | Mảng hội thoại. Bắt đầu với một thông điệp `user` cho một yêu cầu tối thiểu.         |
| `temperature`           | Kiểm soát mức độ ngẫu nhiên. Giá trị thấp hơn khiến đầu ra có tính xác định cao hơn. |
| `max_completion_tokens` | Giới hạn đầu ra được tạo ra cho các họ model sử dụng ngân sách completion-token.     |
| `stream`                | Stream các phần phản hồi tăng dần khi được đặt thành `true`.                         |
| `response_format`       | Yêu cầu đầu ra JSON khi model được chọn hỗ trợ.                                      |

## Khắc phục sự cố và câu hỏi thường gặp

<AccordionGroup>
  <Accordion title="Đây có phải là OpenAI API không?">
    Không. Đây là tuyến API tương thích OpenAI của CometAPI. Bạn sử dụng API key của CometAPI, base URL của CometAPI và model ID của CometAPI.
  </Accordion>

  <Accordion title="Yêu cầu trả về 401">
    Xác nhận rằng `COMETAPI_KEY` được thiết lập trong cùng shell hoặc runtime gửi yêu cầu. Không dán key thật vào các tệp mã nguồn.
  </Accordion>

  <Accordion title="Không tìm thấy model">
    Sử dụng model ID của CometAPI có hỗ trợ yêu cầu văn bản hoặc chat. Kiểm tra trang Models trước khi thử lại.
  </Accordion>

  <Accordion title="SDK vẫn gọi OpenAI">
    Xác nhận rằng client đặt `base_url` trong Python hoặc `baseURL` trong Node.js thành `https://api.cometapi.com/v1`.
  </Accordion>
</AccordionGroup>

## Các bước tiếp theo

* Đọc [tài liệu tham chiếu Chat Completions API](/api/text/chat).
* Cấu hình SDK client trong [Sử dụng CometAPI với OpenAI SDKs](/vi/guides/use-cometapi-with-openai-sdk).
* Liệt kê các model khả dụng với [Liệt kê các model CometAPI khả dụng](/vi/guides/how-to-list-available-models).
* Thêm xử lý retry và rate-limit với [Mã lỗi và chiến lược retry](/vi/guides/error-codes-and-retry-strategy).
