커스텀 프로바이더 작성
커스텀 프로바이더 작성 (Language Model Specification)
AI SDK는 Language Model Specification V4를 제공해, AI SDK와 호환되는 커스텀 프로바이더를 만들 수 있게 합니다. 이 스펙은 서로 다른 프로바이더 사이의 일관성을 보장하며, 여러분의 앱 코드가 프로바이더에 독립적(provider-agnostic)이고 미래 지향적으로 유지되도록 하는 통합 추상화 계층을 제공합니다.
출처: 공식문서
본문
배포
커스텀 프로바이더는 자신의 GitHub 저장소와 NPM 패키지로 게시하고, 호스팅·유지보수는 직접 책임집니다. 게시 후 AI SDK 저장소에 PR을 보내 Community Providers 문서 섹션에 추가할 수 있습니다. 문서는 OpenRouter 프로바이더 문서를 템플릿으로 사용합니다.
V4 스펙 아키텍처
V4 스펙은 세 가지 핵심 인터페이스를 정의합니다:
ProviderV4— 여러 모델 타입의 팩토리 역할을 하는 최상위 인터페이스LanguageModelV4— 텍스트 생성 모델의 기본 인터페이스EmbeddingModelV4/ImageModelV4— 임베딩·이미지 생성 인터페이스
ProviderV4 인터페이스는 진입점 역할을 합니다:
interface ProviderV4 {
languageModel(modelId: string): LanguageModelV4;
embeddingModel(modelId: string): EmbeddingModelV4<string>;
imageModel(modelId: string): ImageModelV4;
}
LanguageModelV4 인터페이스는 프로바이더가 구현해야 할 메서드를 정의합니다:
interface LanguageModelV4 {
specificationVersion: 'V4';
provider: string;
modelId: string;
supportedUrls: Record<string, RegExp[]>;
doGenerate(options: LanguageModelV4CallOptions): Promise<GenerateResult>;
doStream(options: LanguageModelV4CallOptions): Promise<StreamResult>;
}
핵심 사항:
specificationVersion— 반드시'V4'.supportedUrls— 프로바이더가 네이티브로 처리할 수 있는 (파일 파트용) URL 선언.doGenerate/doStream— 비스트리밍·스트리밍 생성 메서드.
입력 vs 출력
LanguageModelV4Content— 모델이 생성하는 것의 스펙.LanguageModelV4Prompt— 모델로 보내는 것의 스펙.
V4는 모델이 생성할 수 있는 텍스트 콘텐츠 등 여러 콘텐츠 타입과 다양한 프롬프트 타입을 지원합니다.
규칙
- 오픈소스 프로바이더라면 Community Providers 섹션에 추가되도록 PR을 보내 환영받습니다.
- 여러분의 앱은 V4 스펙 덕분에 현재와 미래의 모든 AI 프로바이더에서 동일한 패턴·메서드로 상호작용할 수 있습니다.
더 알아보기
- 커스텀 OpenAI 호환 프로바이더 작성 — OpenAI 호환 패키지 기반으로 더 간단한 커스텀 프로바이더
- AI SDK Providers 개요 — 공식·커뮤니티 프로바이더 목록
- AI SDK Core — 모델 추상화와 호출 API