答えてLINEbot！

## なんでも直ぐに回答が欲しい！
こんにちは、花粉が舞う季節になり辛い生活を過ごしている雑パンです！

今回はChatGPTとLINEbotを連携して何でも回答してくれちゃう！そんなLINEbotを作成しようと考えました。
ネットで調べればいいんじゃないか?と思われるかもしれませんが、調べる手間を省きChatGPTに答えをストレートに導きだして貰いたいのです。


## 簡単に答えに辿り着かない
ネットで調べて簡単に答えが出るものと、出ないものがあります。
私は不動産を扱う仕事をしており、そのため仕事の中で土地の価値等を調べる時には「路線価を調べなきゃ！」ってことが良くあります。
※近隣の路線価を算出することで借地料や売買価格の目安を想定できます
路線価図⇓
![スクリーンショット (68).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3656665/478f7fe3-5f53-4835-afdf-66e61d661901.png)
ネットに路線価を掲載してるサイトがあり、知りたい路線価の該当するエリアまで検索を進め、<font color="red">**一つ一つ計算**</font>をして路線価を算出します。かなり地道です。
そういった時に一発で答えを出してくれたら便利じゃないですか?

# 完成品
<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">修正しました！一貫性のある回答です。<br>目的がズレましたが…<a href="https://twitter.com/hashtag/protoout?src=hash&amp;ref_src=twsrc%5Etfw">#protoout</a> <a href="https://twitter.com/hashtag/LINE?src=hash&amp;ref_src=twsrc%5Etfw">#LINE</a> <a href="https://twitter.com/hashtag/ChatGPT?src=hash&amp;ref_src=twsrc%5Etfw">#ChatGPT</a> <a href="https://t.co/8nXVZ7wcG9">pic.twitter.com/8nXVZ7wcG9</a></p>&mdash; 雑草パンダ (@m0526579) <a href="https://twitter.com/m0526579/status/1760665009116647935?ref_src=twsrc%5Etfw">February 22, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


## 1.使用したツール
使用したツールはとてもシンプル、以下の3つになります。
- [ChatGPT](https://chat.openai.com/)
- [LINE](https://line.me/ja/)
- [Make](https://eu2.make.com/)
# 作成手順
## ①ChatGPT
 ChatGPTを使用してMakeでLINEBotと連携するためにAPIキーを取得する必要があります。
サイトにアクセスしたら、APIキーを取得するために「+Create new secret Key」と書かれたグレーのボタンをクリックします。 新しく生成するAPIキーの名称を付けて「Create new secret Key」を選択すると、APIキーが発行されます。

https://ai-workstyle.com/gpt-apikey/

## ②LINEbot
LINEbot作成のためにLINEdevelopersでアカウントの作成が必要です。
LINE Developers にログインしてアカウント情報を登録後、プロバイダーを作成し新規チャネルを作成します。

https://qiita.com/gentuki/items/ad485a9365c2c23f0465

## ③Make 

OpenAIモジュールの設定
![スクリーンショット (70).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3656665/04359455-0dd4-87ad-7365-a48280d0b34b.png)

返信を行うLINEモジュールの設定
![スクリーンショット (71).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3656665/68fae817-8f54-e156-fda4-ce3c16933057.png)




## 2.使用してみる


#### 回答してくれていますが同じ質問をしても回答が違います・・・
<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">LINEbotに何でも答えてもらう！<a href="https://twitter.com/hashtag/protoout?src=hash&amp;ref_src=twsrc%5Etfw">#protoout</a> <a href="https://twitter.com/hashtag/LINE?src=hash&amp;ref_src=twsrc%5Etfw">#LINE</a> <a href="https://twitter.com/hashtag/ChatGPT?src=hash&amp;ref_src=twsrc%5Etfw">#ChatGPT</a> <a href="https://twitter.com/hashtag/%E3%83%A1%E3%82%BF%E6%84%9B?src=hash&amp;ref_src=twsrc%5Etfw">#メタ愛</a> <a href="https://t.co/EmLii6F1q7">pic.twitter.com/EmLii6F1q7</a></p>&mdash; 雑草パンダ (@m0526579) <a href="https://twitter.com/m0526579/status/1760644370347491390?ref_src=twsrc%5Etfw">February 22, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

![IMG_7027.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3656665/dbb99fe4-cfd0-9bf2-c533-1266f9229b56.png)



Chatbotと連携して回答はしてくれますが、同じ質問をしても毎回異なる回答をし一貫性がありません。これでは意味を成さないので、ChatGPTに聞いて修正を図りたいと思います。

![スクリーンショット (75).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3656665/d48259cf-2e4a-25bb-c22b-94dc31a80b26.png)

どうやら記載のコードをMakeのOpenAIモジュールに設定することで回答が安定するようです。



```
openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is the capital of Canada?"},
    ],
  temperature=0.2,
  max_tokens=50
)
```
![スクリーンショット (76).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3656665/f7baabeb-1c14-405d-6ec6-f3b83ee69445.png)

モジュールに打ち込んで実際に回答に一貫性がでるのか確認します。

![IMG_7026.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3656665/80f20f57-0438-d12c-d96d-11b0448f1a50.png)

<font color="red">**回答に変化が出ましたが、必要な情報は回答してくれなくなりました（笑）**</font>

:::note warn
モジュール内のMessageへコピーしたコードを貼付け、Role内のsystemを選択するだけで回答に一貫性を持たせることが出来ました！
:::

## 3.まとめ
今回ChatGPTとLINEbotを活用して適格に又、一貫性のある回答がもらえる様に試みました。その上で完成したプロトタイプは実際求めているものを実装することができませんでしたが、回答の正確性や一貫性を持たせることができたのは良かったです。
この反省を活かして次作は不動産情報を扱うサービスからAPIを取得して連携を図り、必要な情報を取得できるプロトタイプを作成していきたいと思います。