Closed3
Difyのバージョン管理について考えてみる

目的
- Difyをサービスに組み込むときのCI/CDをどうするか問題を解消するため調査をしたい
- 現状はローカル開発を想定していないので、クラウド上で修正をした時にバージョン管理をできるようにできるか調べたい
- ある程度方向性が決まれば目的達成
対象読者
- 生成AIを日頃触っている方
- Difyの基本を理解している方
- プロダクトにDifyを導入している方

調査内容
Dify側で制御する手法はなさそう
DifyCloudをメインで使用している場合、Dify側でバージョンを制御できる手法は現状ではなさそう(2025/02/24時点)
→ クラウドサービスでトラフィックを管理するイメージ
基本的にAPIキーが一つ発行されて、それをクライアントから叩くのがDifyのAPI機能なので、それ以外でどうやって自動化するかを考えるのが良さそう
ローカル開発を視野に入れていく感じがやっぱりいいのかな

デプロイフローを考えてみる
DSLを手動でインポートする
Difyの機能として、ワークフローの定義(DSL)をインポート、エクスポートできるのでそれを利用する。
DSL自体はyamlで書かれているので、リリースしたいDifyのアプリがあればそれを本番環境にインポートする、というワークフローを組む。
DifyCloudで開発しているので、あくまで手動となるのが難点。
流れとしては以下のようなイメージ
- 本番と開発用のDifyAppを、DifyCloud上に2つ用意する
- 開発用を本番にリリースする時、開発用のDSLをエクスポートする
- 開発用のDSLを本番にインポートしてリリース完了
ミニマムではこの手法でも問題ないと思われるが、人が介在することのミスや、バージョンを気軽に戻せないので、プロダクトとして実際に運用していくとなると結構大変かも。
このスクラップは3ヶ月前にクローズされました