ChatGPTのAPIをphpから使う
1. 前提
1)IISが動作している
2)pythonでopenai利用できている
・openai apiを取得できている
・利用制限の設定が完了していること
2. php設定
以下の記事を参考に実施:
https://qiita.com/kotonoha0109/items/b1b1b48520f7ee137c5e
1)サンプルファイルをダウンロード
2)api-keyを書き換え
3)php.iniを編集
916行目
extension=curl
をコメントアウト削除
4)iis再起動
5)phpinfoで、curlがenableになっているかを確認する。
php.iniを編集
php.ini
;extension=bz2
extension=curl
;extension=ffi
;extension=ftp
;extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
;extension=mbstring
;extension=exif ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=shmop
phpinfo() 確認結果
curlが表示された。
できたこと
・curlが使えるようになった
(サンプルファイルの通り)
・phpでchatGPIが使えるようになった
(課金に注意 (;^_^A)
確認事項:
・会話は、「data」フォルダに保存されています。
・心配なので、課金状況を見に行く。
$0.0003 の利用になっていた。
1ドル=150円として、0.05円
セキュリティ
chatGPTのAPI経由の質問データをOPENAI側に残さないようにする設定
PHPでCURLを使用してAPIを呼び出す場合は、no-storedヘッダーを以下のように設定する
php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.openai.com/v1/engines/davinci/completions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"prompt": "Hello, World!","max_tokens": 5}');
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: Bearer YOUR_API_KEY';
$headers[] = 'OpenAI-Organization: YOUR_ORG';
$headers[] = 'no-stored: true'; //データを保存しないようにするためのヘッダー
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close($ch);