OpenAIのAPIを操作する処理をラップしてくれているPHPのライブラリのopenai-php/client
というものがあります。これを利用することで、PHPでOpenAIのChatGPTを利用することができるようになります。
また、触るきっかけとなったのが、開発者のNuno Maduroさん(@enunomaduro)が以下のようなツイートをしているのを見つけたからです。
It's fantastic to see that our library has finally received a mention on OpenAI's official documentation after weeks of waiting! 🎉 pic.twitter.com/L4ynu3ti3O
— Nuno Maduro (@enunomaduro) 2023年4月12日
It's fantastic to see that our library has finally received a mention on OpenAI's official documentation after weeks of waiting! 🎉
OpenAIの公式ドキュメントからもリンクが貼られるようになったようです。OpenAI公式も紹介するPHPのライブラリなので、使わなきゃですね。
ということで、PHPerでもあり、最近ChatGPTにハマっているので使ってみたいなと思い、今回触ってみました!
openai-php/client を実際に触ってみる
では早速やっていきましょう。
composerでインストールする。
$ composer require openai-php/client
記事を執筆時点ではopenai-php/client
はv0.4.2のバージョンがインストールされました。
composer.jsonは以下のようになりました。
{ "require": { "openai-php/client": "^0.4.2", "symfony/http-client": "^6.2", "nyholm/psr7": "^1.6" }, "config": { "allow-plugins": { "php-http/discovery": true } } }
次にPHPの処理です。以下のようなPHPファイルを用意しました。
<?php require_once 'vendor/autoload.php'; $yourApiKey = getenv('YOUR_API_KEY'); $client = OpenAI::client($yourApiKey); $result = $client->completions()->create([ 'model' => 'text-davinci-003', 'prompt' => 'PHP is', ]); echo $result['choices'][0]['text']; // an open-source, widely-used, server-side scripting language.
こちらはopenai-php/client
のGitHubのページに書いてあるサンプルコードとほぼ同じです。autoloadの読み込みを加えています。
では、これを実行していきましょう。
YOUR_API_KEYという環境変数でAPI_KEYを取得しているので、環境変数にセットしつつPHPを実行しました。
$ YOUR_API_KEY=XXXXXXXXXXXXXXXXXXXXXXX php app.php PHP (Hypertext Preprocessor) is an open-source programming
このようにちゃんとPHP (Hypertext Preprocessor) is an open-source programming
と出力されました。もちろんAPIを叩いているので、実行結果が出力されるまでちょっとだけ時間がかかります。
※当たり前ですが、API_KEYはXXXXXXXで隠しています。こちらの記事を読みながら試している方はXXXXXのところをOpenAIで発行したAPIトークンを利用するようにしてください。
最後に
このように、openai-php/client
ライブラリを利用すればAPIをcurlするプログラムを自作する必要がなくChatGPTを利用できることがわかりました。
OpenAI::client()
でclientインスタンスを生成して、メソッドを呼び出すだけで利用できるので、シンプルな処理でAPIを叩けますね。サーバサイドの処理でもAIが簡単に扱える時代が来ましたね!