なんで変数名わかったんですか?エスパーですか? - Devin観察日記
この記事は後編です。前編はこちら。
前回までのあらすじ
Dify Pluginが発表されたので、Devinに作らせた。しかし署名エラーでDifyにインストールできない。よく分からないまま公式パッケージに申請した。
署名エラーの原因
公式Discordで尋ねたところ、Difyの中の人が回答してくれました。どうやらちょうど署名をスキップするプルリクがマージされたところで、 v1.0.0-beta リリースにも含まれていなかったようです。プルリクが見つかりました↓
というか恐ろしいのは、昨日の時点でそれを知っていたDevinです。
何を見てこのフラグの存在に気づいたのでしょうか? plugins/betaブランチに向けられたプルリクまで見ていたという事でしょうか。ちょっと意味が分かりません。
Difyの中の人に教えて貰った通り、docker-compose.ymlとdocker-compose.middleware.ymlの2つを直接書き換えます。先ほどのプルリクを参考にしました。(ここは人間がやりました。Devinに任せる程でもないので)
無事インストール画面まで辿り着けました!
プラグインのエラー
一発で書いたコードは大抵上手く動かないものです。むしろ動く方が怖い。
プラグインをDifyにインストールすると、「requirements.txtがない」と怒られました。(なるほど、pipが使えるんですね)Devinに対応をお願いしました。
ところが、今度はまた別のエラーが出てしまいます。
パッケージ用のCLIとは別に、ランタイム用のモジュールもあるようですね。僕はエラーを送っているだけなのに、相変わらず理解が早くて助かります。
しかし、Devinが実装→僕が検証、というサイクルは効率が悪いので、やり方を指示してみることにしました。
公式のプラグインリポジトリの実装が参考になると思う
公式のプラグインリポジトリのCIを真似すると良いと思う
僕が言ってるのは誰にでも言えるようなアドバイスですが、Devinにとっては「あ、それやって良いんすね」という感じなのでしょう。本当にCIまで用意してくれました。
しかし、ここまでやってもプラグインのエラーは消せません。こうしている今もDevinは作業を続けていますが、どうも終わりそうにないので、今日はここまでにしたいと思います。
Marketplaceへの申請
実は昨日のMarketplaceの申請方法は間違っていました。@kurokoboさんという方が親切にも教えて下さったのですが、リポジトリを間違えていたようです。
⭕️ https://github.com/langgenius/dify-plugins (3rd party tools)
❌ https://github.com/langgenius/dify-official-plugins (official tools)
dify-pluginsの方は .difypkg だけが格納されたリポジトリで、ソースコードはありません。このくらいなら僕にも出来るので、Pull Requestの作成は僕の仕事とします。
今回、1万円以上かけてプラグインの作成に挑みましたが、動くものは未だ作れていません。今後の反省を書き残しておこうと思います。
ゼロベースで作らせるのではなく、最初から動くテンプレを与える
早い段階でテストやCIを整備して、フィードバックループを回させる