0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ChatGPT】ChatGPTのAPIをphpから使う(Windows/IIS)

Last updated at Posted at 2025-01-04

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() 確認結果

image.png

curlが表示された。

できたこと

・curlが使えるようになった
(サンプルファイルの通り)
・phpでchatGPIが使えるようになった
(課金に注意 (;^_^A)

image.png

確認事項:
・会話は、「data」フォルダに保存されています。

・心配なので、課金状況を見に行く。
  $0.0003 の利用になっていた。

  1ドル=150円として、0.05円

image.png

セキュリティ

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);

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?