ChatGPTの新機能 "GPTs" (GPT Builder) でオリジナルチャットボットを作ってみた

## はじめに
2023年11月7日OpenAIから数々のアップデートが発表されました。

そのアップデートの一つである GPT Builderと呼ばれる新しいツールがあります。
これは、誰でも簡単にカスタムチャットボットを作成できるようにするもので、GPTsと呼ばれます。
GPTsは、ChatGPTを特定の目的に合わせてカスタマイズするための新しい方法であり、ユーザーは独自の指示、追加知識、スキルの組み合わせを持つChatGPTのカスタムバージョンを簡単に作成し、共有することができます。
ChatGPT Plusユーザーなら誰でも無料で使えます。

この記事では自分で細かい設定を行なっていく方法で、チャットボットを作成する手順についてざっと説明します。

## GPTsの画面を開く
画面左の Explore をクリックして、 Create a GPT をクリックします。
![スクリーンショット 2023-11-09 22.18.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/99eb553d-7197-7ccf-82ac-66e1550f029d.png)

Create　と　Configure　の二つの作り方があります。　
今回は　Configure　を選択します。
![スクリーンショット 2023-11-09 22.18.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/1191baf2-66eb-e546-3f92-e3263109d1ef.png)

こちらが　Configure　の設定画面。
![スクリーンショット 2023-11-09 22.23.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/acf484f0-94a5-263b-c53d-c346d3506461.png)

## Configure の設定
![スクリーンショット 2023-11-10 14.29.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/e5157aec-fc97-8c92-a935-c974f46738ad.png)
### Instructions
ここに前提条件やプロンプトを設定します。
### Conversation starters
最初にユーザーに入力して欲しい文字列を設定します。
設定した文字列のボタンができます。
ユーザーはこのボタンをクリックすると、ChatGPTにその文字列が送られます。
複数、設定することができます。
### Knowledge

独自の情報のファイルをアップロードして、ChatGPTに学習させることができます。

対応しているファイルの形式は[こちら](https://platform.openai.com/docs/assistants/tools/supported-files "Supported files")のドキュメントを参考
今回は自社で開発・販売しているLINE予約システム「きずな」のQ&Aサイトのデータを、CSVにダウンロードしたファイルをアップロードしました。

### Capabilities
三つの機能を使用することができます。
- Web Browsing : インターネットに接続して情報を取得
- DALL·E Image Generation : DALL-E で画像生成
- Code Interpreter : コードインタープリター。**ファイルをアップロードした場合は必ず有効にする。**
(2023.11.11追記)PDFファイルだけなら、コードインタープリターは無効で動きます。

## 作ったチャットボットを保存して公開する
公開の種類は３種類
- Only me : 公開せず、自分だけでつかう
- Only pepple with a link : リンクを知っている人なら使える
- Public : 2023年11月末にリリース予定のGPT Storeで公開する

![スクリーンショット 2023-11-10 14.14.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/8c18385e-7524-00b6-b895-ee51a47bd326.png)
Only pepple with a link : リンクを知っている人なら使えるで公開すると、公開リンクがコピーできる。このリンクを使って欲しい方と共有します。
![スクリーンショット 2023-11-09 22.47.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/2cd20ac8-6e56-0714-c25f-df0c41787ccb.png)
リンクをブラウザで開いた画面。
ChatGPT Plusに課金しないと共有されたチャットボットが使えないようです。
Requires ChatGPT Plus : ChatGPT Plusの課金が必要
![スクリーンショット 2023-11-10 13.29.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/d5cbc602-23ca-c7b8-65f6-3bc21729bb88.png)

## 作ったチャットボットを試してみる
作ったチャットボットは画面左側のメニューに追加されます。
![スクリーンショット 2023-11-10 14.48.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/136a98c5-96dc-e274-88bb-739999958121.png)

![スクリーンショット 2023-11-10 14.49.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/73ae60ee-b358-0508-f301-328acd67ba5f.png)

チャットボットを使った会話は、画面左のメニューの履歴に記録されます。
![スクリーンショット 2023-11-10 14.49.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/fde24e32-3320-587e-f2c8-54158c08c1b8.png)

## アップロードしたファイルに検索しているかみてみる
Analyzingと表示されるとアップロードしたデータを検索しています。
![スクリーンショット 2023-11-10 13.37.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/054bc134-69db-3187-93d4-2825ee5253d3.png)
チャットボットの回答が表示された後、赤枠で示したアイコンをクリックすると、検索した内容をみることができます。
![スクリーンショット 2023-11-10 13.37.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/a0058b63-0cb4-79cf-011b-b88098297018.png)
内部でPythonのコードが生成されて、実行されていることがわかります。
![スクリーンショット 2023-11-10 13.38.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496109/8abe745f-d339-f959-b10c-b8d6edc89531.png)


## 考察
独自データを学習させたチャットボットが、プログラミングなしでかんたんに作れてしまうのは感動です。

このアップデート前に、ベンチャーやスタートアップが同様のサービスを行っていました。
しかし、OpenAIの「巨人」によってこれらのサービスが蹂躙されてしまいますね。

また、プログラミングサイドの話になりますが、LangChainのライブラリをつかって、独自データをChatGPTに学習させていた技術が、これも不要になってしまいます。
→GPTsで対応していないファイルフォーマットの読み込みや、Webページを自動でスクレイピングして学習させるなら、LangChainは有効です。　が、OpenAIの開発スピードを考えると、これも時間の問題でしょう。

アップロードしたファイルにもとづいた回答の精度は、アップロードするファイルの中身に依存しますね。
とりあえず今あるファイルをアップロードできるのはとても便利です。
しかし、回答精度を第一優先にするなら、アップロードするファイルの中にある文字の情報の配置を考える必要があります。
→CSVファイルなら、データの順番とか無駄な空白セルをなくすとか。
→PDFファイルであれば、PDFファイルを作成したソフトや環境に依存。

設定画面の　Action のボタンを押すと、外部のアプリの連携(Function calling)が設定できます。
しかし、一晩で設定画面のレイアウトが、ガラッと変わっていたので、誠意開発中なのかな、と思います。（2023年11月10日現在）

11月末までに、このGPTsで作ったチャットボットが、OpenAIのプラットホーム上で公開、さらには収益化ができるようになります。

プログラミングと縁が遠い人でも、独自のチャットボットを作って、マネタイズするチャンスが到来です。

とはいえ、ChatGPT Plusに課金していないと、公開されたチャットボットが使用できないので、一気にChatGPTやAIが万人にとって身近になるのはまだまだ時間がかかりそうです。

個人的には、AI Assitants　APIでGPTsと同様にチャットボットが作成できるので、これとLINEに連携させれば、LINEを通じて普及が促進されるかな、とみています。

## おわりに

ざっと、書き殴りですが、最後までご精読いただき、ありがとうございました。