はじめに
今回は、ChatGPTのライブラリを使用してPHPでAPI連携を試します。
自分で作成したアプリから、ChatGPTの機能が呼び出せるとアイディア次第では便利ですね!
LaravelでChatGPTのAPIを連携した記事は以下を参考にしてください。
他にも私のブログで、ChatGPTについて解説している記事がありますのでご覧ください。
【紹介】個人開発
私の個人開発ですがQuiphaというサービスを開発しました。(Laravel, Vue3など)
良かったら、会員登録して動作を試してみて下さい。
また、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます。
ChatGPTについて
ChatGPTは、OpenAIによって開発された大規模な自然言語処理モデルです。
ChatGPTについては以下の記事もご覧ください。
また、有料プランもあります。
以下の記事も参考にしてください。
VS Codeの用意
VS Codeのインストール方法は、以下の記事にまとめましたのでご覧ください。
設定方法は以下を参考にしてください。
ChatGPTのAPIキーの取得
ChatGPTのAPIを利用するためには、アカウントを作成し、APIキーを取得する必要があります。
アカウントの作成方法は以下の記事を参考にしてください。
APIの登録方法については以下の記事を参考にしてください。
ログインした状態で、以下のサイトにアクセスします。
右上のメニューから、「View API keys」をクリックします。

「Create new secret key」をクリックし、APIキーを作成します。

APIキーが表示されます。
この画面でしかコピーできず、再度表示することができませんので注意してください。

OpenAIライブラリインストール
今回はOpenAIのAPIを操作できるライブラリを使用します。
APIを呼ぶだけですので、cURLでの実装もできますがライブラリを使う方が便利です。
cURLの例は以下を参考にしてください。
OpenAIのサイトにライブラリの一覧があります。
Libraries – Community libraries
今回は以下のライブラリを使用します。
composerを利用してインストールします。
$ composer require orhanerday/open-ai
composer.jsonに追加されました。
"require": {
..
"orhanerday/open-ai": "^4.8"
},
実装
PHP
今回はLinux上で、PHPを単体で実行してみます。
ChatGPTのAPIキーを使用しますが、PHPのソースにハードコーディングしないようにしましょう。
事前に環境変数として設定します。
$ export OPENAI_API_KEY=sk-....
以下のように最小限のコードを実装しました。
<?php
require __DIR__ . '/vendor/autoload.php';
use Orhanerday\OpenAi\OpenAi;
// 環境変数から取得
$open_ai_key = getenv('OPENAI_API_KEY');
// ライブラリのインスタンスを生成
$open_ai = new OpenAi($open_ai_key);
// ChatGPTを呼び出し
$chat = $open_ai->chat([
'model' => 'gpt-3.5-turbo',
'messages' => [
[
"role" => "system",
"content" => "日本語で応答してください"
],
[
"role" => "user",
"content" => "Twitterとは"
],
],
]);
$d = json_decode($chat);
echo($d->choices[0]->message->content);
PHPコマンドで実行してみましょう。
$ php php_chatgpt.php
以下のように応答結果を取得することができました。
Twitterは、インターネット上で利用できるオンラインのソーシャルネットワーキングサービスの一つで、ユーザーが140文字以内の短いメッセージを投稿し、フォロワーと呼ばれる読者に配信されるサービスです。投稿されるメッセージは「ツイート」と呼ばれ、主に日常の出来事や思いのつぶやき、ニュース、ブログなどの記事の宣伝に使われます。また、企業や有名人もTwitterを活用し、ファンの情報発信や広告・マーケティングに利用される場合もあります。
Laravel
もちろんLaravelでも使用することができます。
Laravelの場合は、ChatGPTのAPIキーを.evnファイルに記載します。
OPENAI_API_KEY=sk-.....
コントローラーを以下のように実装しました。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Orhanerday\OpenAi\OpenAi;
class ChatGptController extends Controller
{
/**
* index
*
* @param Request $request
*/
public function index(Request $request)
{
$response = $this->chat_gpt("日本語で応答してください", "Twitterとは");
echo $response;
}
/**
* ChatGPT API呼び出し
* cURL
*/
function chat_gpt($system, $user)
{
$open_ai_key = env('OPENAI_API_KEY');
// ライブラリのインスタンスを生成
$open_ai = new OpenAi($open_ai_key);
// ChatGPTを呼び出し
$chat = $open_ai->chat([
'model' => 'gpt-3.5-turbo',
'messages' => [
[
"role" => "system",
"content" => "日本語で応答してください"
],
[
"role" => "user",
"content" => "Twitterとは"
],
],
]);
$d = json_decode($chat);
return $d->choices[0]->message->content;
}
}
AIサービス
他にもAIの便利なサービスがあります。
ChatPDFについては、以下の記事を参考にしてください。
AIにアプリを作ってもらえる、GPTAppです。
WebChatGPTでWebの情報を回答してもらうことができます。
さいごに
今回は、ChatGPTのAPIをPHPで実装してみました。
ぜひ試してみてくださいね。
他にも私のブログで、ChatGPTについて解説している記事がありますのでご覧ください。
コメント