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

# Quickstart API yang kompatibel dengan OpenAI: Kirim permintaan Chat Completions dengan CometAPI

> Gunakan CometAPI sebagai base URL yang kompatibel dengan API OpenAI untuk permintaan Chat Completions dengan curl, Python, Node.js, dan OpenAI SDK.

Halaman ini adalah quickstart API CometAPI yang kompatibel dengan OpenAI. Halaman ini membantu Anda menggunakan kembali bentuk permintaan Chat Completions, OpenAI SDK, dan base URL CometAPI. Ini bukan panduan penyiapan akun OpenAI atau halaman model khusus OpenAI.

## Apa yang akan Anda bangun

Anda akan mengirim satu permintaan teks ke rute `POST /v1/chat/completions` CometAPI yang kompatibel dengan OpenAI, mencetak pesan assistant, dan menjaga bentuk permintaan tetap siap untuk aplikasi yang sudah menggunakan OpenAI SDK.

## Kapan menggunakan halaman ini

Gunakan quickstart ini ketika salah satu hal berikut sesuai dengan proyek Anda:

* Anda sudah menggunakan OpenAI SDK atau bentuk permintaan Chat Completions.
* Anda ingin mengganti base URL ke CometAPI.
* Anda ingin memanggil model ID CometAPI melalui rute yang kompatibel dengan API OpenAI.

## Prasyarat

* Kunci API CometAPI yang disimpan di `COMETAPI_KEY`
* Sebuah model ID teks dari [halaman Models](/id/overview/models)
* `curl`, Python 3.10+, atau Node.js 18+

## Kunci API, base URL, autentikasi

Gunakan base URL CometAPI dengan klien yang kompatibel dengan OpenAI:

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

Autentikasi permintaan HTTP langsung dengan token Bearer:

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

## Contoh kode

Gunakan tab di bawah ini untuk mengirim permintaan Chat Completions yang sama dengan cURL, Python, dan 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>

## Penjelasan alur

Kompatibel dengan OpenAI berarti aplikasi Anda tetap menggunakan endpoint Chat Completions, body permintaan, dan nama metode SDK sambil mengganti base URL dan model ID ke nilai CometAPI.

Rute ini bersifat sinkron secara default. API mengembalikan objek respons yang sudah lengkap dalam satu respons HTTP, dan aplikasi Anda membaca `choices[0].message.content`.

Untuk output bertahap, atur `stream` ke `true`. Respons akan menjadi Server-Sent Events dan diakhiri dengan `data: [DONE]`. Gunakan streaming untuk antarmuka chat dan respons panjang. Pertahankan bentuk sinkron untuk pekerjaan latar belakang dan pengujian sederhana.

## Parameter umum

| Parameter               | Penggunaan                                                                                        |
| ----------------------- | ------------------------------------------------------------------------------------------------- |
| `model`                 | Model ID CometAPI untuk model yang mendukung teks.                                                |
| `messages`              | Array percakapan. Mulailah dengan satu pesan `user` untuk permintaan minimal.                     |
| `temperature`           | Mengontrol tingkat keacakan. Nilai yang lebih rendah membuat output lebih deterministik.          |
| `max_completion_tokens` | Membatasi output yang dihasilkan untuk keluarga model yang menggunakan anggaran completion-token. |
| `stream`                | Mengalirkan potongan respons bertahap saat diatur ke `true`.                                      |
| `response_format`       | Meminta output JSON saat model yang dipilih mendukungnya.                                         |

## Pemecahan masalah dan FAQ

<AccordionGroup>
  <Accordion title="Apakah ini OpenAI API?">
    Tidak. Ini adalah rute API kompatibel OpenAI milik CometAPI. Anda menggunakan API key CometAPI, base URL CometAPI, dan model ID CometAPI.
  </Accordion>

  <Accordion title="Permintaan mengembalikan 401">
    Pastikan `COMETAPI_KEY` disetel di shell atau runtime yang sama yang mengirim permintaan. Jangan tempelkan key asli ke dalam file sumber.
  </Accordion>

  <Accordion title="Model tidak ditemukan">
    Gunakan model ID CometAPI yang mendukung permintaan teks atau chat. Periksa halaman Models sebelum mencoba lagi.
  </Accordion>

  <Accordion title="SDK masih memanggil OpenAI">
    Pastikan klien menetapkan `base_url` di Python atau `baseURL` di Node.js ke `https://api.cometapi.com/v1`.
  </Accordion>
</AccordionGroup>

## Langkah berikutnya

* Baca [referensi API Chat Completions](/api/text/chat).
* Konfigurasikan klien SDK di [Gunakan CometAPI dengan OpenAI SDK](/id/guides/use-cometapi-with-openai-sdk).
* Tampilkan model yang tersedia dengan [Daftar model CometAPI yang tersedia](/id/guides/how-to-list-available-models).
* Tambahkan penanganan retry dan rate-limit dengan [Kode error dan strategi retry](/id/guides/error-codes-and-retry-strategy).
