【個人開発】LINEbot×ChatGPTのサービスを開発しました

## はじめに： サービスの概要

LINEbotにChatGPTを組み合わせた**クソLINEチェッカー**というサービスをローンチしました。
以下のQRコードから友達追加することで使用することができます。

![スクリーンショット 2023-05-08 9.44.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/2dda7788-9b9c-ec0f-be07-48451ead449d.png)

URLはこちら: https://t.co/kKrPpgklnN

ChatGPTが話題になった頃からプロンプトの学習をし、過去には[プロンプト集](https://qiita.com/ysk91_engineer/items/34bd953fb935132dc16e)を記事にまとめました。
ChatGPTの使用方法は一通り理解したと感じたので、次はサービス開発に移りました。

LINEbotにChatGPTを組み合わせることで、ユーザーからの入力に対してGPTモデルが回答してくれるようになります。
初期プロンプトの設定を上手に組めば、自分だけのチャットボットを開発することができるのです！

## 機能紹介

本サービスは、入力されたメッセージ内にハラスメント要素がある場合に、AIがそれを指摘する機能を持っています。
ハラスメントを含んだメッセージとAIのメッセージの**湿度差**を楽しむと同時に、

* 自分が送ろうとしているメッセージにハラスメント要素が含まれていないかを確認したい
* 他人から来たメッセージに不快感を覚え、その原因を知りたい

というユーザー向けに開発しました。

### 実際の画面紹介

本サービスの実際の動作画面を紹介します。
※ 画像は開発中のものですが、現在も同様の返答をしてくれます。

以下はセクハラやモラハラに対する返答です。
送られてきたメッセージ内のハラスメント要素に対して的確な指摘をしていることが分かります。

![スクリーンショット 2023-04-17 21.16.30_2000x2000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/d9abcdc0-ec5e-caf3-f78d-875e8f40b8e6.png)

以下は直接的なハラスメント要素はないが関係性によって相手の捉え方が変化する場合のメッセージです。
このようなファジーなメッセージに対しても対応できていることから製品としてローンチできると判断しました。

![スクリーンショット 2023-04-17 21.16.13_2000x2000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/914bf78f-462c-7cc0-1b3b-30b8e73c3921.png)



## サービス開発にあたって意識した点

このサービスを開発するにあたり、

* 品質
* ゆらぎの楽しさ

の2点を同時に実現する必要がありました。

### 品質

本サービスにおける品質とは、サービスの最も重要な機能である「メッセージ内のハラスメント要素を指摘できる」ことです。
初期の頃はメッセージに対して、AIとしての返答をしたり、メッセージ内の「あなた」をAIが自分自身だと勘違いしたりしてしまいました。
クソLINEチェッカーとしての機能を果たすために初期プロンプトを忠実に実行させる方法として、few-shotプロンプトが大いに役立ちました。
few-shotプロンプトとは、プロンプト内に返答の例をいくつか組み込むことです。


### ゆらぎの楽しさ

品質を担保した後に発生した課題としては、返答が単一でAIを触る面白みがないというものでした。
サービスにAIを組み込む理由の一つはAIからの返答が予測できないことにあると思います。
AIの返答にランダム性を持たせることで

* これを入力したらどうなるんだろう
* 次はどんな返答が返ってくるんだろう

というサービスの面白さが生まれます。

今回の開発を通して、AIを組み込む必要のないサービスについて逆説的に考えさせられることになりました。
例えば入力に対して確実に間違いのない返答が求められるサービスはAIに不向きだと考えています。
本サービスはあくまでジョークアプリであり入力と出力の**湿度差**を楽しむものなのでAIを組み込む理由があると考えています。

技術的にランダム性を発生させるためにOpenAI APIに送信するパラメーター内の`temperature`値を操作しました。
`temperature`については、過去に[Twitterで考察](https://twitter.com/ysk91_engineer/status/1647528994512961537)しているのでそちらを参考にしてください。


## サービス開発背景

サービス開発の背景としての一番の理由は**個人開発をしてみたかった**という点にあります。
私自身未経験からWebエンジニアに転職が決まったばかりという身分ですが、自分で開発したサービスで収益を得ることは目標の一つでした。
そんなタイミングでChatGPTというサービスが出現したことは私にとってチャンスでしかありませんでした。

本サービスは無料で使えますがいくつかキャッシュポイントを用意しています。

1つ目はアフィリエイト広告です。
LINEのリッチメニューからおすすめサービス一覧というページを作成し、そこにアフィリエイト広告を埋め込んでいます。

2つ目はサービス開発です。
LINEbotにChatGPTを組み込んだサービスはこれからどんどん出てくると思います。
アイデアはあるけど開発ができないという方に対してサービス開発とプロンプトデザインを一括で提供することを目標としています。

おまけの3つ目は私のエンジニアとしての人材価値の向上です。
個人開発をしQiitaで投稿することによって私のエンジニアとしての人材価値が向上すると考えました。
仮に1つ目と2つ目での収益化が難しくても最悪この3つ目が実現できればいいやとも考えています。

なぜ個人開発でハラスメントというテーマを扱おうかと思ったのかというと、単純に私の興味のある分野だったからです。


## 今後の予定

今後は機能のアップデートは考えていませんが、目標を2つ持っています。

**収益化の土台を強くすること**
前項でも紹介した通り本サービスの収益ポイントは主に2つあります。
この2つに再現性をもたせることでより多くのサービスが生まれたら良いなと考えています。

**対話に特化したAIチャットボットを開発すること**
今回開発したサービスはメッセージに対して返答するという1対1のチャットボットです。
今後は過去のメッセージを記憶させ、より個人に寄り添った返答ができるチャットボットの開発を目指します。


## まとめ

まずは本サービスを触って頂けたら嬉しいです！
LINEの友達登録は以下のQRコードからできます。

![スクリーンショット 2023-05-08 9.44.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2688241/2dda7788-9b9c-ec0f-be07-48451ead449d.png)

URLはこちら: https://t.co/kKrPpgklnN

プロンプト次第でチャットボットの可能性は無限大です！
ただし、AIである必要がないサービスがあることも理解しなければいけません。

もし個人で事業をされている方でチャットボットの開発やプロンプトの組み方に疑問がある方は私のTwitterからご連絡頂ければお話させていただきます！

https://twitter.com/ysk91_engineer/status/1655402005396090881