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

# Використання AI SDK з CometAPI

> Скористайтеся цим посібником, щоб налаштувати AI SDK з CometAPI, вказавши базовий URL, API key і параметри model або provider.

[Провайдер CometAPI для AI SDK](https://github.com/cometapi-dev/ai-sdk-provider) надає доступ до понад 500 AI-моделей через уніфікований інтерфейс TypeScript. Використовуйте його, щоб додати генерацію тексту, Streaming, embeddings і генерацію зображень до будь-якого застосунку для Node.js або Edge runtime.

## Підтримувані можливості

| Можливість               | Метод                  | Статус        |
| ------------------------ | ---------------------- | ------------- |
| Генерація тексту         | `generateText()`       | Підтримується |
| Потокова передача тексту | `streamText()`         | Підтримується |
| Text embeddings          | `textEmbeddingModel()` | Підтримується |
| Генерація зображень      | `imageModel()`         | Підтримується |

## Передумови

* Node.js 18+
* Обліковий запис CometAPI з активним API key — [отримайте його тут](https://www.cometapi.com/console/token)

<Steps>
  <Step title="Встановіть провайдер">
    Встановіть `@cometapi/ai-sdk-provider` разом із базовим пакетом 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="Налаштуйте свій API key">
    За замовчуванням провайдер зчитує змінну середовища `COMETAPI_KEY`:

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

    <Note>
      Використовуйте змінні середовища, щоб уникнути жорсткого кодування облікових даних у вихідному коді.
    </Note>
  </Step>

  <Step title="Імпортуйте провайдер">
    Імпортуйте стандартний екземпляр провайдера:

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

    Щоб перевизначити API key, базовий URL або інші налаштування, використовуйте `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>

## Використання

### Генерація тексту

Використовуйте `generateText()` для одноразової відповіді:

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

### Потокова передача тексту

Використовуйте `streamText()` для виводу частинами в реальному часі:

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

### Генерація embeddings

Використовуйте `textEmbeddingModel()` для створення векторних 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);
```

### Генерація зображень

Використовуйте `imageModel()` для генерації зображень із текстових 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',
});
```

## Конфігурація провайдера

`createCometAPI` приймає такі параметри:

| Параметр  | Тип                      | За замовчуванням              | Опис                    |
| --------- | ------------------------ | ----------------------------- | ----------------------- |
| `apiKey`  | `string`                 | `process.env.COMETAPI_KEY`    | API-ключ CometAPI       |
| `baseURL` | `string`                 | `https://api.cometapi.com/v1` | Базова URL-адреса API   |
| `headers` | `Record<string, string>` | —                             | Власні заголовки запиту |
| `fetch`   | `FetchFunction`          | —                             | Власна реалізація fetch |

## Методи моделі

Провайдер надає кілька конструкторів моделей:

| Метод                                  | Повертає           | Випадок використання                             |
| -------------------------------------- | ------------------ | ------------------------------------------------ |
| `cometapi(modelId)`                    | `LanguageModelV2`  | Генерація тексту та Streaming (скорочений запис) |
| `cometapi.chatModel(modelId)`          | `LanguageModelV2`  | Chat Completions                                 |
| `cometapi.completionModel(modelId)`    | `LanguageModelV2`  | Завершення тексту                                |
| `cometapi.languageModel(modelId)`      | `LanguageModelV2`  | Псевдонім для `chatModel`                        |
| `cometapi.textEmbeddingModel(modelId)` | `EmbeddingModelV2` | Embeddings тексту                                |
| `cometapi.imageModel(modelId)`         | `ImageModelV2`     | Генерація зображень                              |

Перегляньте повний список доступних model ID на сторінці [Models page](/uk/overview/models).

<AccordionGroup>
  <Accordion title="Поради та усунення несправностей">
    * **Вибір моделі**: Будь-яка модель із [каталогу моделей CometAPI](/uk/overview/models) працює з відповідним методом моделі — chat-моделі через `cometapi()`, embedding-моделі через `textEmbeddingModel()`, моделі зображень через `imageModel()`.
    * **Налаштування відповідей Fine-tuning**: Передавайте `temperature`, `maxTokens` і `topP` безпосередньо в `generateText()` або `streamText()`, наприклад `generateText(\{..., temperature: 0.7\})`.
    * **Обробка помилок**: Обгорніть виклики в `try/catch`, щоб обробляти помилки автентифікації, ліміти швидкості або проблеми мережі.
    * **Безпека**: Ніколи не додавайте API-ключі до системи контролю версій. Використовуйте змінні середовища або менеджер секретів.
    * **Ліміти швидкості**: Відстежуйте використання в [консолі CometAPI](https://www.cometapi.com/console).
  </Accordion>
</AccordionGroup>

## Пов’язані ресурси

* [Провайдер CometAPI AI SDK на GitHub](https://github.com/cometapi-dev/ai-sdk-provider)
* [@cometapi/ai-sdk-provider на npm](https://www.npmjs.com/package/@cometapi/ai-sdk-provider)
* [Документація AI SDK](https://ai-sdk.dev/docs)
* [Швидкий старт CometAPI](/uk/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": "Використання AI SDK з CometAPI",
        "description": "Скористайтеся цим посібником, щоб налаштувати AI SDK з CometAPI, вказавши base URL, API key, а також параметри model або provider.",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-1",
            "position": 1,
            "name": "Встановіть провайдер",
            "text": "Виконайте крок «Встановіть провайдер» у посібнику «Використання AI SDK з CometAPI»."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-2",
            "position": 2,
            "name": "Укажіть свій API key",
            "text": "Збережіть свій API key CometAPI у змінній середовища або полі налаштувань, яке використовує інтеграція."
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-3",
            "position": 3,
            "name": "Імпортуйте провайдер",
            "text": "Виконайте крок «Імпортуйте провайдер» у посібнику «Використання AI SDK з CometAPI»."
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Документація CometAPI",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Інтеграції",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Використання AI SDK з CometAPI",
            "item": "https://apidoc.cometapi.com/integrations/ai-sdk"
          }
        ]
      }
    ]
    }
    `}
</script>
