広告

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

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

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

広告

はじめに

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

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

【Laravel】ChatGPT APIを使って連携
LaravelでWebアプリケーションを作成し、ChatGPTのAPIを利用してチャットを行います。

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

広告

【紹介】個人開発

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

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

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

ChatGPTについて

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

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

【ChatGPT】エンジニアが試してみた
何かと話題のAI、「ChatGPT」を試してみました。

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

ChatGPT Plusの申し込み方法
有料プランであるChatGPT Plusに申し込む方法と、試しに使ってみました。

VS Codeの用意

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

【VS Code】インストール手順を解説 【Windows/M1 Mac対応】
今回はVS Codeのインストール手順を解説します。WindowsとMacのそれぞれ分けてまとめました。

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

【VS Code】オススメの設定・拡張機能・便利機能・ショートカット【Win/Mac対応】
私的に最初に行う設定や、拡張機能、よく使うショートカットや便利な機能をまとめてみました。

ChatGPTのAPIキーの取得

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

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

【ChatGPT】エンジニアが試してみた
何かと話題のAI、「ChatGPT」を試してみました。

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

【ChatGPT】OpenAI API 有料アカウント登録
OpenAI 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の例は以下を参考にしてください。

【Laravel】ChatGPT APIを使って連携
LaravelでWebアプリケーションを作成し、ChatGPTのAPIを利用してチャットを行います。

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の便利なサービスがあります。

【オススメ】AIサービス
厳選したオススメのAIサービスを紹介します。

ChatPDFについては、以下の記事を参考にしてください。

ChatPDFを試してみた
ChatPDFを試してみました。PDFファイルを読み込ませ、ChatGPTのようにチャットすることができます。

AIにアプリを作ってもらえる、GPTAppです。

【ChatGPT】GPTAppでアプリを作成【AI】
ChatGPT APIを利用しているサービスである、GPTAppを試してみました。

WebChatGPTでWebの情報を回答してもらうことができます。

WebChatGPTでWebの情報を回答してもらおう
ChatGPTを拡張して使用できる、WebChatGPTを試してみました。

さいごに

今回は、ChatGPTのAPIをPHPで実装してみました。

ぜひ試してみてくださいね。

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

AIChatGPTPHPツールプログラミング
広告

個人開発

千草 @chigusaweb

現役のITエンジニア。 気ままにコードを書いたり技術情報を発信しています。 Webアプリ/Windows・Macアプリ/モバイルアプリなど。 (Java, PHP, Javascript, Swift, Python, C#, 他) 個人開発:Clibor, Quipha, TXT-Crypter, 符計算特訓, チグサツール Kindle本: Laravel9 実践入門, 他

クリップボード履歴

Clibor

Windows

Cliborはシンプルで高機能なクリップボード履歴ソフトです。
また普段よく使うワードを定型文として登録し、いつでもクリップボードに保存することができます。高度なテキスト整形・FIFOモード・ホットキーに対応。

クリップボード履歴

Windows版Cliborの利便性を、そのままMacでも。
定型文登録、高度なテキスト整形、FIFOモードなど、便利なクリップボード履歴機能を利用できます。macOS最新のTahoeにも対応。

テキスト暗号化

テキストを暗号化してURLで共有・保存できる無料サービスです。
パスフレーズを知る人だけが復号できます。登録不要、データはサーバーに保存されません。
Notionでも利用できます。

学習

Quipha

Web / iOS

自分だけの問題集や問題を作成し、クイズを行い、学習に活用することができるアプリです。
例えば、学校の授業、語学学習、IT資格やその他の資格など多彩な分野での学習を支援します。
いつでも、どこでも、あなたの学習をサポート。

ツール

日常の「ちょっとした効率化」をサポートするWeb便利ツール集。
テキスト・データ処理から最新のAI連携まで、日々のちょっとした手間でググりがちなユーティリティを1つの場所に集約。

麻雀

麻雀の符計算をひたすら特訓しマスターしましょう。
初心者の方はもちろん、もっと速く計算したい方にも役立ちます。
5万対局以上の実践から問題を収録。

コメント

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