LaravelでChatGPT API(gpt-3.5-turbo)を動かすシンプルなコード

2023-03-26
タグ Laravel PHP

Laravelのコントローラーを使用してOpenAI APIにリクエストを送信する方法を紹介します。

  1. まず、OpenAIControllerという名前のコントローラーを作成します。コマンドラインで以下のコマンドを実行してください。
go
php artisan make:controller OpenAIController
  1. 作成された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']]); } } }
  1. 次に、ルーティング設定ファイル(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エンドポイントにアクセスすると、OpenAIControllerarticleメソッドが呼び出され、OpenAI APIにリクエストが送信されます。リクエストが成功すると、APIからの応答がJSON形式で返されます。

注意:この例ではGETリクエストを使用していますが、実際のアプリケーションではPOSTリクエストを使用し、ユーザーからの入力をコントローラーに渡すことが推奨されます。

前のページに戻る