(2025年9月6日).pahooEnv導入
サンプル・プログラムの実行例
目次
サンプル・プログラム
| chatOpenAI.php | サンプル・プログラム |
| .pahooEnv | クラウドサービスを利用するためのアカウント情報などを記入する .env ファイル。 使い方は「各種クラウド連携サービス(WebAPI)の登録方法」を参照。include_path が通ったディレクトリに配置すること。 |
| pahooInputData.php | データ入力に関わる関数群。 使い方は「PHPでGET/POSTでフォームから値を受け取る」「数値入力とバリデーション」「文字入力とバリデーション」などを参照。include_path が通ったディレクトリに配置すること。 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 1.3.0 | 2026/01/11 | PHP8.5対応:curl_closeを使わない |
| 1.2.0 | 2025/09/15 | .pahooEnv導入 |
| 1.1.0 | 2024/10/08 | openAI() -- WebAPI変更,エラー処理変更 |
| 1.0 | 2023/02/18 | 初版 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 2.0.1 | 2025/08/11 | getParam() bug-fix |
| 2.0.0 | 2025/08/11 | pahooLoadEnv() 追加 |
| 1.9.0 | 2025/07/26 | getParam() 引数に$trim追加 |
| 1.8.1 | 2025/03/15 | validRegexPattern() debug |
| 1.8.0 | 2024/11/12 | validRegexPattern() 追加 |
準備:PHP の https対応
Windowsでは、"php.ini" の下記の行を有効化する。
extension=php_openssl.dllLinuxでは --with-openssl=/usr オプションを付けて再ビルドする。→OpenSSLインストール手順
これで準備は完了だ。
準備:pahooInputData 関数群
また、各種クラウドサービスに登録したときに取得するアカウント情報、アプリケーションパスワードなどを登録した .pahooEnv ファイルから読み込む関数 pahooLoadEnv を備えている。こちらについては、「各種クラウド連携サービス(WebAPI)の登録方法」をご覧いただきたい。
準備:OpenAI APIキーの取得
OpenAIの利用は有料だが、最初、3ヶ月間18ドル分(2023年3月からは5ドル分)のチケットが付いてくる。これを使ってプログラムの試作ができる。
以上で、API利用のための準備は終わりだ。
準備:定数など
chatOpenAI.php
データ入力に関わる関数群を含むファイル "pahooInputData.php" はinclude_pathが通ったディレクトリに配置すること。
準備:OpenAI API クラスと APIキー
プロパティ $OPENAI_API_KEY に、先ほど生成したAPIキーを代入する。
chatOpenAI.php
124: // OpenAI API クラス =======================================================
125: class pahooOpenAI {
126: public $webapi; // 直前に呼び出したWebAPI URL
127: public $errmsg; // エラーメッセージ
128:
129: // OpenAI APIキー
130: // https://platform.openai.com/account/api-keys にて登録のこと.
131: public $OPENAI_API_KEY = '';
132:
133: /**
解説:OpenAI GPT-3を使ってチャットする
chatOpenAI.php
182: /**
183: * 入力テキストを指定し,OpenAI GPT-3を使ってチャットする.
184: * 使用モデル,回答の自由度,コンテクスト長を指定できる.
185: * @param string $text 入力テキスト
186: * @param string $model 使用モデル
187: * @param float $temperature 回答の自由度(0~1:1に近いほど自由)
188: * @param float $max_tokens コンテクスト長(入力と回答を足したトークン数)
189: * @return string 返答テキスト/FALSE:失敗
190: */
191: function openAI($text, $model='gpt-3.5-turbo', $temperature=1.0, $max_tokens=400) {
192: $this->webapi = 'https://api.openai.com/v1/chat/completions';
193: $headers = array(
194: 'Content-Type: application/json',
195: 'Authorization: Bearer ' . $this->OPENAI_API_KEY,
196: );
197: $payload = array(
198: 'model' => $model,
199: 'messages' => [
200: ['role' => 'user', 'content' => $text],
201: ],
202: 'temperature' => $temperature,
203: 'max_tokens' => $max_tokens
204: );
205: $ret = FALSE;
206:
207: $ch = curl_init();
208: curl_setopt($ch, CURLOPT_URL, $this->webapi);
209: curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
210: curl_setopt($ch, CURLOPT_POST, TRUE);
211: curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
212: curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
213:
214: curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
215: curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
216: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
217: curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
218:
219: $data = curl_exec($ch);
220: // PHP8.5:非推奨関数
221: if (PHP_VERSION_ID < 80500) {
222: curl_close($ch);
223: }
224:
225: // エラー処理
226: if ($data == FALSE) {
227: $this->errmsg = 'OpenAI APIにアクセスできません';
228: $ret = FALSE;
229: } else {
230: $arr = json_decode($data, TRUE);
231: if ($arr == FALSE) {
232: $this->errmsg = 'OpenAI APIの応答が不正です';
233: $ret = FALSE;
234: } else if (isset($arr['error'])) {
235: $this->errmsg = $arr['error']['message'];
236: // 正常応答
237: } else if (isset($arr['choices'][0]['text'])) {
238: $ret = (string)$arr['choices'][0]['text'];
239: } else {
240: $this->errmsg = 'OpenAI APIの応答が不正です';
241: $ret = FALSE;
242: }
243: }
244:
245: return $ret;
246: }
OpenAI は複数の言語モデルを開発した。今回使用する GPT-3は、2018年に発表したTransformerと呼ばれる深層学習の手法を用いた言語モデルの第3世代だ。Wikipedia やWebサイトから収集したデータなどから抽出した45TBものテキストデータに対し、いくつかの前処理を行い、570GBのデータセットを学習に用いています。このデータセットに対して、1750億個のパラメータを持つ自己回帰型言語モデルを学習することで、これまでにない巨大な言語モデルを作成している。
じつは、cURLを使ってOpenAIにアクセスするPHPプログラムの作り方をChatGPTに質問し、このメソッドを仕上げた。便利な時代になったものだ。

OpenAIの利用は有料だが、最初、3ヶ月間18ドル分(2023年3月からは5ドル分)のチケットが付いてくる。これを使ってプログラムの試作ができる。