Custom GPTを使い爆速15分でApple Watchのオンラインマニュアルを作る

## はじめに
**人のすなるCustom GPTといふものを、我もしてみむとてするなり**。

土佐日記風にはじめてみましたが、要はみんなが大騒ぎをしているCustom GPTを自分でも試してみたという話です。
この1年のAIの進化というのは、本当にすさまじく、「革命的な進化」みたいな言葉も、もう食傷気味です。ネット上で、Custom GPTで大騒ぎしてるのを最初見たときは、「また、みんな大げさだなあ」と思っていたわけですが、試しに自分で触ってみて認識が変わりました。

**確かにこれは凄い**です。

この驚きを共有するため、私が15分でつくったチャットを皆様にもお見せします。

※　多分使えるのはChat-GPT plusの契約をしている方だけのはずと思います。

https://chat.openai.com/g/g-OiDaZfKiJ-apple-watch-maniyuaru

実際のやりとりの例を示すとこんな感じです。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/d77ee055-dee5-9496-e52b-d0d1cb7d3293.png' width=800>

レスポンスに多少時間がかかるのが玉に瑕ですが、返答文章のクオリティは無茶苦茶高いです。
このオンラインマニュアルがどうやって15分でできたのか、皆様と共に追体験していこうと思います。

## テーマ設定

こういうことを試す場合、どのようなテーマを選ぶかが、地味に重要だったりします。
ちょっと考えて格好の題材を思いつきました。**Apple Watch**です。
会社からメタボ対策で支給されたFitbitが壊れて以来、ずっと購入を検討していたのですが、約2ヶ月前、Series 9に最新機能が入ったとの売り文句もあり、満を持して購入したわけです。
しかし、業務多忙のため(言い訳)、十分に使い方を研究できていません。
唯一？マスターした文字盤の変更を、家族に自慢して見せたところ、「たったこれだけのためにあんな高いお金出して買ったの？意味わかんない。」と逆にツッコまれたりしました。じっくり研究して、家族にリベンジする必要があったのです。

こんな背景から「**そうだ、Apple Watchのオンラインマニュアルを作ろう**」と思ったわけです。

これなら、自分で本当に活用できそうだし、目的が一般的なので、他の人の役にも立つかもと考えたのです。

# データ収集
Custtom GPTの典型的な利用方法としては、既存のPDFなどの資料をアップして、これをベースにしたQAシステムを作るということのようです。なので、今回の目的の場合、 Apple Watchの詳細なマニュアル的なPDF文書があればよいわけです。
想定外のこととして、この入手が意外に難しかったです。

「apple watch マニュアル pdf download」あたりをキーワードにググってみたところ、ヒットするのは下記のサイトあたり。Webのオンラインマニュアルしか見当たらず、目指すPDFファイルがリストにないのです。

https://support.apple.com/ja_JP/manuals/applewatch

https://support.apple.com/ja-jp/guide/watch/welcome/watchos

Webのオンラインサイトがわかりにくいので、自分でつくろうとしたところが今回の出発点なので、これではうまくいきません。
(Custom GPTではWebのクロール機能がまだないことを前提にしています。もし、これもできるということなら話は変わってきます。)

せっかくのアイデアもここまでかと思いかけたのですが、ダメもとで、PDFファイルの所在自体をChatGPTに質問してみることにしました。
そのときのやりとりの記録がこちら。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/fa1b0de7-67e5-5775-f4aa-b5799d64bbe3.png' width=600>

なんで日本語で聞いているのに英語で答えるのとか、細かいツッコミはありますが、彼(ChatGPT)はPDFのありかをちゃんと知っていました。
教えてもらった下記URLをブラウザで指定したところ、めでたく欲しかったPDFがゲットできました。

https://help.apple.com/pdf/watch/9/en_US/apple-watch-user-guide-watchos9.pdf

しかし、まだ2点課題があります。
1つは、英語のマニュアルであること、もう1つは、Watch OSのバージョンが最新の10でなく、1つ前の9であることです。
後者の問題に対応するため、上のURLの「9」の2カ所を「10」に置き換えてみます。

https://help.apple.com/pdf/watch/10/en_US/apple-watch-user-guide-watchos10.pdf

うまくいきました。

最初の問題ですが、上のリンクのen_USをja_JPに置き換えるとか、Chat-GPTに日本語のマニュアルはないか質問するとか、いろいろ試してみたのですが、見つかりませんでした。
どうやら、PDFのマニュアルは英語版しか存在しないようです。
しかし、これであきらめる必要はありません。Chat-GPT自体、相当高度な翻訳機能を持っており、日本語への翻訳は、指示を出して彼(ChatGPT)にまかせればいいはずです。
こういう方針で先に進めることとします。


## 検索アプリ構築
実のところ、AI系タスクで一番大変なのはデータ準備の部分です。
前章でこの問題がクリアできたので、ここまでくれば目指すアプリはほぼできたも同然です。
特に今回利用したCustom GPTは**究極といっていいくらいシンプルな開発の仕組みを持っていて**、本当に10分くらいで、アプリができてしまいます。
手順も短いので、ここは丁寧に解説していきたいと思います。

