chatgpt 4 を使った
追記
エラーコードの意味
Error: 429
お金払ってね
Error: 400
金払ったのわかるけど、古いデータのまま送信しないでね
テキストを変更すれば治る。
$messages = [
[
'role' => 'system',
'content' => 'あなたは、20歳の女性です。私のプロフィールを考慮し、私に質問をしてください。1から9までの箇条書きで、質問のみ出力して下さい。'
],
[
'role' => 'user',
'content' => '超長期投資🎁飲食店株大好き🍖株主優待フェチ💓web会社経営💰早く結婚したい🤗彼女募集中DMお気軽に✨イケメン。億トレ。付き合ってくれたら株主優待あげます🎁'
],
// その他のメッセージ
];
//use Illuminate\Support\Facades\Http;
$response = Http::withHeaders([
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . config('app.open_ai_secret')
])->post('https://api.openai.com/v1/chat/completions', [
'model' => 'gpt-4-1106-preview',
'messages' => $messages,
'max_tokens' => 500,
]);
if ($response->failed()) {
$res = 'Error: ' . $response->status();
pd($response->body());
} else {
$res = $response->json();
// var_dump($result['choices'][0]['message']['content']);
}
これで gpt-4 turbo が使える。
chatgpt の api と書いてあるのは open aiのAPI
※ 同じGPT3.5系のモデルを使った文章生成AIのこと
アカウントを作成
.env を設定
キーが外部にもれないよう、.envに。
OPEN_AI_SECRET=sk-xxxfff
app.php
'open_ai_secret' => env('OPEN_AI_SECRET'),
キャッシュのお掃除
php artisan config:cache
rm -f bootstrap/cache/config.php
日本語生成
$apiUrl = 'https://api.openai.com/v1/completions';
// APIに送信するパラメーター
$apiParams = [
'model' => 'text-davinci-003',
'prompt' => '日本の現在の総理大臣は誰ですか?',
'max_tokens' => 100,
];
// Guzzleを使ってAPIにリクエストを送信する
$client = new Client();
$response = $client->post($apiUrl, [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . config('app.open_ai_secret'),
],
'json' => $apiParams,
]);
// APIからのレスポンスを取得する
$result = json_decode($response->getBody()->getContents(), true);
print_r($result);
結果
Array
(
[id] => cxxx
[object] => text_completion
[created] => 16753333
[model] => text-davinci-003
[choices] => Array
(
[0] => Array
(
[text] =>
安倍晋三です。
[index] => 0
[logprobs] =>
[finish_reason] => stop
)
)
[usage] => Array
(
[prompt_tokens] => 27
[completion_tokens] => 14
[total_tokens] => 41
)
)
はい、これで日本語出力できましたね
textのモデルは複数あるが、text-davinci-003以外は使いものにならない。
画像生成
$client = new Client();
$response = $client->post('https://api.openai.com/v1/images/generations', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . config('app.open_ai_secret'),
],
'json' => [
'model' => 'image-alpha-001',
'prompt' => '婚活している30代日本人女性',
// 'prompt' => 'かわいい20歳の日本人女の子がマイクロビキニを着て男を誘惑している',//エロはダメ
'num_images' => 1,
'size' => '256x256'
],
]);
$json_result = json_decode($response->getBody(), true);
$image_url = $json_result['data'][0]['url'];
echo $image_url;
ここに画像
他にできること
・Code Completion(コード生成)
・Fine-tuning(モデル学習)
・Embedding(数字変換)
料金は?
Davinci
1000トークン当たり0.0200ドル
( 1 ドル で 50000 トークン )
英語は1単語を1トークン。
カンマ(,)やピリオド(.)、クエスチョンマーク(?)も1トークン
日本語だと
十八番とは?:11トークン
大体1文字2トークン程度になる
Davinciで1回平均1000トークン消費して1000回APIリクエストした場合、100万トークン発生して20ドル(約2600円)が課金される
画像生成
1024×1024 $0.020 / 画像
512×512 $0.018 / 画像
256×256 $0.016 / 画像
つまり1024x1024を100枚で$2 (260円)
有名なダヴィンチさんは?
linebotでよく聞く、ダヴィンチさんは
4文字以下は応答対象外
81文字以上の文章も応答対象外
1日に対話できるのは3回まで
らしいです。
さらに追記していきます