메인 콘텐츠로 건너뛰기
AI SDK용 CometAPI provider를 사용하면 통합된 TypeScript 인터페이스를 통해 500개 이상의 AI 모델에 접근할 수 있습니다. 이를 사용해 어떤 Node.js 또는 Edge 런타임 애플리케이션에도 텍스트 생성, 스트리밍, 임베딩, 이미지 생성을 추가할 수 있습니다.

지원 기능

기능메서드상태
텍스트 생성generateText()지원됨
텍스트 스트리밍streamText()지원됨
텍스트 임베딩textEmbeddingModel()지원됨
이미지 생성imageModel()지원됨

사전 요구사항

1

provider 설치

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 가져오기

기본 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',
});

provider 구성

createCometAPI는 다음 옵션을 받습니다:
옵션타입기본값설명
apiKeystringprocess.env.COMETAPI_KEYCometAPI API 키
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): temperature, maxTokens, topPgenerateText() 또는 streamText()에 직접 전달하세요. 예: generateText(\{..., temperature: 0.7\}).
  • 오류 처리: 인증 오류, rate limit 또는 네트워크 문제를 처리하려면 호출을 try/catch로 감싸세요.
  • 보안: API 키를 버전 관리에 절대 커밋하지 마세요. 환경 변수 또는 secrets manager를 사용하세요.
  • rate limit: CometAPI 콘솔에서 사용량을 모니터링하세요.

관련 리소스