provider 설치 및 구성
Vercel AI SDK는 OpenAI 호환 provider를 사용할 수 있습니다. CometAPI base URL을 한 번 구성하고 API key는 서버 측 환경 변수에 보관하세요.
import { createOpenAI } from '@ai-sdk/openai';
export const cometapi = createOpenAI({
apiKey: process.env.COMETAPI_KEY,
baseURL: 'https://api.cometapi.com/v1',
});스트리밍 채팅 라우트 생성
서버에서 allowlist를 기반으로 model을 선택하세요. 이렇게 하면 다중 model 유연성을 유지하면서 클라이언트가 예상치 못한 고비용 model을 선택하는 것을 방지할 수 있습니다.
import { streamText } from 'ai';
import { cometapi } from '@/lib/cometapi';
const allowedModels = {
fast: 'your-fast-model-id',
quality: 'your-quality-model-id',
};
export async function POST(request: Request) {
const { messages, route = 'fast' } = await request.json();
const modelId = allowedModels[route as keyof typeof allowedModels];
const result = streamText({
model: cometapi(modelId),
messages,
});
return result.toDataStreamResponse();
}워크로드별 model 전환
대화형 응답에는 더 빠른 route를, 복잡한 분석, 대규모 코드 변경, 고가치 검토에는 더 높은 품질의 route를 사용하세요. 이후 비용과 품질을 비교할 수 있도록 routing logic을 관찰 가능하게 유지하세요.
- 자동 분류를 시도하기 전에 명시적인 제품 모드로 route하세요.
- 선택된 route, model ID, token, latency 및 요청 결과를 기록하세요.
- 계정 수준 및 요청 수준의 지출 제한을 적용하세요.
프로덕션 체크리스트
출시 전에 스키마 검증, timeout 처리, 일시적 실패에 대한 retry, 호환 가능한 fallback route를 추가하세요. 브라우저 코드에 상위 API key를 절대 노출하지 마세요.
