結論(2024-07-11)
Difyは、これまで一部がクローズドでしたが、2024-07-11 のリリースで、OSS(オープンソースソフトウェア)化されました。 https://github.com/langgenius/dify-sandbox をご覧ください。
以下は古い内容ですが、参考情報として残しておきます
(古い)結論
DifyはOSSをうたっていますが、一部で中身が非公開のコンテナイメージを使っており、完全なOSS(オープンソースソフトウェア)ではありません(2024年5月現在)
詳細
- Difyは複数のDockerコンテナで構成されていますが、利用者が作成したpythonコードを実行するコンテナ
sandbox
は中身が非公開です(→2024-07-11に公開されました)-
https://hub.docker.com/r/langgenius/dify-sandbox からダウンロードできます
-
セキュリティのためとの事ですが、検証できません
- 何かを記録したり、外部に送信したりしているかもしれません
-
GitHubのディスカッション で、「適切な時期が来たら、オープンソース化します」と回答があります
-
弊害
- 使用できるpipパッケージが GitHubのDiscussions で挙げられていますが、それ以外のパッケージを追加できません
- pandasなど使いたいパッケージが使えないのは不便です
- requirement.txtを書き換えるとpipでインストールまではできますが、コード実行時にエラーが出て実行できません
- Dockerfileを作って、
langgenius/dify-sandbox:0.2.1
のイメージに対して、後からpipでインストールしても、pythonコード内でimportする際にエラーが出ます
- pandasなど使いたいパッケージが使えないのは不便です
# Dockerfile
FROM langgenius/dify-sandbox:0.2.1
RUN apt-get update && apt-get install -y gcc
# RUN pip install pandas
RUN python3 -m pip install pandas
# Difyの「ブロック」で追加したコード
import pandas
def main(arg1: int, arg2: int) -> dict:
return {
"result": arg1 + arg2,
}
Traceback (most recent call last): File "/tmp/code/dc8e539b_c2c3_41cc_911c_8532c9f4ecdd.py", line 45, in <module> ModuleNotFoundError: No module named 'pandas' error: exit status 255