Closed3

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

OsamuOsamu

目的

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

対象読者

  • 生成AIを日頃触っている方
  • Difyの基本を理解している方
  • プロダクトにDifyを導入している方
OsamuOsamu

調査内容

Dify側で制御する手法はなさそう

DifyCloudをメインで使用している場合、Dify側でバージョンを制御できる手法は現状ではなさそう(2025/02/24時点)
→ クラウドサービスでトラフィックを管理するイメージ

基本的にAPIキーが一つ発行されて、それをクライアントから叩くのがDifyのAPI機能なので、それ以外でどうやって自動化するかを考えるのが良さそう

ローカル開発を視野に入れていく感じがやっぱりいいのかな

OsamuOsamu

デプロイフローを考えてみる

DSLを手動でインポートする

Difyの機能として、ワークフローの定義(DSL)をインポート、エクスポートできるのでそれを利用する。
DSL自体はyamlで書かれているので、リリースしたいDifyのアプリがあればそれを本番環境にインポートする、というワークフローを組む。

DifyCloudで開発しているので、あくまで手動となるのが難点。
流れとしては以下のようなイメージ

  1. 本番と開発用のDifyAppを、DifyCloud上に2つ用意する
  2. 開発用を本番にリリースする時、開発用のDSLをエクスポートする
  3. 開発用のDSLを本番にインポートしてリリース完了

ミニマムではこの手法でも問題ないと思われるが、人が介在することのミスや、バージョンを気軽に戻せないので、プロダクトとして実際に運用していくとなると結構大変かも。

このスクラップは3ヶ月前にクローズされました