TypeSafe 프로바이더
TypeSafe 프로바이더
TypeSafe의 실험적 평가(evaluation) API를 AI SDK에서 쓸 수 있게 해주는 프로바이더예요. 네이티브 Choice, Score, Boolean 답변을 지원하며, 모든 질문을 같은 상태에 대해 하나의 요청으로 보내요.
출처: 문서
본문
TypeSafe 프로바이더는 네이티브 Choice, Score, Boolean 답변을 가진 실험적 평가 API를 지원해요. 모든 질문을 같은 상태에 대해 하나의 요청으로 보내요.
설정 (Setup)
프로바이더를 설치하세요:
pnpm add @ai-sdk/typesafe-ai
TYPESAFE_AI_API_KEY 환경 변수를 설정하세요. 기본 프로바이더를 import 하거나 인스턴스를 구성하세요:
import { createTypeSafeAi, typeSafeAi } from '@ai-sdk/typesafe-ai';
const customTypeSafe = createTypeSafeAi({
apiKey: ***
});
createTypeSafeAi는 다음을 받아요:
| 설정 | 설명 |
|---|---|
apiKey |
API 키; 기본값은 TYPESAFE_AI_API_KEY. |
baseURL |
기본값은 https://api.typesafe.ai/v1. |
headers |
추가 요청 헤더. |
fetch |
커스텀 fetch 구현. |
평가 (Evaluation)
import { typeSafeAi } from '@ai-sdk/typesafe-ai';
import { experimental_evaluate } from 'ai';
const result = await experimental_evaluate({
model: typeSafeAi.evaluationModel('jev-latest'),
state: {
message: 'I was charged twice. Please refund the duplicate.',
},
questions: {
department: {
type: 'choice',
instructions: 'Which team should handle this?',
criteria: {
billing: { includes: ['Charges', 'Invoices', 'Refunds'] },
technical: ['Bugs', 'Outages'],
other: null,
},
},
severity: {
type: 'score',
instructions: 'How severe is the issue?',
criteria: ['Cosmetic', 'Workaround exists', 'Blocking; no workaround'],
},
requestsRefund: {
type: 'boolean',
instructions: 'Is the customer requesting money back?',
},
},
});
console.log(result.answers.department.choice);
console.log(result.answers.severity.score);
console.log(result.answers.requestsRefund.probability);
console.log(result.usage);
jev-latest 또는 다른 TypeSafe 모델 ID를 사용하세요. 응답에는 별칭 뒤의 해석된 버전 같은 실제 모델 ID가 포함돼요. 모델 인스턴스, 커스텀 별칭 또는 등록된 프로바이더를 사용하세요. typeSafeAi를 globalThis.AI_SDK_DEFAULT_PROVIDER로 명시적으로 구성하면 model: 'jev-latest'를 직접 전달할 수 있어요. 모델 별칭 및 레지스트리를 참고하세요.
| 질문 | 네이티브 TypeSafe 프리미티브 | 한도 및 의미 |
|---|---|---|
choice |
Choice | 1–255 옵션; 선택된 옵션과 전체 확률. |
score |
Score | 2–10 순서화된 루브릭 레벨; 부분 점수와 전체 확률. |
boolean |
Noul | 요구되는 모델 추정 true 확률. |
상태(state), 지시(instructions), 설명(descriptions)은 문자열 외에도 JSON 객체와 배열을 받아요. 설명은 null일 수 있어요. Boolean true/false 기준은 선택 사항이에요. SDK는 중립적인 이름 boolean을 사용하고 TypeSafe의 noul 필드에 매핑해요.
반올림된 값과 신뢰도 (Rounded values and confidence)
TypeSafe는 점수와 확률을 소수 둘째 자리로 반올림해 반환해요. result.rounding은 이 정밀도를 보고해서, SDK가 분포 합과 가중 평균을 확인할 때 반올림을 고려할 수 있게 해줘요. 반환된 값은 변경 없이 보존돼요. 반올림 때문에 확률의 합이 정확히 1이 안 될 수 있어요.
신뢰도(confidence)는 Choice와 Score 답변에 대해 result.providerMetadata.typesafe.confidence[questionId]에서 사용할 수 있는 별도의 TypeSafe 통계예요. Boolean 확률은 항상 P(true)를 의미하며 어느 쪽 결과에 대한 신뢰도가 아니에요. 결정 임계값은 애플리케이션 코드에서 선택하세요.
오류 및 재시도 (Errors and retries)
프로바이더 실패는 검증 및 인증 오류를 포함해 APICallError를 사용해요. 코어는 maxRetries(기본값: 2)에 따라 429와 529 같은 일시적 실패를 재시도해요. abortSignal, 요청 헤더, 커스텀 fetch는 전달돼요. 프로바이더 측 재시도 루프는 없어요.
현재 정의된 프로바이더별 옵션은 없어요. providerOptions.typesafe 아래의 알 수 없는 항목은 지원되지 않는 옵션 경고를 생성해요. 언어, 임베딩, 이미지 모델 팩토리는 NoSuchModelError를 던져요.
평가 모델은 워크플로 직렬화를 지원해요. 커스텀 fetch 함수는 직렬화되지 않으며, 복원된 모델은 기본 fetch 구현을 사용해요.
더 알아보기 (Learn more)
- AI Gateway
- xAI Grok
- OpenAI
- Azure OpenAI
- Anthropic
- Open Responses
- Claude Platform on AWS
- Amazon Bedrock
- Groq
- Fal
- AssemblyAI
- GMI Cloud
- TypeSafe
- DeepInfra
- Deepgram
- Black Forest Labs
- Gladia
- Hume
- Google Vertex AI
- Rev.ai
- Baseten
- Hugging Face
- QuiverAI
- Fish Audio
- Mistral AI
- Z.AI
- Together.ai
- Cohere
- Fireworks
- Voyage AI
- DeepSeek
- Moonshot AI
- Alibaba
- MiniMax
- Cerebras
- Replicate
- Prodia
- Perplexity
- Luma
- ByteDance
- Kling AI
- ElevenLabs
- Cartesia