前提はOpenAIでChatGPT plusの契約(月3000円程度)をしていることです。

### Custom GPT作成初期画面まで

ChatGPTトップページ

https://chat.openai.com/

で、左のメニューからExploreを選択します。


<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/5db7157f-83fe-d8ef-8eac-836410a3d917.png' width=800>


一番上に「My GPTs」「Create a GPT」が出て来るはずなので、これを選択します。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/614f2579-039a-1346-4ef3-476ff0834f63.png' width=800>


下のような画面が出てくれば、GPT作成が可能な状態です。

 <img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/174fec7d-4097-b8df-7067-0d38e72fa086.png' width=800>

### アプリ構築
構築の画面では、「Create」と「Configure」の2つのタブが用意されており、デフォルトでは「Create」の方が選ばれています。おそらくここが簡易チャットみたいな作りになっていて、質問に順番に答えていくと、アプリ構築に必要な情報が得られる仕組みと想像されます。
こういうことを初めて試すユーザーには優しいインターフェースなのかもです。
しかし、ずっとITやってきた自分にとっては、かえってわかりにくいです。なので、下の画面で「Configure」のタブを選択しました。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/5afee502-6437-9c6a-a158-fcdce20c496a.png'>

すると、下のような画面になります。ここから先の正しい記入方法はよくわかっていないわけですが、とりあえず冒頭で紹介したアプリでどのような設定をしたかを紹介していきます。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/62189873-8a45-5f6b-a56e-64adf79df6a4.png' width=800>

####  Name
チャットの名称を入れる欄です。今回の目的から、下記の値を入れました。

```
Apple Watch マニュアル
```

#### Description
チャットの簡単な説明を入れます。次のようにしました。

```
Apple Watchの使い方を日本語で解説します
```

#### Instructions
バルーンヘルプの記載は以下のとおりで、チャットに対する指示、つまりプロンプトにあたるものを記載する項目と理解しました。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/4dc9a26c-bfe6-a62f-72a7-c3ba15ce6e8c.png' width=400>

そこでPDFマニュアルの英語の記述を日本語に翻訳して欲しいという指示をここに書いてみました。
使い方として正しかったかどうかまで、よくわかっていませんが、結果的に意図した動きになっているので、結果オーライかなと思っています。

```
質問に対して添付のPDFから情報を検索し、日本語に翻訳した結果を返してください
```

#### Conversation starters
CHATから提示する最初の言葉を記述します。今回は、以下のようにしました。

```
Apple Watchの使い方を何でも聞いて下さい！
```

#### Knowledge
事前に入手したPDFをここにアップします。
下記の「upload files」ボタンを」クリックしてPDFファイルを指定します。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/012f1b27-9fdc-7693-ee83-c6c66e10d5ae.png' width=800>

#### それ以外の設定
その先の細かい設定は、チェックの付け方だけなので一気に説明します。

これでいいのか、一部わからない部分もありますが、とりあえず私のつくったサンプルアプリでは下記の設定としました。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/f9fc5f32-0a38-b046-df29-6b40c3427564.png' width=800>

#### テスト
設定が一通り終わったらテストをします。画面右半分のペインがテスト用の機能を提供しています。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/71fe3a77-78c3-d8e5-3d86-c618e423000a.png' width=800>

赤枠で囲んだ領域に質問文を入力し、エンターキーを押して下さい。
下記に試した結果例を示します。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/7c7b879e-e4e2-a9d2-060b-9156971d985e.png'>

いい感じですね。これでよさそうということになれば、アプリを公開しましょう。

#### アプリ公開
アプリを公開する場合は、画面右上のSaveボタンをクリックし、どのモードで公開するかを選択した後、一番下の「Confirm」ボタンをクリックします。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/44815e1f-10f8-8a20-a818-a2c214f03e05.png' width=300>

こんな画面が出てくるはずです。

<img src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206130/01faf295-8a59-c546-9302-f2d95316ac57.png'>

URLをクリップボードにコピーできるようになっており、その結果が当記事の冒頭で紹介した次のリンクになります。

https://chat.openai.com/g/g-OiDaZfKiJ-apple-watch-maniyuaru

なお、データのインデックス化？に時間がかかるのか、アプリの画面から質問する場合、デプロイ直後は答えられるはずの質問に答えられないケースがあったので、その点はご注意下さい。2，3時間程度待ってから使った方が確実かと思います。

## おわりに
ということで、私も早速このChatを活用し、Apple Watchに急速に詳しくなりつつあります。
事前に動作確認もした上で、家族に「ダブルタップジェスチャー」を実演しようとしたのですが、残念なことに操作がうまくいかず、本番デモが失敗に終わってしまいました。。。
これは別問題なので、修行を積んで出直すことにします。