Vercel AI SDK 6 : AI SDK Core – 設定

大規模言語モデル (LLM) は通常は、出力を拡張するための設定を提供します。すべての AI SDK 関数は、モデル、プロンプト、追加のプロバイダー固有設定に加えて、共通の設定をサポートしています。

Vercel AI SDK 6 : AI SDK Core – 設定

作成 : Masashi Okumura (@classcat.com)
作成日時 : 01/31/2026
バージョン : ai@6.0.64

* 本記事は ai-sdk.dev/docs の以下のページを参考にしています :

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

クラスキャット AI 研究開発支援サービス ⭐️ 創立30周年(30th Anniversary)🎉💐

クラスキャット は AI に関する各種サービスを提供しています。お気軽にご相談ください :

  • AI 研究開発支援 [詳細]

    1. AI エージェント構築支援
    2. 画像認識 (医療系含む) / 画像生成

  • AI 導入個別相談会(無償)実施中! [詳細]

  • PoC(概念実証)を失敗させないための支援 [詳細]

お問合せ : 下記までお願いします。

  • クラスキャット セールス・インフォメーション
  • sales-info@classcat.com
  • ClassCatJP

 

 

Vercel AI SDK 6.x : AI SDK Core – 設定

大規模言語モデル (LLM) は通常は、出力を拡張するための設定を提供します。

すべての AI SDK 関数は、モデル、プロンプト、追加のプロバイダー固有設定に加えて、以下の共通の設定をサポートしています :

Gateway

const result = await generateText({
  model: "openai/gpt-4o-mini",
  maxOutputTokens: 512,
  temperature: 0.3,
  maxRetries: 5,
  prompt: 'Invent a new holiday and describe its traditions.',
});

 

maxOutputTokens

生成するトークンの最大数。

 

temperature

Temperature 設定。

この値はプロバイダーに渡されます。範囲はプロバイダーとモデルに依存します。殆どのプロバイダーについて、0 はほぼ決定論的な結果を意味し、より高い値はランダム性が増すことを意味します。

temperature または topP のいずれかを設定することを勧めますが、両方ではありません。

 

topP

核サンプリング。

この値はプロバイダーに渡されます。範囲はプロバイダーとモデルに依存します。殆どのプロバイダーについて、核サンプリングは 0 と 1 の間の数値です。例えば、0.1 は、top 10% の確率質量を持つトークン群だけが考慮されます。

temperature または topP のいずれかを設定することを勧めますが、両方ではありません。

 

topK

各後続のトークンについて上位 K 個の選択肢のみからサンプリングします。

「ロングテール」つまり低確率のレスポンスを除外するために使用されます。高度なユースケースに対してのみ勧めます。通常は temperature を使用する必要があるだけです。

 

presencePenalty

プレゼンスペナルティは、モデルがプロンプトに既にある情報を繰り返す尤度に影響します。

値はプロバイダーにそのまま渡されます。範囲はプロバイダーとモデルに依存します。殆どのプロバイダーについては、0 はペナルティがないことを意味します。

 

frequencyPenalty

頻度ペナルティは、モデルが同じ単語やフレーズを繰り返し使用する尤度に影響します。

値はプロバイダーにそのまま渡されます。範囲はプロバイダーとモデルに依存します。殆どのプロバイダーについては、0 はペナルティがないことを意味します。

 

stopSequences

テキスト生成を定義するために使用する停止シークエンスです。

設定されていれば、モデルは停止シークエンスの一つが生成された場合にテキスト生成を停止します。プロバイダーが停止シークエンスの数を制限する場合があります。

 

seed

ランダムサンプリングに使用するシード (整数)。設定し、モデルによりサポートされる場合、呼び出しは決定論的な結果を生成します。

 

maxRetries

再試行の最大回数。再試行を無効にするには 0 に設定します。デフォルト: 2。

 

abortSignal

呼び出しをキャンセルするために使用できるオプションの abort シグナルです。

abort シグナルは、例えば、ユーザインターフェイスから転送されて呼び出しをキャンセルしたり、AbortSignal.timeout を使用してタイムアウトを定義することができます。

 
例: AbortSignal.timeout

Gateway

const result = await generateText({
  model: "openai/gpt-4o-mini",
  prompt: 'Invent a new holiday and describe its traditions.',
  abortSignal: AbortSignal.timeout(5000), // 5 seconds
});

 

timeout

オプションのタイムアウト (ミリ秒単位)。指定された時間よりも長くかかれば、呼び出しは中止 (abort) されます。

内部的に abort を生成する便利なパラメータです。abortSignal とともに使用できます – 両方が提供されれば、どちらかの条件が満たされれば呼び出しは中止されます。

タイムアウトは数値 (ミリ秒) か、totalMs, stepMs, and/or chunkMs プロパティを持つオブジェクトのいずれかとして指定できます :

  • totalMs: すべてのステップを含む呼び出し全体の合計タイムアウト。

  • stepMs: 各個々のステップ (LLM 呼び出し) のタイムアウト。これは、各ステップに費やされる時間を個別に制限したい、マルチステップの生成に有用です。

  • chunkMs: ストリーム・チャンク間のタイムアウト (ストリーミングのみ)。この時間内に新しいチャンクが受信されない場合、呼び出しは中止されます。これはストリームの滞留を検出するのに役立ちます。

 
例: 5 秒タイムアウト (数値形式)

Gateway

const result = await generateText({
  model: "openai/gpt-4o-mini",
  prompt: 'Invent a new holiday and describe its traditions.',
  timeout: 5000, // 5 seconds
});

 
例: 合計 5 秒のタイムアウト (オブジェクト形式)

Gateway

const result = await generateText({
  model: "openai/gpt-4o-mini",
  prompt: 'Invent a new holiday and describe its traditions.',
  timeout: { totalMs: 5000 }, // 5 seconds
});

 
例: 10 秒のステップタイムアウト

Gateway

const result = await generateText({
  model: "openai/gpt-4o-mini",
  prompt: 'Invent a new holiday and describe its traditions.',
  timeout: { stepMs: 10000 }, // 10 seconds per step
});

 
例: 合計タイムアウトとステップタイムアウトの組み合わせ
Gateway

const result = await generateText({
  model: "openai/gpt-4o-mini",
  prompt: 'Invent a new holiday and describe its traditions.',
  timeout: {
    totalMs: 60000, // 60 seconds total
    stepMs: 10000, // 10 seconds per step
  },
});

 
例: ストリーミングのチャンク毎のタイムアウト (streamText only)

Gateway

const result = streamText({
  model: "openai/gpt-4o-mini",
  prompt: 'Invent a new holiday and describe its traditions.',
  timeout: { chunkMs: 5000 }, // abort if no chunk received for 5 seconds
});

 

headers

リクエストとともに送信される、追加の HTTP ヘッダ。HTTP ベースのプロバイダーに対してのみ適用されます。

プロバイダーが何をサポートするかに依存して、リクエストヘッダを使用してプロバイダーに追加情報を提供できます。例えば、一部の observability プロバイダーは Prompt-Id のようなヘッダをサポートしています。

Gateway

import { generateText } from 'ai';

const result = await generateText({
  model: "openai/gpt-4o-mini",
  prompt: 'Invent a new holiday and describe its traditions.',
  headers: {
    'Prompt-Id': 'my-prompt-id',
  },
});

 

以上