chatGPTをアレクサスキルで使う(ただし開発者向け)2023/2/26現在

テクノロジー

はじめに

chatGPTを使ってて、Alexaでこんな回答できればいいのにと思った方がここのページにたどり着いたのではないかと思います。
答えだけ見るのではなく、どんな調べ方したのかとか、見てもらえたらと思います。

それこそAIに教えてもらったら?うまくいかない。

chatGPTやBingに聞いたらこんな感じだったりします。何度か聞くとソースコードも教えてくれます

①chatGPTのAPIキーを取得する
②Alexa Developer Consoleにログインして、新しいスキルを作成する
③スキルの名前やインボケーションネーム(呼び出し方)を設定する
④スキルのインテント(ユーザーの目的)やサンプル発話(ユーザーが言う可能性のある言葉)を定義する
⑤エンドポイント(スキルの処理を行う場所)としてLambda関数(AWSのサーバーレスコンピューティングサービス)を選択する
⑥Lambda関数にchatGPTと通信するためのコードを書く
⑦Lambda関数とAlexa Developer Consoleの間にARN(Amazonリソースネーム)という識別子で接続する
⑧スキルをテストして動作確認する

私の環境ではなんだかんだで、うまく動きません。サーバが応答しないと言ったエラーが起きていまいました。

先行組と後発組で仕様がちがう??私が何かしたかな?

gitHubからベースのソースコード探してみる

世界には私より早く同じようなことを考えている人は絶対いるものでソースコードは公開されています。それを参考にしてみます。AIに書かせてもいいんですけどね。
https://github.com/search?o=desc&q=chatgpt+alexa&s=updated&type=Repositories
これらの中からいくつか覗いてみていい感じにまとまってるリポジトリを探しました。https://github.com/UzzalRahman/chatgpt-skill-alexa
日本語じゃないけど、コードがJSで書いてあるのがなんとなく好きだった。
Alexaスキル開発も始めてなので、私はこのあたりまでで1日かかっています。

open AIの仕様を見る

こちらから見ることができます。
https://platform.openai.com/docs/
特にopen AIのAPIアクセスキーの扱いやらAPIの使い方が全くわからないので、読み解いてみました。

すると?

こっちがAPIの説明文(日本語翻訳済)です。
Just a moment...
こちらがgitHubのコードです。
https://github.com/UzzalRahman/chatgpt-skill-alexa/blob/main/lambda/index.js

左側の説明文では、依頼団体(翻訳後)の項目には、「organization」の項目があるのに、右側のソースコードには無い??
この項目は「複数の組織に属するユーザーの場合、」と書かれているのですが、そんな複数の団体に所属している記憶はないのですが試してみると応答が返ってくるようになりました。

ここからは作り方を画像を中心に。
このスキルは一般公開には全く向いていないので公開する場合はopen aiの規約など確認してから行ってください。
その際、役立ったとか、コメントで良いので一声かけてもらえると喜びます。

コメント

タイトルとURLをコピーしました