跳转到主要内容
适用于 AI SDK 的 CometAPI provider 通过统一的 TypeScript 接口为你提供对 500+ AI 模型的访问能力。你可以使用它为任何 Node.js 或 Edge 运行时应用添加文本生成、流式输出、嵌入和图像生成功能。

支持的功能

功能方法状态
文本生成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 base 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 提交到版本控制中。请使用环境变量或密钥管理器。
  • 速率限制:在 CometAPI 控制台中监控使用情况。

相关资源