0
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?

GPT-4.1 を Node.js(OpenAI 公式の TypeScript・JavaScript ライブラリ)で試してみる

Last updated at Posted at 2025-04-15

はじめに

以下の公式情報が出ていた、GPT-4.1 シリーズを試してみた、という話です。

●Introducing GPT-4.1 in the API | OpenAI
https://openai.com/index/gpt-4-1/

image.png

現状は API からの利用のみ

現状は、使おうとすると API経由のみとなるようです。

あと、上で掲載していたページ内にリンクがありますが、API を簡単に試せる公式のプレイグラウンドから使ってみるのが、一番簡単かと思います。

●Prompts Playground - OpenAI API
https://platform.openai.com/playground/prompts?models=gpt-4.1

モデルの情報

公式のモデルのページへのリンクを掲載しておきます。

●Model - OpenAI API
https://platform.openai.com/docs/models/gpt-4.1

image.png

ページ下部の情報

ページ下部の Modalities・Endpoints の内容は以下となっています。

image.png

また、Features の部分は以下のとおりです。

image.png

Node.js で試してみる

Node.js から実際に試してみます。

公式の APIリファレンスの情報

公式の APIリファレンスを見てみます。

Chat completion

Create chat completion の部分(※ Node.js を選択した状態) を見てみると、サンプルは gpt-4.1 を使ったものが表示されていました。

image.png

import OpenAI from "openai";

const openai = new OpenAI();

async function main() {
  const completion = await openai.chat.completions.create({
    messages: [{ role: "developer", content: "You are a helpful assistant." }],
    model: "gpt-4.1",
    store: true,
  });

  console.log(completion.choices[0]);
}

main();

Responses API

また、Create a model response の部分 も、GPT-4.1 のサンプルになっていました。

image.png

こちらは、以下の記事でも書いた「Responses API」です。

●Node.js で OpenAI の 新API(Responses API)をシンプルに試す - Qiita
https://qiita.com/youtoy/items/12749481635230fae586

以下がサンプルのコードです。

import OpenAI from "openai";

const openai = new OpenAI();

const response = await openai.responses.create({
    model: "gpt-4.1",
    input: "Tell me a three sentence bedtime story about a unicorn."
});

console.log(response);

Responses API のほうが記載がシンプルになるので、こちらで試します。

下準備

利用するライブラリ

今回、公式の TypeScript・JavaScript ライブラリを使います。

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

npm install openai でインストールします。

APIキーの設定

APIキーは、環境変数として設定しておきます。
OPENAI_API_KEY という名前で使えるようにしておきます。

API経由で GPT-4.1 を使う(Responses API)

それでは、上記の下準備をした上で、以下のコードを実行してみます。

import OpenAI from "openai";

const openai = new OpenAI();

const response = await openai.responses.create({
  model: "gpt-4.1",
  input: "あなたは誰?",
});

console.log(response);

実行結果

上記を実行してみた結果です。

モデルのところを見ると、'gpt-4.1-2025-04-14 が使われていることが分かります。

image.png

とりあえず、シンプルなお試しは成功です。

ダッシュボードで利用履歴を見てみる

OpenAI のダッシュボードで利用履歴を見てみました。

