メインコンテンツへスキップ
見出し画像

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

    概要

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

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

    Alexa × ChatGPT
    会話の流れを踏まえて会話できるChatGPTのアレクサスキルがなかったので自作してみた。#Alexa pic.twitter.com/vpwGKNFLU4

    — Eito Hijikata@9db (@ryutoway) June 29, 2023

    なぜ自作?

    既存の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に「関西弁で」などと追加することで、話し方を変えることができます。
    ただし、応答速度が遅くなり、応答エラーの頻度が増える可能性があります。

    あなたへのおすすめ