#25 PHPで学ぶAI API(ChatGPT等)の呼び出し方の基本
ChatGPTのようなAI(人工知能)が回答を生成してくれる仕組みを、自分のプログラムから呼び出せたら便利だと思いませんか。実はそれほど難しいことではなく、PHPからでも数十行のコードでAI API(AIの機能をインターネット経由で使えるようにした窓口)を呼び出すことができます。この記事では、PHPを使ってAI APIにアクセスする基本の流れを、初めての方にもわかるように解説します。
AI APIとは何か
API(Application Programming Interface)とは、あるプログラムが別のプログラムの機能を呼び出すための「窓口」のようなものです。AI APIは、ChatGPTのような対話型AIの機能を、インターネット経由でリクエスト(依頼)を送ることで使えるようにしたサービスです。自分のパソコンでAIモデルを動かす必要はなく、質問文を送るとAIが考えた回答が返ってくる、という仕組みになっています。
PHPからAI APIを呼び出す準備
APIキーとは
AI APIを使うには、多くの場合「APIキー」と呼ばれる文字列が必要です。これは、誰がどれだけAPIを使ったかを識別するための、いわば「合言葉」のようなものです。AIサービスの提供元(例えばOpenAI社)のサイトでアカウントを作成すると、このAPIキーを発行してもらえます。
APIキーの安全な管理方法
APIキーはパスワードと同じくらい大切な情報です。もし他人に知られてしまうと、勝手にAPIを使われて利用料金が発生してしまう恐れがあります。そのため、APIキーをソースコードの中に直接書き込むのは避けましょう。代わりに、環境変数(プログラムの外側で管理する設定値)や、Gitの管理対象から外した.envファイルに保存し、プログラムから読み込む方法が一般的です。もしGitHubなどにコードを公開する場合は、.gitignoreファイルに.envを必ず追加しておきましょう。
cURLで実際に呼び出してみる
PHPには「cURL」という、外部のWebサービスと通信するための仕組みが標準で備わっています。ここでは、OpenAIのAPIを例に、簡単な質問を送って回答を受け取るコードを見てみましょう。
<?php
// APIキーは環境変数から読み込む(直接書き込まない)
$apiKey = getenv('OPENAI_API_KEY');
// 送信するデータをPHPの配列で用意する
$data = [
'model' => 'gpt-4o-mini',
'messages' => [
['role' => 'user', 'content' => 'PHPの初心者に一言アドバイスをください']
],
];
// cURLセッションを初期化する
$ch = curl_init('https://api.openai.com/v1/chat/completions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 結果を文字列として受け取る
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer ' . $apiKey,
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
// リクエストを送信し、結果を受け取る
$response = curl_exec($ch);
curl_close($ch);
// JSON形式の結果をPHPの配列に変換する
$result = json_decode($response, true);
echo $result['choices'][0]['message']['content'];
流れとしては、送りたい内容を配列にまとめ、それをJSON(データをやり取りするための共通フォーマット)に変換し、cURLでAPIサーバーに送信します。そして、返ってきたJSONの結果を再びPHPの配列に戻して、中身を取り出しています。APIキーはAuthorizationという項目に「Bearer」という接頭辞をつけて渡すのが決まりです。
PHPならではの書き方・注意点
PythonやJavaScriptではAPI呼び出し専用の便利なライブラリ(公式・非公式問わず)がよく使われます。PHPでも同様に、Composer(PHPのパッケージ管理ツール)経由でSDK(開発を助けてくれる部品セット)を導入すれば、コードをより簡潔に書けます。ただ、この記事で紹介したように、標準機能のcURLだけでも十分にAPIは呼び出せるのがPHPの特徴です。追加のインストール作業なしにすぐ試せる手軽さは、他言語と比べたPHPの強みと言えるでしょう。
また、AI APIの呼び出しには通信にかかる時間(レイテンシ)があるため、Webページの表示中に呼び出す場合は、ユーザーを待たせすぎないような工夫(タイムアウトの設定や、非同期処理の検討)も合わせて考えておくとよいでしょう。
まとめ
PHPからAI APIを呼び出す基本は、(1)APIキーを安全に管理する、(2)cURLでリクエストを送る、(3)返ってきたJSONを配列に変換して中身を使う、という3ステップです。難しい専用ツールがなくても、標準機能だけで十分試せるのがPHPの手軽さです。まずは無料枠や少額の範囲で、簡単な質問を送るところから試してみてください。
関連記事
本ページはプロモーションを含みます。
参考書籍(PR)
PHPをもっと学びたい方には「10日でおぼえるPHP入門教室 第4版」がおすすめです。
コメント
コメントを投稿