「Usage の Chat Completions( https://platform.openai.com/usage/chat-completions )」を開いたところ、以下のように「gpt-4_1-2025-04-14」の利用履歴が確認できました。

image.png

こちらは、API を 2回たたいてみた後の状態です。

【追記】 さらに試してみる

さらに、画像入力も試してみます。

公式サンプルのもの

以下は、公式のサンプル(Responses API のもの)です。

image.png

import OpenAI from "openai";

const openai = new OpenAI();

const response = await openai.responses.create({
    model: "gpt-4.1",
    input: [
        {
            role: "user",
            content: [
                { type: "input_text", text: "what is in this image?" },
                {
                    type: "input_image",
                    image_url:
                        "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
                },
            ],
        },
    ],
});

console.log(response);

プロンプトは意味は変えず、日本語のもので試してみました。

出力

以下は出力です。

image.png

入力画像は以下ですが、レスポンスのテキストは画像の内容を説明したものになっています。

image.png

複数の画像ファイルの入力

さらに、以下の記事で扱った「ローカルにある複数の画像ファイルを対象とした処理」も試してみました。

●Gemini の API を OpenAI のパッケージ + Node.js で試す(テキスト・複数の画像の入力)【生成AI−2】 - Qiita
https://qiita.com/youtoy/items/0a4539ce6b9160d55e60

コードは以下のとおりで、上記の記事で書いていたコードの一部のフォーマットを Responses API用にしています。

import OpenAI from "openai";
import fs from "fs";

const openai = new OpenAI();

const imagePaths = ["./input1.jpg", "./input2.jpg"];
const imageBase64List = imagePaths.map((imagePath) => {
  const imageBuffer = fs.readFileSync(imagePath);
  return imageBuffer.toString("base64");
});

const response = await openai.responses.create({
  model: "gpt-4.1",
  input: [
    {
      role: "user",
      content: [
        { type: "input_text", text: "これらは何の画像?" },
        {
          type: "input_image",
          image_url: `data:image/jpeg;base64,${imageBase64List[0]}`,
        },
        {
          type: "input_image",
          image_url: `data:image/jpeg;base64,${imageBase64List[1]}`,
        },
      ],
    },
  ],
});

console.log(response);

出力結果

以下がレスポンスで、その後に入力画像 2つ(過去の記事で用いたのと同じもの)を掲載します。

image.png

↓入力画像 2つ
2025-04-16_00-05-00.jpg

2つ目のシーンの記述は当たってないのですが(※ そもそも、画像から読み取れるものではないので、当たらなくて当然というものですが)、きちんと 2つの画像の内容を読み取って説明できていることが分かります。

出力結果2: mini と nano

先ほどの複数の画像出力を、 model: "gpt-4.1-mini"model: "gpt-4.1-nano" にして試してみました。

2025-04-16_00-17-20.jpg

1回ずつしか試してないので、出力で違いが出ているのは単にランダムな要素で変わったのか、モデルに依存した変化があるのかは不明です。

ダッシュボードで利用履歴を見てみる

再度、OpenAI のダッシュボードで利用履歴で「Usage の Chat Completions( https://platform.openai.com/usage/chat-completions )」を見てみました。

そうすると、以下のように「gpt-4_1-2025-04-14」で利用したトークン数が増加しており、また「gpt-4_1-mini-2025-04-14」と「gpt-4_1-nano-2025-04-14」の利用履歴が増えていました。

2025-04-16_00-20-12.jpg

おわりに

GPT-4.1 を OpenAI 公式の TypeScript・JavaScript ライブラリでサクッと試してみました。

今回の内容だと GPT-4.1 ならではの特長を活用した要素がないお試しでしたが、次は GPT-4.1 ならではの要素を何か盛り込んで試せればと思います。

余談

GPT-4.1用のプロンプトガイド

GPT-4.1用のプロンプトガイドが出ているようです。

●GPT 4.1 Prompting Guide | OpenAI Cookbook
https://cookbook.openai.com/examples/gpt4-1_prompting_guide

GitHub Copilot でも利用可能に

GitHub Copilot でも利用可能になったようです(エージェントモードでも使えるようです)。

●OpenAI GPT-4.1 now available in public preview for GitHub Copilot and GitHub Models - GitHub Changelog
https://github.blog/changelog/2025-04-14-openai-gpt-4-1-now-available-in-public-preview-for-github-copilot-and-github-models/

条件付き・期間限定の無料枠で API が使えた話

前に自己責任で試してみた、OpenAI の期間限定の無料枠のオファー(※ プロジェクト指定はできるけど、対象となる API利用のデータ提供が条件になる)というのがあるのですが、GPT-4.1 がその対象に追加されていたようでした。

4月末まで、自分はデータ提供を条件にこの枠を使ったお試しができそうです。

0
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
0
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?