見出し画像

(プログラミング不要)AlexaのChatGPTスキルを作成する方法

概要

プログラミングなしでAlexaのChatGPTスキルを最速で作成する方法についてまとめました。

事前準備を除き、約10~20分で作成することができます。

なぜ自作?

既存のAlexaスキルを利用した場合、自身のChatGPTのAPIキーを利用できないため月に数回しか無料で使用できないためです。
また、会話の履歴を保持して回答が得られなかったり、応答エラーが頻発するなどの問題があります。
さらに自作することで、最新の言語モデルにも簡単にアップデートできます。

よくある問題点への対応

本記事の作成方法では下記の問題にも対応しています。

  • 会話のやりとりを踏まえた応答が返ってこない
    →会話の履歴を保持することで会話の流れを踏まえた回答が得られるように改善

  • 頻繁に応答エラーとなる
    →ChatGPTの応答時の文字数を制限することで緩和

  • 無料枠では月に数回しか使用できない
    →利用者自身のAPIキーを利用することでChatGPTの使用上限(1か月あたり最大1万5000回)になるまで使用可能

  • 最新の言語モデルを使用できない
    →最新のChatGPT4にも対応

  • IFTTTやmakeなどの自動化ツール(iPaaS)不使用
    →作成までの知識やアカウントの作成を最低限に抑えることができる

AlexaでChatGPTを使う場合の問題点

Alexaは8秒以内に回答を用意できない場合にエラーとなる制限があるため、ChatGPTの応答が遅い場合にエラーとなります。
そのため、AlexaとChatGPTとの相性は良くありません。
応答時の文字数制限をかけることで、応答エラーを緩和することはできますが、完全になくすことは現状ではできません。

事前準備

AlexaとChatGPTの連携に必要な下記の2つのアカウント(どちらも無料)を事前に取得して下さい。

Amazon Developer アカウント

アレクサにスキル(今回であればChatGPTとの会話アプリ)を登録するために必要なアカウントです。
Alexaを利用しているAmazonアカウントで登録して下さい。
https://developer.amazon.com/ja/

Open AI アカウント

Chat GPTを利用するために必要です。
https://platform.openai.com/signup?launch

以降では、AlexaとChatGPTを連携させるための手順を解説していきます。
連携できれば、Alexaとの会話が楽しめるようになるので、頑張りましょう!

スキルの登録(約4~7分)

Alexa Developer ConsoleでAlexaの新規スキルを登録します。
Amazon Developerにログインした状態で下記のリンクを開いてください。
https://developer.amazon.com/alexa/console/ask

1.スキルの作成ボタンを押す


画像

2.必要な情報を設定して次へ

スキル名:チャット
プライマリーロケール:日本語

画像

3.必要な情報を入力し次へ

エクスペリエンスのタイプ:ゲーム&トリビア
※それ以外はそのまま

画像

4.スキルをインポート

「スキルをインポートボタン」を押して、表示された画面のテキストボックスに下記のURLを指定し「インポート」ボタンを押す。
https://github.com/Eito-H/AlexaGPT.git

画像

5.スキル完成

下記の画像のような画面が表示されれば、ChatGPTのスキルが完成となります。

画像

スキルの設定(約4~7分)

1.APIキーの取得

ChatGPTを利用するために必要なAPIキーを取得します。
Open AIにログインした状態で下記のリンクを開いてください。
https://platform.openai.com/account/api-keys
①「Create
 new secret key」を押す
②Name(My Test Key)は空のまま「Create secret key」を押す
③表示された文字列をコピーする

画像

2.APIキーの設定

作成されたスキル画面の上部からコードエディタタブを選択して、エディタ画面を開きます。

画像

key.jsを開きます。

画像


module.exports.OPEN_AI_KEYの「ここにAPIキーを入れる」と書いてある部分を先ほどコピーしたAPIキーに置き換えます。

3.デプロイ

設定を反映させるために、画面右上にある「デプロイ」ボタンを押します。
数秒待つと画面右下に「デプロイが完了しました」と表示されます(表示はすぐに消えます)。

テスト(約2~6分)

以上で、ChatGPTを利用するためのAlexaスキルが完成しました。
Alexa Developer Console上でテストできるので、試してみましょう。

1.テストタブを開き、非公開→開発中にする

画像

2.「チャット」と入力しEnterを押す

画像

3.質問を入力しEnterを押す

画像

4.応答が返ってくるか確認する

画像

以上でテスト終了となります。
Amazon Developerアカウントと同じアカウントで登録しているAlexa端末であれば、すでにChatGPTを利用できるようになっているので、試してみましょう。

補足

GPT-4を利用するには

本記事の連携では「gpt-3.5-turbo」という言語モデルを利用していますが、最新のGPT-4にすることで、より正確な回答が得ることができます。
GPT-4を利用するには、2023年6月28日現在「ChatGPT Plus」という有料版に契約する必要があります。
有料版では応答速度が速くなるため、Alexaがタイムアウトとなる頻度も減少します。

AlexaをGPT-4に変更するには、key.jsのmodeの個所を「gpt-4」に置き換えて下さい。

応答エラーとなる場合の対処方法

Alexaは応答時間が8秒以内という制限があるため、ChatGPTからの応答が長いとエラーになることがあります。
頻繁に応答エラーとなる場合は、文字数制限を厳しくすることで改善される場合があります。
key.jsのsystem_messageの個所を「30文字で答えて。」などに変更して下さい。

関西弁など話し方を変えるには

keys.jsのsystem_messageに「関西弁で」などと追加することで、話し方を変えることができます。
ただし、応答速度が遅くなり、応答エラーの頻度が増える可能性があります。

いいなと思ったら応援しよう!

ピックアップされています

ChatGPT 記事まとめ

  • 6,325本

コメント

3
kananova
kananova

プログラムの作成と公開ありがとうございます。手順通りにやってみたのですがうまくいきません。手順通りにコピペ、openAIからのキーも取得し設定などしたのですが動かず、、、自分で色々調べたところ「スキル呼び出し名」の設定をしてなかったなと気づきました。

そして「スキル呼び出し名」の設定すると『ようこそ。何が知りたいですか?』と返答が返ってくるところまでは動きました。
しかし「ポケモン は 何 種類 いる」と入力しても『Sorry, I had trouble doing what you asked. Please try again.』と返ってきて反応しません。

何かお力添えいただけませんでしょうか?

イクメン
イクメン

@kananova
私も反応しなくて困っていましたが、コメントの「スキル呼び出し名の設定」が必要なことがわかり助かりました。

具体的にはアレクサのdeveloper consoleにて、ビルド→Invocation Name→ Skill Invocation Nameのところに「チャット」と設定して保存したら反応するようになりました。
保存後は再度デプロイが必要なので忘れないようにしないといけませんね。

応答に関しては、特にエラーは出なかったので大丈夫かなと思います。

みやごし
みやごし

@kananova
お世話になります。
私も同様に『Sorry, I had trouble doing what you asked. Please try again.』の返答がきます。すでに解決済でしたらご教示いただけませんでしょうか。

ログイン または 会員登録 するとコメントできます。
お年玉ポイントキャンペーン noteで記事を買うと 抽選で最大全額戻ってくる 1/9(木)まで 条件・上限あり
(プログラミング不要)AlexaのChatGPTスキルを作成する方法|Eito Hijikata
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1