Node.jsでGPT-4 APIを使う

届いたメール:

You're invited to use the OpenAI GPT-4 API!
You can now access GPT-4 models with 8K context via the existing OpenAI API.

Get started
As an early customer we'd love to hear about your experience. Feel free to share feedback on our community forum or reach out directly to our team.

Best,
The OpenAI team

OpenAIにGPT-4 APIのウェイトリスト登録をして数日、 Your GPT-4 API invite is here メールが来たので早速試してみた。

  1. 3月15日(水) 11:07 APIウェイトリスト登録
  2. 3月18日(土) 2:37 API使用可能メールが来る

4日くらい放置してた。

環境

  • dotenv 16.0.3
  • esbuild 0.17.11
  • esbuild-register 3.4.2
  • typescript 4.9.5
  • openai 3.2.1

使い方

モデル指定を gpt-4 にするだけっぽい。

- model: "gpt-3.5-turbo",
+ model: "gpt-4",

コード

.env ファイルにAPIキーをセットしている:

OPEN_AI_API_KEY=sk-xxxxxxxxxxxxx

TypeScriptコード:

import { Configuration, OpenAIApi } from "openai";
import * as dotenv from "dotenv";

dotenv.config();

const openAiApi = new OpenAIApi(
  new Configuration({
    apiKey: process.env.OPEN_AI_API_KEY!,
  }),
);

// 実行
const main = async () => {
  // GPT-3.5
  const completion1 = await openAiApi.createChatCompletion({
    model: "gpt-3.5-turbo",
    messages: [
      {
        role: "user",
        content: "こんにちは。元気ですか?",
      },
    ],
  });
  const chatGptMessage1 = completion1.data.choices[0].message!.content;
  console.log(chatGptMessage1); // => こんにちは。私はAIですので、元気です。ありがとうございます。

  // GPT-4
  const completion2 = await openAiApi.createChatCompletion({
    model: "gpt-4",
    messages: [
      {
        role: "user",
        content: "こんにちは。元気ですか?",
      },
    ],
  });
  const chatGptMessage2 = completion2.data.choices[0].message!.content;
  console.log(chatGptMessage2); // => こんにちは!私はAIアシスタントなので、感情はありませんが、お手伝いする準備ができています。あなたは元気ですか?
};

main();

実行コマンド:

node -r esbuild-register main.ts

出力:

# GPT-3.5
こんにちは。私はAIですので、元気です。ありがとうございます。

# GPT-4
こんにちは!私はAIアシスタントなので、感情はありませんが、お手伝いする準備ができています。あなたは元気ですか?

参考