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

# Sử dụng AI SDK với CometAPI

> Sử dụng hướng dẫn này để cấu hình AI SDK với CometAPI bằng cách thiết lập base URL, API key và các tùy chọn model hoặc provider.

[CometAPI provider for the AI SDK](https://github.com/cometapi-dev/ai-sdk-provider) cho phép bạn truy cập hơn 500 model AI thông qua một giao diện TypeScript hợp nhất. Hãy sử dụng nó để thêm khả năng tạo văn bản, Streaming, Embeddings và tạo ảnh vào bất kỳ ứng dụng Node.js hoặc Edge runtime nào.

## Tính năng được hỗ trợ

| Tính năng         | Phương thức            | Trạng thái  |
| ----------------- | ---------------------- | ----------- |
| Tạo văn bản       | `generateText()`       | Được hỗ trợ |
| Streaming văn bản | `streamText()`         | Được hỗ trợ |
| Text embeddings   | `textEmbeddingModel()` | Được hỗ trợ |
| Tạo ảnh           | `imageModel()`         | Được hỗ trợ |

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

* Node.js 18+
* Một tài khoản CometAPI với API key đang hoạt động — [lấy tại đây](https://www.cometapi.com/console/token)

<Steps>
  <Step title="Cài đặt provider">
    Cài đặt `@cometapi/ai-sdk-provider` cùng với gói lõi 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="Thiết lập API key của bạn">
    Provider mặc định đọc biến môi trường `COMETAPI_KEY`:

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

    <Note>
      Sử dụng biến môi trường để tránh hardcode thông tin xác thực trong mã nguồn của bạn.
    </Note>
  </Step>

  <Step title="Import provider">
    Import instance provider mặc định:

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

    Để ghi đè API key, base URL hoặc các thiết lập khác, hãy dùng `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>

## Cách sử dụng

### Tạo văn bản

Sử dụng `generateText()` cho phản hồi một lần:

```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);
```

### Streaming văn bản

Sử dụng `streamText()` để xuất nội dung theo từng phần trong thời gian thực:

```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);
}
```

### Tạo embeddings

Sử dụng `textEmbeddingModel()` để tạo vector embedding:

```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);
```

### Tạo ảnh

Sử dụng `imageModel()` để tạo ảnh từ text prompt:

```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',
});
```

## Cấu hình provider

`createCometAPI` chấp nhận các tùy chọn sau:

| Option    | Type                     | Default                       | Description                |
| --------- | ------------------------ | ----------------------------- | -------------------------- |
| `apiKey`  | `string`                 | `process.env.COMETAPI_KEY`    | Khóa API CometAPI          |
| `baseURL` | `string`                 | `https://api.cometapi.com/v1` | URL cơ sở của API          |
| `headers` | `Record<string, string>` | —                             | Header request tùy chỉnh   |
| `fetch`   | `FetchFunction`          | —                             | Triển khai fetch tùy chỉnh |

## Các phương thức model

Provider cung cấp một số hàm khởi tạo model:

| Method                                 | Returns            | Use case                                 |
| -------------------------------------- | ------------------ | ---------------------------------------- |
| `cometapi(modelId)`                    | `LanguageModelV2`  | Tạo văn bản và streaming (cách viết tắt) |
| `cometapi.chatModel(modelId)`          | `LanguageModelV2`  | Chat completions                         |
| `cometapi.completionModel(modelId)`    | `LanguageModelV2`  | Hoàn thành văn bản                       |
| `cometapi.languageModel(modelId)`      | `LanguageModelV2`  | Bí danh của `chatModel`                  |
| `cometapi.textEmbeddingModel(modelId)` | `EmbeddingModelV2` | Text embeddings                          |
| `cometapi.imageModel(modelId)`         | `ImageModelV2`     | Tạo ảnh                                  |

Xem danh sách đầy đủ các model ID hiện có trên [trang Models](/vi/overview/models).

<AccordionGroup>
  <Accordion title="Mẹo và khắc phục sự cố">
    * **Lựa chọn model**: Bất kỳ model nào từ [danh mục model CometAPI](/vi/overview/models) đều hoạt động với phương thức model tương ứng — model chat qua `cometapi()`, model embedding qua `textEmbeddingModel()`, model ảnh qua `imageModel()`.
    * **Tinh chỉnh phản hồi**: Truyền `temperature`, `maxTokens`, và `topP` trực tiếp vào `generateText()` hoặc `streamText()`, ví dụ: `generateText(\{..., temperature: 0.7\})`.
    * **Xử lý lỗi**: Bọc các lệnh gọi trong `try/catch` để xử lý lỗi xác thực, giới hạn tốc độ hoặc sự cố mạng.
    * **Bảo mật**: Không bao giờ commit khóa API vào hệ thống quản lý phiên bản. Hãy dùng biến môi trường hoặc trình quản lý secrets.
    * **Giới hạn tốc độ**: Theo dõi mức sử dụng trong [CometAPI console](https://www.cometapi.com/console).
  </Accordion>
</AccordionGroup>

## Tài nguyên liên quan

* [CometAPI AI SDK Provider trên GitHub](https://github.com/cometapi-dev/ai-sdk-provider)
* [@cometapi/ai-sdk-provider trên npm](https://www.npmjs.com/package/@cometapi/ai-sdk-provider)
* [Tài liệu AI SDK](https://ai-sdk.dev/docs)
* [Bắt đầu nhanh với CometAPI](/vi/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": "Sử dụng AI SDK với CometAPI",
        "description": "Sử dụng hướng dẫn này để cấu hình AI SDK với CometAPI bằng cách thiết lập base URL, API key và model hoặc các tùy chọn provider.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-1",
            "position": 1,
            "name": "Cài đặt provider",
            "text": "Hoàn thành bước Cài đặt provider trong hướng dẫn Sử dụng AI SDK với CometAPI."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-2",
            "position": 2,
            "name": "Thiết lập API key của bạn",
            "text": "Lưu API key CometAPI của bạn trong biến môi trường hoặc trường cài đặt được integration sử dụng."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-3",
            "position": 3,
            "name": "Import provider",
            "text": "Hoàn thành bước Import provider trong hướng dẫn Sử dụng AI SDK với CometAPI."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Tài liệu CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Tích hợp",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Sử dụng AI SDK với CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/ai-sdk"
          }
        ]
      }
    ]
    }
    `}
</script>
