メモ > 技術 > サービス: ChatGPT > APIからの利用
APIからの利用
ChatGPTをPHPで使ってみました - NAGAOKA STATION
https://nstjp.com/web/1050.html
OpenAIのAPI利用の料金を解説!文章生成AIと画像生成AIの費用を説明 | AutoWorker〜Google Apps Script(GAS)とSikuliで始める業務改善入門
https://auto-worker.com/blog/?p=7005
一定以上の利用量に達すると利用できなくなり、課金が必要になるようなので注意。
少し試す程度なら問題は無さそう。
■APIの正式提供
APIは2023年3月2日に提供が開始されたらしい。
後に書いている「APIキーの発行」「プログラムの作成」はもっと前に書いたものだが、これとは異なるのか。
ChatGPT、API提供開始 - Impress Watch
https://www.watch.impress.co.jp/docs/news/1482689.html
ChatGPT API の使い方|npaka|note
https://note.com/npaka/n/n0dd2b226e8ae
ChatGPT APIを使ったLineBotの作り方を、人格の与え方まで完全解説【プログラミング不要】|ChatGPT 研究所
https://chatgpt-lab.com/n/n55257c082a9d
新たな革命の幕開け。ChatGPT API の使い方(Python) と料金を紹介。|ChatGPT 研究所
https://chatgpt-lab.com/n/nda0de0be1774
と思ったが、以下に「もともとテキスト生成用に以下のcompletionsエンドポイントがありましたが」と書かれている。
テキスト生成だけ先行して提供されていたみたい。
OpenAIからChatGPTとWhisperに関するAPIがリリースされたのでドキュメントを読み解いてみた | DevelopersIO
https://dev.classmethod.jp/articles/release-openai-apis-chatgpt-and-whisper/
■APIキーの発行
以下にアクセスする。
Account API Keys - OpenAI API
https://beta.openai.com/account/api-keys
「+ Create new secret key」ボタンを押す。
ダイアログにAPIキーが表示されるので控えておく。
(このキーは再表示できず、キーを紛失した場合は新しいキーを発行する必要があるとのこと。)
■プログラムの作成
※2023年3月2日に正式にAPIが提供開始されたので、エンドポイントなどは改めて確認したい。
以下のようにすると、質問に対する回答が表示される。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ChatGPT APIサンプル</title>
</head>
<body>
<h1>ChatGPT APIサンプル</h1>
<?php
// OpenAIのAPI Keyを取得( https://beta.openai.com/account/api-keys )
define('OPEN_API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
// ChatGPTに投稿するメッセージ
define('CHAT_TEXT', 'Javaの有名なフレームワークについて教えてください。');
// リクエストを送信
$header = array(
'Authorization: Bearer ' . OPEN_API_KEY,
'Content-type: application/json',
);
$params = json_encode(array(
'prompt' => CHAT_TEXT,
'model' => 'text-davinci-003',
'temperature' => 0.5,
'max_tokens' => 4000,
'top_p' => 1.0,
'frequency_penalty' => 0.8,
'presence_penalty' => 0.0
));
$curl = curl_init('https://api.openai.com/v1/completions');
$options = array(
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $header,
CURLOPT_POSTFIELDS => $params,
CURLOPT_RETURNTRANSFER => true,
);
curl_setopt_array($curl, $options);
$response = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
if ($httpcode != 200) {
exit('エラーが発生しました。');
}
echo '<h2>質問</h2>';
echo '<p>' . CHAT_TEXT . '</p>';
echo '<h2>回答</h2>';
$json_array = json_decode($response, true);
$choices = $json_array['choices'];
foreach ($choices as $v) {
$text = trim($v['text']);
$text = preg_replace("/\r?\n/i", "\r", $text);
$text = preg_replace("/\r/i", "\n", $text);
echo '<p>' . nl2br(htmlspecialchars($text, ENT_QUOTES)) . '</p>';
}
?>
</body>
</html>
■メモ
会話の継続について触れられている。
上記とは言語も呼び出し方も違うかもしれないが参考までにメモ。
ChatGPT APIを使ってAIキャラクターを作ってみる! - Qiita
https://qiita.com/sakasegawa/items/db2cff79bd14faf2c8e0