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

# CometAPI で AI SDK を使う

> base URL、API key、および model または provider オプションを設定して、CometAPI で AI SDK を構成する方法をこのガイドで説明します。

[AI SDK 用の CometAPI provider](https://github.com/cometapi-dev/ai-sdk-provider) を使うと、統一された TypeScript インターフェースを通じて 500 以上の AI モデルにアクセスできます。これを使って、あらゆる Node.js または Edge runtime アプリケーションにテキスト生成、ストリーミング、エンベディング、画像生成を追加できます。

## 対応機能

| Feature     | Method                 | Status |
| ----------- | ---------------------- | ------ |
| テキスト生成      | `generateText()`       | 対応     |
| テキストストリーミング | `streamText()`         | 対応     |
| テキストエンベディング | `textEmbeddingModel()` | 対応     |
| 画像生成        | `imageModel()`         | 対応     |

## 前提条件

* Node.js 18+
* 有効な API key を持つ CometAPI アカウント — [こちらから取得](https://www.cometapi.com/console/token)

<Steps>
  <Step title="provider をインストール">
    AI SDK のコアパッケージとあわせて `@cometapi/ai-sdk-provider` をインストールします:

    <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 を設定">
    provider はデフォルトで `COMETAPI_KEY` 環境変数を読み取ります:

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

    <Note>
      ソースコードに認証情報をハードコードしないよう、環境変数を使用してください。
    </Note>
  </Step>

  <Step title="provider をインポート">
    デフォルトの provider インスタンスをインポートします:

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

    API key、base 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);
}
```

### エンベディングを生成

ベクトルエンベディングを作成するには `textEmbeddingModel()` を使用します:

```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()` を使用します:

```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` は次のオプションを受け入れます：

| Option    | Type                     | Default                       | Description     |
| --------- | ------------------------ | ----------------------------- | --------------- |
| `apiKey`  | `string`                 | `process.env.COMETAPI_KEY`    | CometAPI API キー |
| `baseURL` | `string`                 | `https://api.cometapi.com/v1` | API ベース URL     |
| `headers` | `Record<string, string>` | —                             | カスタムリクエストヘッダー   |
| `fetch`   | `FetchFunction`          | —                             | カスタム fetch 実装   |

## モデルメソッド

このプロバイダーは複数のモデルコンストラクターを公開しています：

| Method                                 | Returns            | Use case             |
| -------------------------------------- | ------------------ | -------------------- |
| `cometapi(modelId)`                    | `LanguageModelV2`  | テキスト生成とストリーミング（省略記法） |
| `cometapi.chatModel(modelId)`          | `LanguageModelV2`  | チャット補完               |
| `cometapi.completionModel(modelId)`    | `LanguageModelV2`  | テキスト補完               |
| `cometapi.languageModel(modelId)`      | `LanguageModelV2`  | `chatModel` のエイリアス   |
| `cometapi.textEmbeddingModel(modelId)` | `EmbeddingModelV2` | テキストエンベディング          |
| `cometapi.imageModel(modelId)`         | `ImageModelV2`     | 画像生成                 |

利用可能な model ID の完全な一覧は [Models page](/ja/overview/models) で確認できます。

<AccordionGroup>
  <Accordion title="ヒントとトラブルシューティング">
    * **モデル選択**: [CometAPI model catalog](/ja/overview/models) の任意のモデルを、対応するモデルメソッドで使用できます — チャットモデルは `cometapi()`、エンベディングモデルは `textEmbeddingModel()`、画像モデルは `imageModel()` を使います。
    * **レスポンスのファインチューニング**: `temperature`、`maxTokens`、`topP` を `generateText()` または `streamText()` に直接渡します。例: `generateText(\{..., temperature: 0.7\})`。
    * **エラーハンドリング**: 認証エラー、レート制限、またはネットワークの問題に対処するため、呼び出しは `try/catch` でラップしてください。
    * **セキュリティ**: API キーをバージョン管理にコミットしないでください。環境変数またはシークレットマネージャーを使用してください。
    * **レート制限**: 使用状況は [CometAPI console](https://www.cometapi.com/console) で監視してください。
  </Accordion>
</AccordionGroup>

## 関連リソース

* [GitHub の CometAPI AI SDK Provider](https://github.com/cometapi-dev/ai-sdk-provider)
* [npm の @cometapi/ai-sdk-provider](https://www.npmjs.com/package/@cometapi/ai-sdk-provider)
* [AI SDK ドキュメント](https://ai-sdk.dev/docs)
* [CometAPI クイックスタート](/ja/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": "CometAPI で AI SDK を使う",
        "description": "このガイドでは、base URL、API key、および model または provider options を設定して、CometAPI で AI SDK を構成する方法を説明します。",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-1",
            "position": 1,
            "name": "provider をインストールする",
            "text": "「CometAPI で AI SDK を使う」ガイドの「provider をインストールする」手順を完了してください。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-2",
            "position": 2,
            "name": "API key を設定する",
            "text": "CometAPI の API key を、連携で使用される環境変数または設定フィールドに保存してください。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/ai-sdk#step-3",
            "position": 3,
            "name": "provider をインポートする",
            "text": "「CometAPI で AI SDK を使う」ガイドの「provider をインポートする」手順を完了してください。"
          }
        ]
      },
      {
        "@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": "CometAPI で AI SDK を使う",
            "item": "https://apidoc.cometapi.com/integrations/ai-sdk"
          }
        ]
      }
    ]
    }
    `}
</script>
