完全ノーコードで、RAG＋生成AIのQAチャットを作ってみた【ChatGPT】

無料のノーコード生成AI開発ツール（[ADFI生成AI](https://adfi.jp/ja/ga/)）で、自分のPC内のデータを使ってChatGPTが回答する、AIエージェント（生成AIチャット）を作ってみました！

ローカル環境（自分のPCやサーバー）の指定したフォルダ内の文書データ（Word、Excel、PowerPoint、PDFファイルなど）や画像データ（JPG、PNGファイルなど）の情報を使って、ChatGPTがユーザーの質問に回答してくれます！
回答根拠の出典ファイル名も表示してくれるので、とても便利！

試してみた内容を記事に書いてみます。

前回の記事「[【RAG】自社データを使って回答する生成AIチャットをノーコードで作る手順【ChatGPT】](https://qiita.com/umapyoi/items/8daad620f58fb7528509)」で、作成手順を解説しています。

![AIアプリ画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/0b257f5a-31f2-471f-9080-857bed33f7cc.png)

# 試したデータ
（自社データをこの記事に公開するわけにはいかないので）今回は厚生労働省の「令和５年（2023）人口動態統計（確定数）の概況」のデータをダウンロードして利用しました。

![ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/5dc228e0-ff42-4cd2-b18a-215d5ce3d17d.png)

全部でPDFファイルが13個です。

![フォルダ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/aa844bd0-2e6b-4ffc-9b03-a70229643bbb.png)

ダウンロードしたフォルダのパスを指定して、AIを起動します。

![ターゲットパス.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/dfee7494-5115-47fb-9e34-245b3f5b364b.png)

# 実行結果

実際に、AIエージェントに質問して回答結果を確認してみます。

### 実行結果1
質問：出生順位別にみた合計特殊出生率について教えて
回答：（下記の画面キャプチャ）
![QA例１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/0fe4da7f-c31e-47b8-b0d5-6c4e81703f5a.png)

回答根拠の出典ファイル名として、「01_cho.pdf」「09_h5.pdf」とされているので、「01_cho.pdf」を確認してみると、合計特殊出生率の定義がしっかり記載されていました！

PDFファイルの記載とAIの回答を見比べましたが、完璧な回答ですね！

### 実行結果2
質問：出生順位別の合計特殊出生率で、各年のデータを教えて
回答：（下記の画面キャプチャ）

![QA例３.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/92d8c25b-2ddb-422e-b11e-406919f150e4.png)

「各年の具体的なデータは、提供されたドキュメント内には記載されていないようです」という回答が返ってきました。
回答根拠の出典ファイル名「09_h5.pdf」を見ると、合計特殊出生率の表はありました。

そこで、質問文に「わかる範囲で」という文言を追加してみます。
「出生順位別の合計特殊出生率で、各年のデータをわかる範囲で教えて」質問してみると、PDF内の表中に記載されている正確なデータを回答してくれました！

どうやら、質問文の「各年のデータ」に対して、AIは「記載されている年はわかるけど、それ以外の年はわからないよ」と考えて回答できなったようです。
誠実なAIですね。

### 実行結果3
AIの設定値の試行錯誤の結果、AIの設定項目である「ハルシネーションを抑止するレベル」の値が影響していることがわかりました。
「ハルシネーションを抑止するレベル」を「middle」（中レベル）から「none」（無し）に変更すると、完璧な回答をしてくれました！

質問：出生順位別の合計特殊出生率で、各年のデータを教えて
回答：（下記の画面キャプチャ）
![QA例２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/fc28ceb8-c2f4-4817-9d30-00d4ffb9a997.png)

どうやら、「ハルシネーションを抑止するレベル」が高い場合、AIが誤った回答をしないように、かなり慎重な回答文になるようです。

# AIの設定値の変更手順
AIの設定項目である「ハルシネーションを抑止するレベル」の値を変更する手順を記載しておきます。

設定値を変更したいAI詳細の画面で、「設定を編集」をクリックします。
![ADFI0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/f35dc4a0-2458-4bd5-8cfa-692ca290fa34.png)

AI設定の編集の画面で、「詳細設定オプション」をクリック。
![ADFI１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/b47da110-d05b-4325-8fbd-6e279b14e356.png)

「ハルシネーションを抑止するレベル」の設定値を変更する。
![ADFI2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/ca838147-8450-4272-bfda-95e807c60bff.png)

設定値を変更したら、「設定値を保存」をクリックする。
![ADFI3_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/6ec250de-24b4-4abd-8b02-006468b54898.png)

これで、AIを再起動すると、変更後の設定値でAIが実行されます。

# かかった費用
このAIエージェントの費用はどのくらいかというと、開発費は０円！
なんと、AI開発ツールである[ADFI生成AI](https://adfi.jp/ja/ga/)は無料で利用できるので、お金をかけずに生成AIアプリを作成できます！

ランニング費用としては、ChatGPT（OpenAI API）の使用量に応じて、OpenAI APIの利用料が発生します。
使用する生成AIモデルの種類や、質問や回答の長さでトークン数が変わってくるので、質問１回にかかる費用も変わってきます。RAGを使うと、トークン数がかなり大きくなるので、どうしても利用料も多くなってしまいます。

あくまでも参考の数字ですが、
今回のQAで計測したところ、AIに２回QAをして、料金は、0.09ドル（＝約13円）でした、
つまり、1回AIに質問すると約6.5円かかる計算になります。

仮に、1か月間にAIに100回質問したとしても月650円ですので、RAGを使っているわりには、Dataikuなどを利用した時より比較的リーズナブルですね！