ChatGPT plugins quickstartを動かす方法(2023年6月5日時点)
ChatGPT pluginの開発のまず第一歩として、公式ドキュメントでも紹介されている「plugin quickstart repo」を動かしてみたんですがいくつかつまづきがあったので解決方法を書き残します。2023年6月5日時点のものなのでいずれ解消されるでしょう。
👇公式ドキュメント
👇リポジトリ
5分でできる(できない)
リポジトリのREADMEには
Get a todo list ChatGPT plugin up and running in under 5 minutes using Python.(Pythonを使って5分以内にTodoリストChatGPTプラグインを立ち上げ、動作させる。)
なんて書いてありましたが、全然5分ではできませんでした。笑
基本的な手順についてはリポジトリのREADMEに従います。そこの説明は割愛。引っかかったポイントだけ。
pythonコマンドが存在しない
これは単に私の環境の話ですが。
python main.py
というコマンドを実行するように説明がありますが、
% python main.py
zsh: command not found: python
と、pythonコマンドがないよ、と言われます。
私の環境では python
はないが python3
はあるので
% python3 main.py
で実行しました。
解決。
ローカルホストのマニュフェストの読み込みに失敗する
READMEの5番で localhost:5003
を設定してマニュフェストファイルを読み込みに行くように指示されていますがここでコケます。
Failed to fetch localhost manifest. Check to ensure your localhost is running and your localhost server has CORS enabled.
CORSの問題だ、と言われてますね。フォーラムにもいくつか立ってますが、根本的な解決はされていないようです。
ngrokを使う
根本的な解決が今の所されていなそうなので、localhostを諦めて、コメントにあった ngrok
を使った解決にしました。
ngrokはものすごくざっくりいうとローカルで立ち上げたサーバーをネット上に公開できるツール/サービスです。
👇ngrok公式
👇インストールの日本語説明 👇macでのインストールngrokを使って localhost:5003
をグローバルに公開します。何かのホスト名が割り当てられます。
※ ngrokの無料アカウントだと、アクセス確認画面みたいなやつが邪魔するので、多分課金しないといけないです。
※ ちょっと解りづらい可能性があるのが、そのアクセス確認画面みたいなやつが挟まってしまっている時も下記のJSONのパースエラーが出るので(JSONじゃないから)そこですかね
JSONがパースできない
Could not parse manifest as JSON: Expecting property name enclosed in double quotes: line 13 column 5 (char 442)
ai-plugin.json
のJSONにミスがあってパースができないので修正します。
👇参考
ホスト名が違う
API URL http://localhost:5003/openapi.yaml is not under https://a0216217e071.ngrok.app
.well-known/ai-plugin.json
と openapi.yaml
にそれぞれ http://localhost:5003
という記述箇所があるので、そこをngrokのホストに書き換えます。
./well-known/ai-plugin.json
openapi.yaml
Discussion