Hugging Face上の生成AIモデルと、Laravelで開発したWebアプリをServerless Inference APIを使って連携する方法を解説します。こちら無料で利用できます。
なお詳しい手順はYoutube動画で解説しているので、併せてご覧ください。本記事では、動画内で使用したコードをご紹介します。
↓↓↓
Hugging Face上の生成AIモデルとLaravelを無料でAPI連携(Serverless Inference API・Mistral AI利用)
Hugging Face上にあるモデルと無料でAPI連携する方法は、下記ページに記載されています。
無料でAPI連携ができるモデルは限られています。また変更される可能性があります。なので、無料版APIは自分用のテストなどに使うのが良いかと思います。
今回は、HuggingFace上にある下記のMitstral AIモデルとAPI連携をします。日本語対応しているため、選択しました。
コントローラの作成
Laravelで新規プロジェクトを作成します。Laravelプロジェクトの環境構築やインストールについては、こちらご覧ください。
次にライブラリをインストールしておきます。
1 |
composer require guzzlehttp/guzzle |
その後、コントローラを作成します。
1 |
php artisan make:controller HuggingFaceController |
作成したコントローラには下記のコードをいれます。
【HuggingFaceController】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use GuzzleHttp\Client; class HuggingFaceController extends Controller { public function getPrediction() { $client = new Client([ 'base_uri' => 'https://api-inference.huggingface.co/models/mistralai/Mistral-Nemo-Instruct-2407', 'headers' => [ "Authorization" => "Bearer HuggingFaceトークン", "Content-Type" => "application/json" ] ]); $userMessage = request('message', "白菜を使ったレシピはどんなものがありますか。"); $prompt = "あなたは親切で有能なアシスタントです。\n\nUser: {$userMessage}\nAssistant:"; $response = $client->post('', [ 'json' => [ 'inputs' => $prompt, 'parameters' => [ 'max_new_tokens' => 128, 'temperature' => 0.3, ], ], ]); $result = json_decode($response->getBody(), true); return view('prediction', ['response' => $result[0]['generated_text']]); } } |
HuggingFaceトークンの取得方法が分からない、などあれば動画を見てくださいね。
ビューファイルの作成
次にビューファイルを作ります。resources/viewsの中にprediction.blade.phpファイルを作り、下記コードをいれます。
【prediction.blade.php】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<!DOCTYPE html> <head> <meta charset="UTF-8"> <title>生成AIレスポンス</title> </head> <body> <h1>生成AIレスポンス</h1> <h2>Generated Text:</h2> <p>{{ $response }}</p> </body> </html> |
ルート設定の追加
最後に、routes/web.phpに、下記のルート設定を追加します。
1 |
Route::get('/huggingface/prediction', [App\Http\Controllers\HuggingFaceController::class, 'getPrediction']); |
テスト
ブラウザにLaravelプロジェクトを開き、/huggingface/predictionパスをいれてみてください。
うまくいったら、質問部分を変えたりしてみてくださいね。
公式ページ
公式ページはこちら。併せて参考にしてください。
さいごに
なおHugging Faceでは今回ご紹介した方法以外にも、API利用方法があります。APIエンドポイントを作成する方法ですが、こちらはまた別の記事でご紹介しようかと思っています。
Hugging Faceについてや、Hugging Face上の生成AIモデルの利用方法の比較表は、下記の記事をご覧ください。