> ## 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 API key 存储在 `COMETAPI_KEY` 中
* 从[模型页面](/zh-Hans/overview/models)获取一个文本 model ID
* `curl`、Python 3.10+ 或 Node.js 18+

## API key、base URL、认证

将 CometAPI base URL 与兼容 OpenAI 的客户端一起使用：

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

使用 Bearer token 对直接 HTTP 请求进行认证：

```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，是指你的应用在保留聊天补全端点、请求体和 SDK 方法名的同时，仅将 base URL 和 model ID 替换为 CometAPI 的对应值。

该路由默认是同步的。API 会在一次 HTTP 响应中返回完整的响应对象，而你的应用读取 `choices[0].message.content`。

如需增量输出，请将 `stream` 设为 `true`。响应将变为 Server-Sent Events，并以 `data: [DONE]` 结束。对于聊天界面和长响应，请使用流式输出（Streaming）。对于后台作业和简单测试，请保留同步形式。

## 常见参数

| Parameter               | Use                                 |
| ----------------------- | ----------------------------------- |
| `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="找不到模型">
    请使用支持文本或聊天请求的 CometAPI model ID。重试前请先检查 Models 页面。
  </Accordion>

  <Accordion title="SDK 仍然调用 OpenAI">
    请确认客户端在 Python 中将 `base_url` 或在 Node.js 中将 `baseURL` 设置为 `https://api.cometapi.com/v1`。
  </Accordion>
</AccordionGroup>

## 后续步骤

* 阅读[聊天补全 API 参考文档](/api/text/chat)。
* 在[使用 CometAPI 与 OpenAI SDK](/zh-Hans/guides/use-cometapi-with-openai-sdk)中配置 SDK 客户端。
* 通过[列出可用的 CometAPI 模型](/zh-Hans/guides/how-to-list-available-models)查看可用模型。
* 通过[错误代码与重试策略](/zh-Hans/guides/error-codes-and-retry-strategy)添加重试和限流处理。
