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