「Difyソースコードリーディング#2 ―Difyの開発環境を起動してみる」を開催しました #もくもくDify

ジェネラティブエージェンツの大嶋です。

もくもくDifyで「Difyソースコードリーディング#2 ―Difyの開発環境を起動してみる」というイベントを開催しました。

dify-mokumoku.connpass.com

アーカイブ動画はこちらです。

youtube.com

Difyのソースコードは以下です。

github.com

今回のポイント

Difyの開発環境の起動方法

Difyの開発環境の起動方法自体は、CONTRIBUTING_JA.md の「インストール」の箇所に書かれている通りの手順でした。

手順自体は少し長めでしたが、まったくエラーに遭遇せず起動できました。

開発環境の起動と、docker/docker-compose.yamlでの起動の違い

補足になりますが、CONTRIBUTING_JA.md に書かれているのは、Dify自体の開発のためのセットアップ手順です。

docker/docker-compose.yaml にもDifyをDocker Composeで起動する手順が書かれていますが、こちらの場合は開発モードではなく、コードを変更しても反映されません。

UIの文言の修正

せっかく開発環境を起動できたので、UIの文言を少し変更してみました。

web/i18n ディレクトリのファイルを編集すると、しっかりUIに反映されました。

設定の変更

昨日のDifyもくもく会で話題になった、チャンクサイズの最大値の変更も挑戦してみました。

チャンクサイズを1000より大きくすると Custom segment length should be between 50 and 1000 と表示されるので Custom segment length should be between で検索してコードの該当箇所を探しました。

最終的にはINDEXING_MAX_SEGMENTATION_TOKENS_LENGTHという環境変数を変更することで、チャンクサイズの最大値を変更できることが確認できました。

コードの該当箇所:https://github.com/langgenius/dify/blob/3e7597f2bd0ff686e7a1ea1972f0421ed0568fbb/api/.env.example#L258

dify-docs

Difyのアプリケーション以外に、dify-docsも少し見てみました。

github.com

こちらはGitBookが使われているようで、マークダウン形式のドキュメントを更新すれば反映されるようです。

translate.py という自動翻訳のスクリプトが置かれていて、このスクリプトの内部ではDifyのアプリケーションを呼び出しているようでした。

dify-sandbox

最後に、dify-sandboxも少しみてみました。

github.com

Go言語で実装されていて、システムコールを制限したりした環境でPythonやNode.jsを実行できるようでした。

詳細までは分からなかったので、またそのうちじっくり読みたいです。

次回のご案内

Difyソースコードリーディングの第3回として、次回はAPIのリクエストからレスポンスまでどんなふうに実装されてるのか読み解いたり、どんなAPIがあるのか見てみる予定です。 ご興味ある方はぜひ気軽にご参加ください。

dify-mokumoku.connpass.com

また、水曜日にもDifyのもくもく会が開催されます。 こちらではDifyの使い方の解説として、テンプレートをみていく予定となっています。 こちらもご興味ある方はぜひ気軽にご参加ください。

dify-mokumoku.connpass.com