🐈

ChatGPT plugins quickstartを動かす方法(2023年6月5日時点)

2023/06/05に公開

ChatGPT pluginの開発のまず第一歩として、公式ドキュメントでも紹介されている「plugin quickstart repo」を動かしてみたんですがいくつかつまづきがあったので解決方法を書き残します。2023年6月5日時点のものなのでいずれ解消されるでしょう。

👇公式ドキュメント
https://platform.openai.com/docs/plugins/introduction

👇リポジトリ
https://github.com/openai/plugins-quickstart

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の問題だ、と言われてますね。フォーラムにもいくつか立ってますが、根本的な解決はされていないようです。

https://community.openai.com/t/failed-to-fetch-localhost-manifest-message-but-plugin-working-fine/224846

https://community.openai.com/t/got-problem-when-test-plugin-in-local-environment/215949

ngrokを使う

根本的な解決が今の所されていなそうなので、localhostを諦めて、コメントにあった ngrok を使った解決にしました。

ngrokはものすごくざっくりいうとローカルで立ち上げたサーバーをネット上に公開できるツール/サービスです。

👇ngrok公式
https://ngrok.com/
👇インストールの日本語説明
https://qiita.com/mininobu/items/b45dbc70faedf30f484e
👇macでのインストール
https://qiita.com/miriwo/items/8c1e6550a5ab279d60b5

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にミスがあってパースができないので修正します。

👇参考
https://community.openai.com/t/error-on-plugins-quickstart-failed-to-fetch-localhost-manifest/185153/5

ホスト名が違う

API URL http://localhost:5003/openapi.yaml is not under https://a0216217e071.ngrok.app

.well-known/ai-plugin.jsonopenapi.yaml にそれぞれ http://localhost:5003 という記述箇所があるので、そこをngrokのホストに書き換えます。

./well-known/ai-plugin.json

openapi.yaml

完了

Discussion