自分だけのクイズを作成しよう - Quipha
スポンサーリンク

【PHP】ChatGPTライブラリを使ってAPI連携

【PHP】ChatGPTライブラリを使ってAPI連携 AI

当サイトではアフィリエイト広告を利用しています。

スポンサーリンク

はじめに

今回は、ChatGPTのライブラリを使用してPHPでAPI連携を試します。
自分で作成したアプリから、ChatGPTの機能が呼び出せるとアイディア次第では便利ですね!

LaravelでChatGPTのAPIを連携した記事は以下を参考にしてください。

他にも私のブログで、ChatGPTについて解説している記事がありますのでご覧ください。

スポンサーリンク

【紹介】個人開発

私の個人開発ですがQuiphaというサービスを開発しました。(Laravel, Vue3など)
良かったら、会員登録して動作を試してみて下さい。

また、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます

是非多くの方に読んでいただき、Laravelの開発に少しでもお役に立てたら幸いです。

ChatGPTについて

ChatGPTは、OpenAIによって開発された大規模な自然言語処理モデルです。

ChatGPTについては以下の記事もご覧ください。

また、有料プランもあります。
以下の記事も参考にしてください。

VS Codeの用意

VS Codeのインストール方法は、以下の記事にまとめましたのでご覧ください。

設定方法は以下を参考にしてください。

ChatGPTのAPIキーの取得

ChatGPTのAPIを利用するためには、アカウントを作成し、APIキーを取得する必要があります。

アカウントの作成方法は以下の記事を参考にしてください。

APIの登録方法については以下の記事を参考にしてください。

APIキーの利用には料金がかかります。詳しくはOpenAIのサイトをご確認ください。

ログインした状態で、以下のサイトにアクセスします。

platform.openai.com

右上のメニューから、「View API keys」をクリックします。

OpenAI View API keys

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

OpenAI Create new secret key

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

OpenAI API Key

APIキーは絶対に他人に知られないようにしましょう。

スポンサーリンク

OpenAIライブラリインストール

今回はOpenAIのAPIを操作できるライブラリを使用します。
APIを呼ぶだけですので、cURLでの実装もできますがライブラリを使う方が便利です。

cURLの例は以下を参考にしてください。

OpenAIのサイトにライブラリの一覧があります。

Libraries – Community libraries

今回は以下のライブラリを使用します。

GitHub - orhanerday/open-ai: OpenAI PHP SDK : Most downloaded, forked, contributed, huge community supported, and used PHP (Laravel , Symfony, Yii, Cake PHP or any PHP framework) SDK for OpenAI GPT-3 and DALL-E. It also supports chatGPT-like streaming. (ChatGPT AI is supported)
OpenAI PHP SDK : Most downloaded, forked, contributed, huge community supported, and used PHP (Laravel , Symfony, Yii, C...

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について解説している記事がありますのでご覧ください。

\オススメ/

コメント

タイトルとURLをコピーしました