GTP-3のAPIでSiriを高性能にしたSiriGPTをiPhoneのショートカットアプリで作成してみた
昨日、以下のツイートを見つけて、大変驚きました。何と、iPhoneのショートカットを使ってChatGPTと会話し、ChatGPTがホームアシスタントのように家の内外の照明やサーモスタットや床暖房を操作しているのです。
実は、照明や電気器具などを操作することは、現在のiPhoneのSiriでも、Homekitアプリを操作して実行することができます。しかし、今回の場合は、ChatGPTが会話の中で何をすればよいかを判断して、とてつもなくスマートに実行しています。
なお、ここでChatGPTと言っているのは、厳密には、ChatGPTのベースになったGPT-3のAPIを利用したChatGPTクローンです。
この記事を見て、電気器具の操作まではやらなくても、少なくとも、iPhoneのショートカットアプリを使って、ChatGPTと音声で会話できるようにしたいと思いました。
1.SiriGPTの概要と操作方法
最終的には、以下のような感じになります。ショートカットに、SiriGPTという名前を付けました。ショートカットを単独でホーム画面に置くこともできます。
SiriGPTと書かれたショートカットのバナーやアイコンをクリックすると入力画面が現れます。質問などの入力は、右下のマイクのアイコンをクリックして音声で入力することもできますし、テキストで入力することもできます。
入力終了後に完了ボタンを押すと、以下の画面に切り替わります。ここで完了ボタンを押すと、iPhoneが内容を読み上げてくれます。
実は、これはチャットボットではなく、GPT-3のシステムそのものなので、最後に「?」マークを入れるなど、明確に質問だと分かるようにしないと、対話の形になりません。普通に文章の途中まで入力すると、続きの内容を出力してくれます。
2.SiriGPTの作成方法
ショートカットアプリを開くと、次のような画面になります。
右上の「+」マークをクリックすると、新しいショートカットを追加することができます。次のページでアクションを追加して、ショートカットを作成していきます。
最終的に、SiriGPTのショートカットの内容は以下のようになります。
① 最初に音声でテキストを要求します。実際には、1.の画面で見たとおり、テキストで入力することもできます。
② 次に、「https://api.openai.com/v1/completionsの内容を取得」で、表示されたURLにアクセスして、自分用のGPT-3のAPIキーを取得します。
予め、OpenAIのサイトにログインして、APIキーを入手しておいてください。以下のOpenAIの画面右上のPersonalのドロップダウンリストから「View API keys」に入り、「+Create new secret key」をクリックすると、「sk-」で始まるAPIキーを入手できます。
③ URLの内容を取得の項目では、以下の図のように必要事項を入力する必要があります。
④ ここで、次の必要事項を入力してください。
・方法で「POST」を選択。
・ヘッダに「Authorization」と「Bearer sk-xxxxx…」 (sk-xxxx…は予め取得しておいたAPIキー)を入力。
・本文を要求で「JSON」を選択。
・本文を要求1つ目に「prompt」を入力し、変数として「指定入力」を選択。
・本文要求2つ目に「model」と「text-davinci-003」を入力。
・本文要求3つ目に「max_tokens」と「1000」を入力。これで、使用するトークンを上限1000までに制限できます。APIの利用は有料(davinciモデルは1000トークン当たり0.02ドル)なので、使い過ぎないようにする必要があります。
⑤ 次に、choicesから辞書を取得します。この辞書の中にテキストの形でGPTの回答内容が入っています。「choices」を開いて、以下の図のとおり必要事項を入力してください。
・種類で「辞書」を選択し、「辞書」にチェックし、一番下の欄に「choices」と入力します。
⑥ 次に、textを表示させます。このtextがGPTの回答内容です。音声のみの対話であれば、実は、text表示は不要ですが、内容を確認するために入れています。不要なら、この項目は削除してもらって構いません。「text」を開いて、以下の図のとおり必要事項を入力してください。
・種類で「辞書」を選択し、「辞書」にチェックし、一番下の欄に「text」と入力します。
⑦ 最後に、textを読み上げさせます。ここも「text」を開いて、⑥と同じように、種類で「辞書」を選択し、「辞書」にチェックし、一番下の欄に「text」と入力してください。
以上で、SiriGPTの作成は終了です。画面右下の▶マークをクリックして、SiriGPTを起動することもできます。
現在のところは、1回対話するごとにシステムが終了して、また起動するようになっています。これは、今後改善していきたいです。
また、GPTに対して事前に、キャラクター設定や口調をテキストで提示しておくことにより、面白いキャラクター相手のチャットシステムなども実現できそうです。
ちなみに、自分でも実際にやってみましたが、設定が難しくて、なかなかうまく動作しません。頑張れば面白いものができそうなので、プログラミングに詳しい人が色々と開拓してくれるとありがたいです。
この記事が気に入ったらサポートをしてみませんか?