跳轉到主要內容
AI SDK 的 CometAPI provider 讓你可透過統一的 TypeScript 介面存取 500+ 個 AI 模型。你可以用它為任何 Node.js 或 Edge runtime 應用程式加入文字生成、串流、嵌入與圖片生成功能。

支援功能

功能方法狀態
文字生成generateText()支援
文字串流streamText()支援
文字嵌入textEmbeddingModel()支援
圖片生成imageModel()支援

先決條件

  • Node.js 18+
  • 擁有啟用中 API key 的 CometAPI 帳戶 — 在此取得
1

安裝 provider

安裝 @cometapi/ai-sdk-provider 與 AI SDK 核心套件:
npm install @cometapi/ai-sdk-provider ai
2

設定你的 API key

provider 預設會讀取 COMETAPI_KEY 環境變數:
export COMETAPI_KEY=<COMETAPI_KEY>
使用環境變數可避免將憑證硬編碼進原始碼中。
3

匯入 provider

匯入預設的 provider 實例:
import { cometapi } from '@cometapi/ai-sdk-provider';
若要覆寫 API key、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() 根據文字 Prompt 生成圖片:
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',
});

Provider 設定

createCometAPI 接受以下選項:
選項類型預設值說明
apiKeystringprocess.env.COMETAPI_KEYCometAPI API key
baseURLstringhttps://api.cometapi.com/v1API 基底 URL
headersRecord<string, string>自訂請求標頭
fetchFetchFunction自訂 fetch 實作

模型方法

provider 提供數個模型建構方法:
方法回傳使用情境
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 的完整清單。
  • 模型選擇:來自 CometAPI 模型目錄 的任何模型都可搭配對應的模型方法使用——聊天模型使用 cometapi(),嵌入模型使用 textEmbeddingModel(),圖片模型使用 imageModel()
  • 微調(Fine-tuning)回應:可將 temperaturemaxTokenstopP 直接傳給 generateText()streamText(),例如 generateText(\{..., temperature: 0.7\})
  • 錯誤處理:請使用 try/catch 包裝呼叫,以處理驗證錯誤、速率限制或網路問題。
  • 安全性:絕對不要將 API key 提交到版本控制。請使用環境變數或 secrets manager。
  • 速率限制:請在 CometAPI console 監控用量。

相關資源