Skip to main content
The CometAPI provider for the AI SDK gives you access to 500+ AI models through a unified TypeScript interface. Use it to add text generation, streaming, embeddings, and image generation to any Node.js or Edge runtime application.

Supported features

FeatureMethodStatus
Text generationgenerateText()Supported
Text streamingstreamText()Supported
Text embeddingstextEmbeddingModel()Supported
Image generationimageModel()Supported

Prerequisites

  • Node.js 18+
  • A CometAPI account with an active API key — get yours here
1

Install the provider

Install @cometapi/ai-sdk-provider alongside the AI SDK core package:
npm install @cometapi/ai-sdk-provider ai
2

Set your API key

The provider reads the COMETAPI_KEY environment variable by default:
export COMETAPI_KEY=<COMETAPI_KEY>
Use environment variables to avoid hardcoding credentials in your source code.
3

Import the provider

Import the default provider instance:
import { cometapi } from '@cometapi/ai-sdk-provider';
To override the API key, base URL, or other settings, use createCometAPI:
import { createCometAPI } from '@cometapi/ai-sdk-provider';

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

Usage

Generate text

Use generateText() for a single-shot response:
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);

Stream text

Use streamText() for real-time chunked output:
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);
}

Generate embeddings

Use textEmbeddingModel() to create vector embeddings:
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);

Generate images

Use imageModel() to generate images from text prompts:
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 configuration

createCometAPI accepts the following options:
OptionTypeDefaultDescription
apiKeystringprocess.env.COMETAPI_KEYCometAPI API key
baseURLstringhttps://api.cometapi.com/v1API base URL
headersRecord<string, string>Custom request headers
fetchFetchFunctionCustom fetch implementation

Model methods

The provider exposes several model constructors:
MethodReturnsUse case
cometapi(modelId)LanguageModelV2Text generation and streaming (shorthand)
cometapi.chatModel(modelId)LanguageModelV2Chat completions
cometapi.completionModel(modelId)LanguageModelV2Text completions
cometapi.languageModel(modelId)LanguageModelV2Alias for chatModel
cometapi.textEmbeddingModel(modelId)EmbeddingModelV2Text embeddings
cometapi.imageModel(modelId)ImageModelV2Image generation
Browse the full list of available model IDs on the Models page.
  • Model selection: Any model from the CometAPI model catalog works with the corresponding model method — chat models via cometapi(), embedding models via textEmbeddingModel(), image models via imageModel().
  • Fine-tuning responses: Pass temperature, maxTokens, and topP directly to generateText() or streamText(), e.g. generateText(\{..., temperature: 0.7\}).
  • Error handling: Wrap calls in try/catch to handle authentication errors, rate limits, or network issues.
  • Security: Never commit API keys to version control. Use environment variables or a secrets manager.
  • Rate limits: Monitor usage in the CometAPI console.