LaravelでChatGPT API(gpt-3.5-turbo)を動かすシンプルなコード
2023-03-26
Laravelのコントローラーを使用してOpenAI APIにリクエストを送信する方法を紹介します。
- まず、
OpenAIController
という名前のコントローラーを作成します。コマンドラインで以下のコマンドを実行してください。
gophp artisan make:controller OpenAIController
- 作成された
OpenAIController
ファイル(app/Http/Controllers/OpenAIController.php
)を開いて、use
ディレクティブとarticle
メソッドを追加します。
php<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class OpenAIController extends Controller
{
public function article(Request $request)
{
$messages = [
[
'role' => 'system',
'content' => "あなたはプロのライターとして振る舞ってください。"
],
[
'role' => 'user',
'content' => "世界のフルーツについて記事を書いてください。"
],
];
$response = Http::withHeaders([
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . config('app.open_ai_secret')
])->post('https://api.openai.com/v1/chat/completions', [
'model' => 'gpt-3.5-turbo',
'messages' => $messages,
'max_tokens' => 500,
]);
if ($response->failed()) {
return response()->json(['error' => 'Error: ' . $response->status()], $response->status());
} else {
$result = $response->json();
return response()->json(['message' => $result['choices'][0]['message']['content']]);
}
}
}
- 次に、ルーティング設定ファイル(
routes/web.php
またはroutes/api.php
)を編集して、article
メソッドへのルートを追加します。
php<?php
use App\Http\Controllers\OpenAIController;
use Illuminate\Support\Facades\Route;
Route::get('/article', [OpenAIController::class, 'article']);
これで、/article
エンドポイントにアクセスすると、OpenAIController
のarticle
メソッドが呼び出され、OpenAI APIにリクエストが送信されます。リクエストが成功すると、APIからの応答がJSON形式で返されます。
注意:この例ではGETリクエストを使用していますが、実際のアプリケーションではPOSTリクエストを使用し、ユーザーからの入力をコントローラーに渡すことが推奨されます。