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

# OpenAI 相容 API 快速入門：使用 CometAPI 傳送聊天補全請求

> 使用 CometAPI 作為與 OpenAI API 相容的 base URL，透過 curl、Python、Node.js 和 OpenAI SDK 傳送聊天補全請求。

本頁是 CometAPI 與 OpenAI 相容 API 的快速入門。它可協助你重用聊天補全的請求格式、OpenAI SDK，以及 CometAPI 的 base URL。這不是 OpenAI 帳號設定指南，也不是僅適用於 OpenAI 模型的頁面。

## 你將建置的內容

你將向 CometAPI 與 OpenAI 相容的 `POST /v1/chat/completions` 路由傳送一個文字請求、輸出 assistant 訊息，並讓請求格式可直接用於已經使用 OpenAI SDK 的應用程式。

## 何時使用本頁

當你的專案符合以下任一情況時，請使用此快速入門：

* 你已經在使用 OpenAI SDK 或聊天補全請求格式。
* 你想將 base URL 切換為 CometAPI。
* 你想透過與 OpenAI API 相容的路由呼叫 CometAPI model ID。

## 先決條件

* 儲存在 `COMETAPI_KEY` 中的 CometAPI API 金鑰
* 來自[模型頁面](/zh-Hant/overview/models)的文字 model ID
* `curl`、Python 3.10+，或 Node.js 18+

## API 金鑰、base URL、驗證

搭配與 OpenAI 相容的用戶端時，請使用 CometAPI 的 base URL：

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

直接 HTTP 請求請使用 Bearer token 進行驗證：

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

## 程式碼範例

使用下方的分頁，以 cURL、Python 和 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>

## 流程說明

與 OpenAI 相容代表你的應用程式保留聊天補全 endpoint、請求主體和 SDK 方法名稱，同時將 base URL 和 model ID 改為 CometAPI 的值。

此路由預設為同步。API 會在單一 HTTP 回應中傳回完成的回應物件，而你的應用程式會讀取 `choices[0].message.content`。

若要取得增量輸出，請將 `stream` 設為 `true`。回應會變成 Server-Sent Events，並以 `data: [DONE]` 結束。聊天介面和長回應請使用串流（Streaming）。背景工作和簡單測試則保留同步形式。

## 常見參數

| Parameter               | 用途                                    |
| ----------------------- | ------------------------------------- |
| `model`                 | 用於具備文字能力模型的 CometAPI model ID。        |
| `messages`              | 對話陣列。若為最小請求，先從一則 `user` 訊息開始。         |
| `temperature`           | 控制隨機性。較低的值會讓輸出更具決定性。                  |
| `max_completion_tokens` | 為使用 completion-token 預算的模型家族限制產生輸出上限。 |
| `stream`                | 設為 `true` 時，會串流傳送增量回應區塊。              |
| `response_format`       | 當所選模型支援時，請求 JSON 輸出。                  |

## 疑難排解與常見問題

<AccordionGroup>
  <Accordion title="這是 OpenAI API 嗎？">
    不是。這是 CometAPI 相容於 OpenAI 的 API 路由。你會使用 CometAPI API key、CometAPI base URL，以及 CometAPI model ID。
  </Accordion>

  <Accordion title="請求回傳 401">
    請確認 `COMETAPI_KEY` 已設定在發送請求的同一個 shell 或執行環境中。不要將真實的 key 貼到原始碼檔案裡。
  </Accordion>

  <Accordion title="找不到 model">
    請使用支援文字或聊天請求的 CometAPI model ID。重試前請先查看 Models 頁面。
  </Accordion>

  <Accordion title="SDK 仍然呼叫 OpenAI">
    請確認 client 在 Python 中將 `base_url` 設為 `https://api.cometapi.com/v1`，或在 Node.js 中將 `baseURL` 設為 `https://api.cometapi.com/v1`。
  </Accordion>
</AccordionGroup>

## 後續步驟

* 閱讀[聊天補全 API 參考文件](/api/text/chat)。
* 在[將 CometAPI 與 OpenAI SDK 搭配使用](/zh-Hant/guides/use-cometapi-with-openai-sdk)中設定 SDK client。
* 使用[列出可用的 CometAPI 模型](/zh-Hant/guides/how-to-list-available-models)列出可用模型。
* 透過[錯誤代碼與重試策略](/zh-Hant/guides/error-codes-and-retry-strategy)加入重試與速率限制處理。
