メインコンテンツへスキップ
AI SDK 用の CometAPI provider を使うと、統一された TypeScript インターフェースを通じて 500 以上の AI モデルにアクセスできます。これを使って、あらゆる Node.js または Edge ランタイムのアプリケーションに、テキスト生成、ストリーミング、エンベディング、画像生成を追加できます。

サポートされている機能

FeatureMethodStatus
テキスト生成generateText()サポート済み
テキストストリーミングstreamText()サポート済み
テキストエンベディングtextEmbeddingModel()サポート済み
画像生成imageModel()サポート済み

前提条件

1

プロバイダーをインストール

AI SDK のコアパッケージとあわせて @cometapi/ai-sdk-provider をインストールします:
npm install @cometapi/ai-sdk-provider ai
2

API キーを設定

provider はデフォルトで COMETAPI_KEY 環境変数を読み取ります:
export COMETAPI_KEY=<COMETAPI_KEY>
ソースコードに認証情報をハードコードしないよう、環境変数を使用してください。
3

プロバイダーをインポート

デフォルトの provider インスタンスをインポートします:
import { cometapi } from '@cometapi/ai-sdk-provider';
API キー、base URL、その他の設定を上書きするには、createCometAPI を使用します:
import { createCometAPI } from '@cometapi/ai-sdk-provider';

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

使い方

テキストを生成する

単発のレスポンスには generateText() を使用します:
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() を使用します:
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() を使用します:
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() を使用します:
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 は以下のオプションを受け付けます:
OptionTypeDefaultDescription
apiKeystringprocess.env.COMETAPI_KEYCometAPI API キー
baseURLstringhttps://api.cometapi.com/v1API ベース URL
headersRecord<string, string>カスタムリクエストヘッダー
fetchFetchFunctionカスタム fetch 実装

モデルメソッド

provider は複数のモデルコンストラクターを公開しています:
MethodReturnsUse case
cometapi(modelId)LanguageModelV2テキスト生成とストリーミング(ショートハンド)
cometapi.chatModel(modelId)LanguageModelV2チャット補完
cometapi.completionModel(modelId)LanguageModelV2テキスト補完
cometapi.languageModel(modelId)LanguageModelV2chatModel のエイリアス
cometapi.textEmbeddingModel(modelId)EmbeddingModelV2テキストエンベディング
cometapi.imageModel(modelId)ImageModelV2画像生成
利用可能な model ID の一覧は、Models page で確認できます。
  • モデル選択: CometAPI モデルカタログ の任意のモデルを、対応するモデルメソッドで利用できます — チャットモデルは cometapi()、エンベディングモデルは textEmbeddingModel()、画像モデルは imageModel() を使用します。
  • レスポンスのファインチューニング(Fine-tuning): temperaturemaxTokenstopPgenerateText() または streamText() に直接渡します。例: generateText(\{..., temperature: 0.7\})
  • エラーハンドリング: 認証エラー、レート制限、ネットワークの問題に対応するため、呼び出しは try/catch でラップしてください。
  • セキュリティ: API キーをバージョン管理にコミットしないでください。環境変数またはシークレットマネージャーを使用してください。
  • レート制限: 使用状況は CometAPI console で監視してください。

関連リソース