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

# Gunakan AI SDK dengan CometAPI

> Gunakan panduan ini untuk mengonfigurasi AI SDK dengan CometAPI dengan menetapkan base URL, API key, serta opsi model atau provider.

[Provider CometAPI untuk AI SDK](https://github.com/cometapi-dev/ai-sdk-provider) memberi Anda akses ke 500+ model AI melalui antarmuka TypeScript terpadu. Gunakan ini untuk menambahkan pembuatan teks, streaming, embeddings, dan pembuatan gambar ke aplikasi runtime Node.js atau Edge apa pun.

## Fitur yang didukung

| Feature          | Method                 | Status   |
| ---------------- | ---------------------- | -------- |
| Pembuatan teks   | `generateText()`       | Didukung |
| Streaming teks   | `streamText()`         | Didukung |
| Text embeddings  | `textEmbeddingModel()` | Didukung |
| Pembuatan gambar | `imageModel()`         | Didukung |

## Prasyarat

* Node.js 18+
* Akun CometAPI dengan API key aktif — [dapatkan di sini](https://www.cometapi.com/console/token)

<Steps>
  <Step title="Install the provider">
    Instal `@cometapi/ai-sdk-provider` bersama paket inti AI SDK:

    <CodeGroup>
      ```bash npm theme={null}
      npm install @cometapi/ai-sdk-provider ai
      ```

      ```bash pnpm theme={null}
      pnpm add @cometapi/ai-sdk-provider ai
      ```

      ```bash yarn theme={null}
      yarn add @cometapi/ai-sdk-provider ai
      ```
    </CodeGroup>
  </Step>

  <Step title="Set your API key">
    Provider membaca variabel lingkungan `COMETAPI_KEY` secara default:

    ```bash theme={null}
    read -rsp "CometAPI API key: " COMETAPI_KEY
    printf '\n'
    export COMETAPI_KEY
    ```

    <Note>
      Gunakan variabel lingkungan untuk menghindari hardcoding kredensial di source code Anda.
    </Note>
  </Step>

  <Step title="Import the provider">
    Impor instance provider default:

    ```typescript theme={null}
    import { cometapi } from '@cometapi/ai-sdk-provider';
    ```

    Untuk mengganti API key, base URL, atau pengaturan lainnya, gunakan `createCometAPI`:

    ```typescript theme={null}
    import { createCometAPI } from '@cometapi/ai-sdk-provider';

    const cometapi = createCometAPI({
      apiKey: process.env.COMETAPI_KEY,       // override env variable
      baseURL: 'https://api.cometapi.com/v1',  // default
    });
    ```
  </Step>
</Steps>

## Penggunaan

### Generate text

Gunakan `generateText()` untuk respons sekali jalan:

```typescript theme={null}
import { cometapi } from '@cometapi/ai-sdk-provider';
import { generateText } from 'ai';

const { text } = await generateText({
  model: cometapi('your-model-id'),
  prompt: 'What is CometAPI?',
});

console.log(text);
```

### Stream text

Gunakan `streamText()` untuk output bertahap secara real-time:

```typescript theme={null}
import { cometapi } from '@cometapi/ai-sdk-provider';
import { streamText } from 'ai';

const result = streamText({
  model: cometapi('your-model-id'),
  prompt: 'Write a short story about AI.',
});

for await (const chunk of result.textStream) {
  process.stdout.write(chunk);
}
```

### Generate embeddings

Gunakan `textEmbeddingModel()` untuk membuat vector embeddings:

```typescript theme={null}
import { cometapi } from '@cometapi/ai-sdk-provider';

const model = cometapi.textEmbeddingModel('text-embedding-3-small');

// Single embedding
const single = await model.doEmbed({ values: ['Hello, world!'] });
console.log('Dimensions:', single.embeddings[0].length);

// Batch embeddings
const batch = await model.doEmbed({
  values: ['sunny day', 'rainy afternoon', 'cold winter night'],
});
console.log('Count:', batch.embeddings.length);
```

### Generate images

Gunakan `imageModel()` untuk menghasilkan gambar dari prompt teks:

```typescript theme={null}
import { cometapi } from '@cometapi/ai-sdk-provider';
import { experimental_generateImage as generateImage } from 'ai';

const { image } = await generateImage({
  model: cometapi.imageModel('your-model-id'),
  prompt: 'A beautiful sunset over mountains',
});
```

## Konfigurasi provider

`createCometAPI` menerima opsi berikut:

| Opsi      | Tipe                     | Default                       | Deskripsi                 |
| --------- | ------------------------ | ----------------------------- | ------------------------- |
| `apiKey`  | `string`                 | `process.env.COMETAPI_KEY`    | API key CometAPI          |
| `baseURL` | `string`                 | `https://api.cometapi.com/v1` | URL dasar API             |
| `headers` | `Record<string, string>` | —                             | Header permintaan kustom  |
| `fetch`   | `FetchFunction`          | —                             | Implementasi fetch kustom |

## Metode model

Provider ini mengekspos beberapa konstruktor model:

| Metode                                 | Mengembalikan      | Kasus penggunaan                         |
| -------------------------------------- | ------------------ | ---------------------------------------- |
| `cometapi(modelId)`                    | `LanguageModelV2`  | Pembuatan teks dan streaming (singkatan) |
| `cometapi.chatModel(modelId)`          | `LanguageModelV2`  | Chat completions                         |
| `cometapi.completionModel(modelId)`    | `LanguageModelV2`  | Penyelesaian teks                        |
| `cometapi.languageModel(modelId)`      | `LanguageModelV2`  | Alias untuk `chatModel`                  |
| `cometapi.textEmbeddingModel(modelId)` | `EmbeddingModelV2` | Text embeddings                          |
| `cometapi.imageModel(modelId)`         | `ImageModelV2`     | Pembuatan gambar                         |

Telusuri daftar lengkap model ID yang tersedia di [halaman Models](/id/overview/models).

<AccordionGroup>
  <Accordion title="Tips dan pemecahan masalah">
    * **Pemilihan model**: Model apa pun dari [katalog model CometAPI](/id/overview/models) dapat digunakan dengan metode model yang sesuai — model chat melalui `cometapi()`, model embedding melalui `textEmbeddingModel()`, model gambar melalui `imageModel()`.
    * **Fine-tuning respons**: Teruskan `temperature`, `maxTokens`, dan `topP` langsung ke `generateText()` atau `streamText()`, misalnya `generateText(\{..., temperature: 0.7\})`.
    * **Penanganan error**: Bungkus pemanggilan dalam `try/catch` untuk menangani error autentikasi, rate limit, atau masalah jaringan.
    * **Keamanan**: Jangan pernah melakukan commit API key ke version control. Gunakan environment variable atau pengelola rahasia.
    * **Rate limit**: Pantau penggunaan di [console CometAPI](https://www.cometapi.com/console).
  </Accordion>
</AccordionGroup>

## Sumber daya terkait

* [CometAPI AI SDK Provider di GitHub](https://github.com/cometapi-dev/ai-sdk-provider)
* [@cometapi/ai-sdk-provider di npm](https://www.npmjs.com/package/@cometapi/ai-sdk-provider)
* [Dokumentasi AI SDK](https://ai-sdk.dev/docs)
* [Mulai cepat CometAPI](/id/overview/quick-start)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#howto",
        "name": "Gunakan AI SDK dengan CometAPI",
        "description": "Gunakan panduan ini untuk mengonfigurasi AI SDK dengan CometAPI dengan menetapkan base URL, API key, dan model atau opsi provider.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-1",
            "position": 1,
            "name": "Instal provider",
            "text": "Selesaikan langkah Instal provider dalam panduan Gunakan AI SDK dengan CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-2",
            "position": 2,
            "name": "Atur API key Anda",
            "text": "Simpan API key CometAPI Anda di variabel environment atau kolom pengaturan yang digunakan oleh integrasi."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-3",
            "position": 3,
            "name": "Impor provider",
            "text": "Selesaikan langkah Impor provider dalam panduan Gunakan AI SDK dengan CometAPI."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Dokumen CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Integrasi",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Gunakan AI SDK dengan CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/ai-sdk"
          }
        ]
      }
    ]
    }
    `}
</script>
