본문으로 건너뛰기
마크다운으로 보기

Vercel AI SDK

Vercel AI SDK는 OpenAI 호환 프로바이더 패키지를 통해 Kiln에 연결합니다. 설치할 패키지는 이쪽이며, 기본값이 OpenAI 서비스에 맞춰진 @ai-sdk/openai가 아닙니다.

설치

bash
npm install ai @ai-sdk/openai-compatible

연결

javascript
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { streamText } from "ai";

const kiln = createOpenAICompatible({
  name: "kiln",
  baseURL: "https://api.bricksum.com/v1",
  apiKey: process.env.KILN_API_KEY, // sk-bk-...
});

const { textStream } = streamText({
  model: kiln("qwen3-32b"),
  prompt: "Write a haiku about kilns.",
  maxOutputTokens: 800,
});
for await (const chunk of textStream) process.stdout.write(chunk);

Kiln에서 다른 점

  • openai-compatible 프로바이더를 사용 createOpenAICompatible은 base URL과 키를 그대로 받습니다. @ai-sdk/openai 프로바이더는 OpenAI의 엔드포인트 구성과 모델 ID를 전제하므로, Kiln이 같은 형식을 쓰더라도 이 패키지는 맞지 않습니다.
  • max_tokens가 아니라 maxOutputTokens Vercel AI SDK는 출력 예산을 maxOutputTokens로 부르고 max_tokens로 전달합니다. reasoning 토큰도 이 예산 안에서 과금되므로 여유를 두지 않으면 텍스트가 도착하기 전에 스트림이 끝납니다. 예제의 800은 이 모델에서 측정하지 않은 시작값이므로, 텍스트가 비고 finishReason이 'length'이면 늘리세요.

base URL, 인증, 모든 엔드포인트가 공유하는 요청 파라미터, 응답 형식, 스트리밍, 에러 코드는 어떤 SDK를 쓰든 같습니다. 이 내용은 API 레퍼런스에 한 번만 정리돼 있습니다. 위 호출이 도달하는 엔드포인트는 Chat completions입니다. 모델 ID는 API가 지금 서빙 중인 것이어야 합니다. 목록을 조회하는 방법과 원하는 ID가 목록에 없을 때 할 일은 모델 페이지에 있습니다. SDK와 무관하게 이 모델이 지원하지 않는 기능은 OpenAI에서 옮겨오기 페이지에 정리돼 있습니다.

참고
이 페이지의 스니펫은 2026-09-21에 ai 7.0.107, @ai-sdk/openai-compatible 3.0.53 환경에서 Kiln API로 직접 실행해 확인했습니다. 확인하지 않은 부분: 그 실행은 gpt-oss-120b에서 했습니다. 페이지는 이제 qwen3-32b을 사용하며, 이 모델로는 아직 다시 실행하지 않았습니다. 위 스트리밍 호출만 실행해 확인했습니다. 이 SDK의 툴 호출과 구조화 출력은 Kiln에서 확인하지 않았습니다.