
Difyのプラグイン?ってやつが出たらしいんですが、作れますか? - Devin観察日記
今日は、CosenseのDifyプラグインをDevinに作って貰ったんだと思います。多分。ちなみにこれは前編です。
そもそもDifyプラグインとは何でしょうか?実は、僕もよく分かりません。一昨日くらいにリリースされたらしいです。ダメ元でDevinに作ってみてと頼んだら、一晩で作ってくれました。

プルリクが出来ました。これがDifyプラグインだそうです。Pythonのコードで実装されているようです。
プラグインが出来たはいいものの、どうやったら動かせるのかが分からず、マージしてしばらく放置していました。翌日、Dify Marketplaceが正式ローンチされると、公式ドキュメントが色々と増えていました。
どうやらCLIツールを使ってパッケージングするようです。
早速、Devinにリリース準備を頼んでみます。

この日記を毎日読んでくれている方は、もうDevinの優秀さに慣れすぎて驚かなくなっていると思いますが、これは人間のプログラマーと比べてもかなり優秀な方だと思います。参考までに、僕も手元のmacOSで同じことをやっていたのですが、僕がCLIのセットアップを終えるのと同時にDevinはリリースを完了したので、僕は匙を投げました。
もう全部Devinに任せることにして、リリースのCIも用意して貰いました。

というわけで、無事 .difypkg ファイルが手に入りました。
動作確認の方が難しい
このプラグインをどうやってインストールするのか調べていたところ、全然分かりません。どうやら v1.0.0 からサポートされたようですが、クラウド版のDifyは v0.15.0 なのです。


つまり、今日時点でプラグインを試すには、Difyをセルフホストするしかありません。というわけで、Difyをセルフホストしました。
セルフホストの過程は特に面白みもないので省略します。Zennのスクラップを書いたので、GCEにデプロイしたい方はどうぞ。とはいえ、全部ChatGPTに教えて貰ったので、皆さんもLLMに教わる方が良いと思います。というかこれもDevinにやって貰えば良かったなと後悔しました。

2 vCPU / 2GB RAM という最小構成なので、全体的にもっさりしている気もしますが、動きます。
いざインストール
Install Pluginを押して、インストールを試みます。が、、、

署名エラーでアップロードに失敗してしまいます。そもそも署名なんてしていませんから、当然ですね。
Difyに頼んだら、いい感じに署名してそうなプルリクが出てきました。そんなのドキュメントに書いてあったっけ?と思いつつ、試してみます。

ところが、先ほどと全く同じエラーが出て失敗してしまいます。
そもそも署名なんて不要です。しかし色々探しましたが「署名を不要にする設定」が分かりません。Difyの環境変数だと予想して .env.example なんかも眺めてみましたが、それらしいフラグは見つかりません。
Devinは「FORCE_VERIFYING_SIGNATURE」だと言うのですが、追加しても何も起こらないし、そもそもコードベースの検索に引っかかりません。夢を見ているのでしょうか。
とりま申請してみる
埒が明かないので、とりあえずこのままMarketplaceに申請してみることにしました。申請は、なんとGitHubのPull Requestで行うようです。本当にこれであってるのか?と疑いつつ、とりあえず出してみました。あとはレビューを待つのみです。
という訳で、今日はこれでおしまいです! 進展があれば後編も書くかも。
追記
ついにDevinの紹介キャンペーンが始まりました!🎉
以下のリンクからDevinを契約すると、+100 ACUs ($200) が貰えます。会社で契約する方も、個人で契約する方も、お得なのでぜひご利用ください。
(HackforPlayというのは私の会社の名前です)