ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。エンジニアの日々の開発などの記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

PHP から ChatGPT が利用できる openai-php/client を使ってみる。

OpenAIのAPIを操作する処理をラップしてくれているPHPのライブラリのopenai-php/clientというものがあります。これを利用することで、PHPでOpenAIChatGPTを利用することができるようになります。

github.com

また、触るきっかけとなったのが、開発者の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! 🎉

OpenAIの公式ドキュメントからもリンクが貼られるようになったようです。OpenAI公式も紹介するPHPのライブラリなので、使わなきゃですね。

platform.openai.com

ということで、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が簡単に扱える時代が来ましたね!

お問い合わせプライバシーポリシー制作物