OpenAI APIをPHPから使う場面は思った以上に多い。簡単な要約ツール、チャットボット、コード補完ヘルパーなど、PHPバックエンドにサクッと組み込みたい時のために、最小限のサンプルコードをまとめた。
APIキーの取得
platform.openai.com にログインし、「API keys」からキーを生成する。キーは sk-... の形式。生成直後しか表示されないのでコピーしておく。
課金はデフォルトでpay-as-you-go。最初の数ドルは無料クレジットがある。
ComposerでSDKをインストール
composer require openai-php/client
公式PHPクライアント。メンテナンスが活発でLaravelとの親和性も高い。
最小サンプルコード
<?php
require 'vendor/autoload.php';
$client = OpenAI::client(getenv('OPENAI_API_KEY'));
$response = $client->chat()->create([
'model' => 'gpt-4o-mini',
'messages' => [
['role' => 'user', 'content' => 'PHPの配列とリストの違いを3行で説明してください'],
],
]);
echo $response->choices[0]->message->content;
OPENAI_API_KEY は環境変数から読み込む。コードに直書きしない(うっかりgit pushするリスクがある)。
エラーハンドリング
APIが503を返すことや、レートリミットに引っかかることがある。最低限のtry-catchは入れておく。
<?php
use OpenAIExceptionsErrorException;
use OpenAIExceptionsTransporterException;
try {
$response = $client->chat()->create([...]);
echo $response->choices[0]->message->content;
} catch (ErrorException $e) {
// APIエラー(無効なキー、モデル名ミスなど)
error_log('OpenAI API error: ' . $e->getMessage());
echo 'APIエラーが発生しました。';
} catch (TransporterException $e) {
// ネットワークエラー、タイムアウトなど
error_log('OpenAI transport error: ' . $e->getMessage());
echo '通信エラーが発生しました。しばらく待ってから再試行してください。';
}
モデルの選び方
gpt-4o-mini: コスト最安。簡単なタスクならこれで十分gpt-4o: 精度重視。コードレビューや複雑な推論にgpt-4-turbo: 大きなコンテキスト(128k tokens)が必要な時
手軽に試すなら gpt-4o-mini から始めて、精度が足りなければ上位モデルに切り替えるのが経済的。
まとめ
composerで入れて3行書けば動く。PHPとの親和性は良好なので、既存のLaravel/Symfonyプロジェクトへの組み込みも難しくない。APIキーの管理(.envに書いてgitignore)だけ最初から意識しておくこと。
