1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenAI の GPT-5利用とその API の新オプション 2つを Vercel の AI SDK で試す

Last updated at Posted at 2025-08-09

はじめに

この記事は、OpenAI の GPT-5 を Vercel の AI SDK で試してみた、という話です。

さらに、以下の記事を書いた時に試した「GPT-5 の API」で使えるようになった新オプション 2つを、Vercel の AI SDK で使えるか試してみます。

●【Node.js】 OpenAI公式の情報をもとに「GPT-5 の API」の従来との違いを少し見てみる(reasoning.effort minimal や verbosity の設定) - Qiita
 https://qiita.com/youtoy/items/edf41b9b733769b60cc0

自分が OpenAI公式のパッケージを使って API で試した 2つの新オプションは、具体的には、以下 2つです。

  • OpenAI の推論モデルの reasoning.effort が従来は 3つだったところに 4つ目で加わった「minimal」
  • verbosity の設定

実装に用いるパッケージ

今回のお試しでは、以下の AI SDK の Node.js用パッケージを使います。

●ai - npm
 https://www.npmjs.com/package/ai

image.png

リリース情報を見てみると、直近で gpt-5 関連の更新がされているようです。

image.png

公式の OpenAI Provider の情報

Vercel公式の OpenAI Provider の Model Capabilities の情報を見てみると、gpt-5系のモデルの情報も既に追加されているようでした。

以下は表の最上部と、gpt-5系のモデルの情報の部分をつなぎあわせたものです。

2025-08-09_23-17-27.png

とりあえず、gpt-5 を使うのは問題なくできそうな感じのようです。

さっそく試す

さっそく試していきます。

下準備

下準備として、まずは以下でパッケージをインストールします。

npm i ai @ai-sdk/openai 

さらに、環境変数 OPENAI_API_KEY に OpenAI の APIキーを設定します。

お試し1

とりあえずシンプルな公式サンプルを使って、GPT-5 が使えるかどうかを、実際にやってみます。モデルの部分で gpt-5 を指定したコードは以下のとおりです。

import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";

const { text } = await generateText({
  model: openai("gpt-5"),
  system: "You are a friendly assistant!",
  prompt: "空はなぜ青い?",
});

console.log(text);

処理を試してみた結果、以下のとおり回答を得ることができました。

image.png

お試し2

次は、ストリーミングレスポンスを試します。コードは以下の公式ページに掲載されているサンプルを使います。

●AI SDK Core: streamText
 https://ai-sdk.dev/docs/reference/ai-sdk-core/stream-text

お試し用のコードは以下のようにしました。

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

const { textStream } = streamText({
  model: openai("gpt-5"),
  prompt: "空はなぜ青い?",
});

for await (const textPart of textStream) {
  process.stdout.write(textPart);
}

出力結果

上記を実行した結果を以下に掲載します。

image.png

ストリーミングで出力されるのを確認できました。

お試し2-2

さらにストリーミングでの出力を試します。今度は、先ほどのコードはそのままで、プロンプトを「p5.jsのパーティクルのプログラム」という内容に変えたものも試してみます。

コードを実行して出力がされた時の様子を動画にしたもの(← 冒頭を編集でカットしたもの)を以下に掲載します
※ 注: 動画編集で、冒頭の 20秒ほどの応答待ち部分をカットしています

推論が行われている時間と思われる API の応答待ちは、けっこう待たされた感じでしたが(※ 上記の動画では編集でカットした部分)、レスポンスが返り始めてからのスピード感は良かったです。

あと、出力の最後に改行がないために、以下の矢印で示した部分が出ているため、これをきれいにしたい場合は上記コードの最後に改行用のコード( process.stdout.write("\n"); など)を入れておくと良いです。

image.png

お試し3: GPT-5 の新オプションを使う(reasoning.effort)

最後に、以下の記事で書いていた GPT-5 の新オプションを使ってみます。

●【Node.js】 OpenAI公式の情報をもとに「GPT-5 の API」の従来との違いを少し見てみる(reasoning.effort minimal や verbosity の設定) - Qiita
 https://qiita.com/youtoy/items/edf41b9b733769b60cc0

指定方法ですが、reasoning.effortオプションのほうの使い方は以下になるようです。

image.png

これを先ほどのコードに適用してみます。

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

const { textStream } = streamText({
  model: openai("gpt-5"),
  prompt: "p5.jsのパーティクルのプログラム",
  providerOptions: {
    openai: {
      reasoningEffort: "minimal",
    },
  },
});

for await (const textPart of textStream) {
  process.stdout.write(textPart);
}
process.stdout.write("\n");

reasoningEffort の指定を、GPT-5 で追加された "minimal" にしています。

このコードを実行すると、reasoning.effortオプションの指定をしなかった時より、応答までの時間がかなり短縮されました。GPT-5 の reasoning.effortオプションの「minimal」が問題なく適用されているようでした。

お試し3-2: GPT-5 の新オプションを使う(verbosity)

もう1つの新オプション verbosity のほうも、使い方の確認から進めてみます。

どうやら、指定方法は以下となるようでした。

image.png

それを組み込んだお試し用のコードは、以下のようにしてみました。

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

const { textStream } = streamText({
  model: openai("gpt-5"),
  //   prompt: "空はなぜ青い?",
  prompt: "p5.jsのパーティクルのプログラム",
  providerOptions: {
    openai: {
      reasoningEffort: "minimal",
      textVerbosity: "low",
    },
  },
});

for await (const textPart of textStream) {
  process.stdout.write(textPart);
}
process.stdout.write("\n");

処理を実行している時の様子の動画(※ 編集なし)

これを実行してみます。実行した時の様子は、以下のとおりで、今回の応答までの時間は短かったので、動画編集は行っていません。

2〜3秒くらいの待ち時間で応答が返ってきました。

指定したオプション 2つが、どちらも応答時間を短くする方向のものだったので、それらが無事に適用されているのではないかと思われます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?