Instagram

【超簡単】ChatGPTをPHPで実装する方法

2023年大注目のChatGPTのAPIが解放されました。
人工知能を用いた自然な対話を実現することを目的として開発されたモデルは今後かなり注目されていくことでしょう。

今回はAPIを利用してPHPで動かす方法を紹介します。
手順は以下の通りになります。

1.OpenAIのアカウント取得
2.APIキーの取得
3.PHPでAPIを利用

APIを利用するには?(準備)

OpenAIアカウントの開設

OpenAI APIへ遷移

「Get started」をクリックして、ユーザー登録を完了させます。

  •  メールアドレスのサインアップの他、GoogleアカウントかMicrosoftアカウントの認証も利用することも可能。
  • サインアップには電話認証が必要になるので事前にSMSが利用可能な電話番号を用意して下さい。

APIキーの発行

アカウントを作成後、OpenAPI-keysにアクセスして「+ Create new secret Key」をクリックして下さい。 

APIキーが発行されます。
あとで利用するので保存必須です。

PHPでAPIを利用(実装)

JavaScriptのFetch APIを利用してPHP(ChatGPTの処理ファイル)をコールバックして作成しています。

■javascriptのコード例

sendButton.addEventListener('click', () => {
  const userInputValue = userInput.value.trim(); // テキストボックスに入力された文字列

  if (userInputValue === '') return;
  addChatBubble(userInputValue, 'user');

  fetch('../../api/api_chatGPT.php', {  // リクエスト先のPHPファイルを指定
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ 
      prompt: userInputValue  // テキストボックスに入力された文字列を格納
    })
  })
.then(response => response.json())
.then(data => {
  const chatGPTResponse = data; // ChatGPTでAIが回答した内容を格納
  console.log(chatGPTResponse);
});
  •  javascriptからPHPをコールバックする処理のみ上記で明記しているため、一部の処理部分のみを公開しています。
  • HTML,CSS,javascriptを利用して開発しております。

■PHPのコード例

$input_json = file_get_contents('php://input');
$post = json_decode( $input_json, true );
$req_question = $post['prompt'];

$result = array();

// APIキー
$apiKey = '【生成したAPIキー】';

//openAI APIエンドポイント
$endpoint = 'https://api.openai.com/v1/chat/completions';

$headers = array(
  'Content-Type: application/json',
  'Authorization: Bearer ' . $apiKey
);

// リクエストのペイロード
$data = array(
  'model' => 'gpt-3.5-turbo',
  'messages' => [
    [
    "role" => "system",
    "content" => "日本語で応答してください"
    ],
    [
    "role" => "user",
    "content" => $req_question
    ]
  ]
);

// cURLリクエストを初期化
$ch = curl_init();

// cURLオプションを設定
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// APIにリクエストを送信
$response = curl_exec($ch);

// cURLリクエストを閉じる
curl_close($ch);

// 応答を解析
$result = json_decode($response, true);

// 生成されたテキストを取得
$text = $result['choices'][0]['message']['content'];

echo json_encode($text, JSON_PRETTY_PRINT);
  • エンドポイントは以下になります。
    https://api.openai.com/v1/chat/completions
  • 「model」は「gpt-3.5-turbo」を指定します。
  • 主なパラメータは「messages」です。「messages」は、「role」 (system / user) と「conetnt」 (メッセージ内容) を持つ辞書の配列です。

完成イメージ

こちらが完成イメージです。
対話形式のチャットボットのようなUIにしてます。

OpenAIのAPIは有料です。
1000トークンあたり0.002ドル(約0.27円)です。

ちなみに・・・トークンとは?

文字(Character)と単語(Word)の間の単位を表します。
API料金は、このトークン数に応じて課金されるため、トークンの理解は非常に重要です。

まとめ

簡単にChatGPTのAPIをPHPを用いて利用することが出来ます。
ChatGPTのAPIが公開されたことで今後様々なアプリケーションにChatGPTが活用されそうです。

弊社では、様々なAPIを利用してSNS分析ツール「GENba」を開発しております。
対象のAPIは以下です。
・Instagram graph API
・Twitter API
・TikTok API
・Open AI API

最新の技術を駆使し、弊社オリジナルの機能を開発しながら、日々アップグレードしております。

気になる方はこちらまでお問合せください。
GENbaに関する問い合わせ先はこちら