前回のChatGPT APIの話について、わざわざツクールMZからサーバ上のPHPスクリプトを経由しているために、かなり遠回りな手法に見えますが、もちろんツクールMZだけで直接ChatGPT APIを叩く事だけなら難しくないと思うのです、が、
ツクールMZでChatGPT APIを直接叩くMZプラグインを作れない理由は、
「プレイヤーにAPIキーがバレる」からです。
なのでAPIに接続するためのスクリプトがサーバ側にシークレットな形で必要になります。
— kotonoha* (@rahaandsary) March 7, 2023
たとえば「いくら利用料金がかかってもOK!」「費用に上限設定をかけてあるので使ってもらって大丈夫」という太っ腹の作者さまが居たとして、ツクールMZ本体のプラグインパラメータあるいは変数内にAPI_KEYを保存しておき、AIと組み合わせたゲームを完成させたとします。
しかしそのままゲームを公開してしまうと、ダウンロード版でもブラウザ版でもそのパラメータを確認することは非常に容易で、沢山の人からAPIキーをあっさりと見られてしまいます。音楽や画像と違ってJavascriptは暗号化出来ないからです。
今回のChatGPT APIに限らず、どのAPIにも言えることで(Googleなどドメインやリファラーで制限をかけられる例もありますが)APIキーは基本、他人に絶対に見られることの無いシークレットな環境に置かれるべきです。
なので、今後もし「ChatGPT APIが動くよー」的なプラグインが公開されたとしても、それが「APIキーを変数やプラグインパラメータにセットする」様なタイプであれば使用は危険です。
プログラムや変数ごと暗号化出来る機能がツクールのアップデートで備わったとしても、暗号が不可逆であることが保証されない限りは使うべきではないと考えます。