前提
Difyのバージョンは Dify:0.6.11
Dify:0.6.13
です。
今の最新バージョンで現状できないことをまとめてみました。
いろんな人がXでDifyでできることをあげていってくれていますが、あまりできないことをまとめている人はいなかったのでまとめた次第です。
「探索に時間を費やしたけど結局できなかった...」となる人が少なくなること祈って書いています。
ループ処理の制限
現在のDifyでは、特定の条件を満たすまでループを回す処理の実装が困難です。例えば、Self-RAGのような自己反復型のRAGの実装ができません。
一時的解決策
現状見つかっていないです。実装方法あったら教えてください。
モニタリングツール(LangSmith、Langfuse)との連携 (0.6.12からできるようになりました)
できるようになったので、混乱を与えないため内容は削除しました。
AIモデルの精度評価
Dify上での直接的なAIモデルの精度評価機能が不足しています。ログに対して、「いいね!」とか「よくないね!」とかはつけることができますが、数値的な精度評価はできないと思ってもいいでしょう。
一時的な解決策
- 「いいね!」とか「よくないね!」をつけた後、直接postgreSQLに入って集計とかはできるのでそれをするのが直近はいいかもしれないです。
- 例えば、Google Colabなどで専用のスクリプトを用意し、DifyのAPIを呼び出してRagasなどの評価ツールを実行することで、ある程度の評価は可能です。以下でブログ書いてます。
https://qiita.com/hudebakononaka/items/1d3665223b0715e54890
コードノードのPythonライブラリに制限
Difyのコードノードで使用できるライブラリが非常に限られています。本当はコードノードの中でnumpyやpandasが使いたいのです...
しかし、サンドボックス環境にインストールできるライブラリが少なく、他のライブラリをインストールしようとすると権限エラーが発生します。
一時的な解決策
現時点では、この問題に対する明確な解決策はありません。 しかもサンドボックスはOSSになっていないのでコードを書き換えることすらできません。
最近OSSになったっぽい??
一応こんな方法もあるみたいです。
バージョン管理
バージョン管理できない。更新中は変更時の内容を保持しているが、セッションが変わると消えてしまう。
これはまあまあ辛い。
一時的な解決策
一応DSLのインポート・エクスポートでバージョン管理はできます。例えば、GitHubに手動でアップロードして、タグを売っておくようなことですね。(タグは打たなくてもいいですが)
結構面倒ですよねこれ。もっといい方法があれば知りたい。
ナレッジグラフの実装
現在のDifyではナレッジグラフの直接的な実装が困難です。ここまでナレッジの機能が付いてたらDifyはなんでもできる最高ツールになってしまいますね。
一時的な解決策
外部APIとしてなんか用意したらできそうですが、Difyでやるの範囲を超えていますね。
PDFの直接入力
ワークフローやChatFlowでPDFファイルを直接入力として使用することができません。これめちゃくちゃほしい機能ですね。
一時的な解決策
現在のところ、PDFをナレッジベースに追加する方法しかありません。
この機能の追加は計画されているようですが、実装時期は未定です。
https://discord.com/channels/1082486657678311454/1247812435105026048/1247829544400846858
(できるけど不満)人間の介在を要する処理
人間の介入を必要とする処理のほとんどは実装可能です。
ChatFlowなどで、チャットの内容に基づいてフェーズを変更することは可能ですが、理想的にはボタンベースでの切り替えなどができるとGUIベースで作られている意味を感じますね。
最後に
上記で記載したものはどうにかできないか探ったところなのですが、いまいち実現できませんでした。
今後実装される予定のものもあるので今後に期待ですね。
Xやってるので気になる方はフォローお願いします。
https://x.com/hudebakonosoto