LaravelとChataGPTをAPI連携:不適切(性的・暴力的)な入力をエラーにする方法

ChatGPT

ChatGPTのAPIには、不適切な表現を入力された時に、これを検知して排除する機能があります。

今回は、前回Laravelで作ったWebアプリに、どのようにこの機能を搭載するかを解説します。

わたし自身も、先日作成したWebアプリ【今日のメニュー】に性的表現を入れられてしまったので、この機能を搭載しました。

実際にどんなふうにエラーが出るか、ご興味あれば、下記をクリックして実際のWebアプリを試してみてください。あまり不適切な表現を使って頂きたくない気もしますが。

前提条件

前回は、LaravelとChatGPTをAPIで連携させてWebアプリを作りました。このコードに、手を加えていくことにします。

コードの作り方は、下記を参考にしてください。

不適切な表現を検知するコードを追加

まずはコントローラに手を加えます。

前回作成したImageController.phpを開き、generateResponseメソッドに下記コードを追加します。

【ImageController.php】

これによって、不適切な表現が入るとフラグがたちます。

テストとして、ddを使って$responseの結果を表示させてみましょう。

不適切な表現を用いた場合には、下記のように ‘violated’【違反】 が true になります。

なお上記テストでは、性的な表現を用いたので、[sexual]の違反がtrueとなっています。スコアも出ます。

違反結果をビュー側に反映させる

違反があった場合に、ビュー側にメッセージを表示させていきます。ImageController.phpのimageメソッドに、下記コードを追加します。

【ImageController.php】

さらにビューファイル(resources/views/image.blade.php)にも、下記のように、エラーがあった場合にエラーを表示するコードを追加します。

【image.blade.php】

テストしてみましょう。

不適切な表現を入れると、エラーが返ってきます。

違反の種類によってメッセージを変える

なお今回は性的な表現違反でしたが、今回加えたコードによって、他にも下記の7点の違反をチェックしてくれます。

【ChatGPTが検知できる違反項目】

hate 憎悪的
hate/threatening 憎悪的・脅迫的
self-harm 自傷的
sexual 性的
sexual/minors 性的・未成年
violence 暴力的
violence/graphic 暴力的/グラフィック

違反の種類によってエラーメッセージを変えることも可能です。

たとえば、violenceやsexualの時だけ違反メッセージを変えたいときには ImageController.phpのgenerateResponseメソッドを下記のように変更します。

【ImageController.php】

imageメソッドも、下記のように変更を加えます。

なぜ、違反ワード検出機能が必要なのか

以上、不適切な表現が含まれているときにエラーにする方法でした。

最後に、なぜこの機能が必要か、わたし自身の体験をふまえてお伝えします。

わたしは先日、LaravelとChatGPTを連携させたWebアプリ【今日のメニュー】を作りました。

材料を入れるとChatGPTがメニューを考えてくれるWebアプリです。

楽しく使って頂けていて、嬉しく思います。が、ある日データベースを見てみると、性的な表現を何度も入れる方がいました。男性の性器に関連する表現です。

わたしのWebアプリの場合は、エンジニアの方向けでもあるので、「こういった表現を入れるとどうなるか?」確かめてみたのかもしれません。

ただ普通のWebアプリの場合には、こういうことをされると困りますよね。そこで、今回のコードを追加するに至ったわけです。

解説したとおり、ChatGPT側ですでに機能を用意してくれているので、これを使えばOKでした。

あなたがWebアプリを作る時の参考になれば嬉しいです。

参考サイト

OpenAIのAPIの下記ページが参考になります。

今回はライブラリを使用してLaravelとChatGPTを連携させましたが、ライブラリのページも参考になります。

最後に

今回もLaravelを使ってChatGPTとの連携方法を解説しました。

ある程度Laravelを使えれば、API連携によって、色々と可能性が広がります。

ChatGPTに聞けばコードを教えてくれますし、色々と参考となるコンテンツがたくさんあるので、ぜひ活用していってください。

本ブログも参考にしてもらえると嬉しいです。

ただ、LaravelやWebアプリの開発方法自体に慣れていない場合には、参考コードをアレンジするのが大変だと思います。

そういった場合には、まず基本部分を習得されることをおすすめします。

Laravelについては、わたしのほうで学習サイト【Laravelの教科書】を運営しているので、よかったらご利用ください。

フォーラムサイトを作りながら、実際のWebサイトを作っていく実践的な内容です。

【Laravelの教科書を通じて作成するWebアプリの画面例】

Laravelの教科書について詳しく知る

基礎編は無料です♪

ご興味あれば、上記ボタンをクリックして詳細をご覧ください。

ChatGPT

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

 

Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
デプロイ講座付。StripeやChatGPT連携など過去10回分のセミナー動画視聴可能。

Laravel実践スキルをのばしたい方におすすめです。

ラボの案内を見てみる

Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました