コンテンツへスキップ
中級読了時間 20分·

OpenAI API で初めての AI アプリを作る

基礎を理解したところで、実際にコードを書いてみましょう。このチュートリアルでは Node.js を例に、OpenAI API で最初のチャットリクエストを送り、ストリーミング出力、コスト、エラー処理などの本番運用の詳細を紹介します。

著者:AI Resource Hub

準備

まず OpenAI プラットフォームに登録して API キーを作成し、環境変数に保存します。コードにハードコードしたりリポジトリにコミットしたりしないでください。

export OPENAI_API_KEY="sk-..."

SDK のインストール

公式の Node.js SDK を使うのが最も早く始められます:

npm install openai

最初のチャットリクエストを送る

以下のコードは gpt-4o-mini にメッセージを送り、返信を出力します。messages 配列が会話履歴を保持し、role は system、user、assistant のいずれかです。

import OpenAI from 'openai';

const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });

const res = await client.chat.completions.create({
  model: 'gpt-4o-mini',
  messages: [
    { role: 'system', content: 'You are a helpful assistant.' },
    { role: 'user', content: 'Describe large language models in one sentence.' },
  ],
});

console.log(res.choices[0].message.content);

ストリーミング出力を使う

チャットアプリでは通常「逐次表示」効果が求められます。stream を有効にすると生成と同時に受信でき、体験が大きく向上します。

const stream = await client.chat.completions.create({
  model: 'gpt-4o-mini',
  messages: [{ role: 'user', content: 'Write a short poem about spring' }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
}

コストとエラー処理

API はトークン単位で課金されるため、適切な max_tokens を設定し使用量を監視してください。小さいモデル(mini シリーズなど)を選ぶとコストを大幅に下げられます。

ネットワークリクエストはタイムアウトやレート制限の可能性があるため、本番環境ではリトライ、タイムアウト、例外処理に加え、ユーザー入力の検証とコンテンツモデレーションが必要です。

OpenAIAPIアプリ開発Node.js

関連チュートリアル