本文へスキップ
Markdown で表示

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 この 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 では確認していません。