Difyのバージョンが v0.6.11からv0.6.12 に上がったので、Kubernetes で運用しているDifyのバージョンアップを行ってみる

Jun 29, 2024, 9:24 AM

2024/06/28 に v0.6.11 がリリースされていました。Difyは本当に素晴らしいアプリですが、不具合もまだまだ多くあるので、バージョンアップしていきます。
前回から2週間ほどでのバージョンアップ。活発で嬉しいです。

最初に

Dify のバージョンアップ中に、1〜2分程度、使用できない時間が発生します。
本番運用中である場合は、お知らせを出すなどの対応が必要です。

インストール方法

まだインストールしていない方、まはたインストール方法について見たい方は
https://microai.jp/blog/f5a4dc47-3244-4e89-ba07-4be01f636baa
を御覧ください

インストール設定ファイルを修正

インストール時に作成した dify-values.yaml を修正しますが、私の場合、v0.6.10 をインストールし v0.6.11 に途中バージョンアップしています。
バージョンアップのログは、以下を御覧ください。
https://microai.jp/blog/56abea8f-4885-4a85-bfe1-182387b76f2b

# nano dify-values.yaml
global:
host: "dify.microai.jp"
enableTLS: false
image:
tag: "0.6.11"
global:
host: "dify.microai.jp"
enableTLS: false
image:
tag: "0.6.12"
に書き換えます。
host: "dify.microai.jp" の部分は、ご自身の環境のものにいてください。

バージョンアップ実行

# helm upgrade dify douban/dify -f dify-values.yaml --debug
実行すると
default                pod/dify-api-5c9c9b59c9-nwshd                                 0/1     ContainerCreating   0              26s
default pod/dify-frontend-8599b488dd-b7q9r 0/1 ContainerCreating 0 26s
default pod/dify-worker-78968f767-9lxqz
この3つが更新されていきました。
このタイミングで、一時的に使用できなくなります

DBをマイグレーション(変更)する

コマンドを実行する対象を探す

# kubectl get pod | grep dify-worker
dify-worker-77d675b4b-tw8kc 1/1 Running 0 85s

実行する対象に対してマイグレーション指示を出し、マイグレーションする

kubectl exec -it dify-worker-77d675b4b-tw8kc -- flask db upgrade

Kubernetes 特有の修正を行う

# helm get manifest dify > dify-custome-0.6.12.yaml
# sed -i 's|http://dify.microai.jp|https://dify.microai.jp|g' dify-custome-0.6.12.yaml
dify.microai.jp の部分は、ご自身のホスト名に置き換えてください、

Milvus 部分の修正

# nano dify-custome-0.6.12.yaml

dify-custome-0.6.12.yaml の中に2箇所
            - name: VECTOR_STORE
value: milvus
このような記載があるので、それぞれの直後に
            - name: VECTOR_STORE
value: milvus
- name: MILVUS_HOST
value: "microai-milvus.milvus.svc.cluster.local"
- name: MILVUS_PORT
value: "19530"
- name: MILVUS_USER
value: "root"
- name: MILVUS_PASSWORD
value: "Milvus"
- name: MILVUS_SECURE
value: "false"
となるように、Milvusの設定を追記します。繰り返しになりますが2箇所どちらも同じ修正を加えてください。

"microai-milvus.milvus.svc.cluster.local"
は、皆様の環境にあわせて書き換えてください。他の項目はデフォルト値です。

設定反映

# kubectl apply -f dify-custome-0.6.12.yaml
で設定を反映させていきます。
これでバージョンアップ完了です。

バージョン確認


上記のメニューからバージョンを確認して 0.6.12 と表示されているかを確認します。

おまけ v0.6.12 の CHANGELOG を流し読み

個人的に興味のあるところだけを斜め読みしてメモしていきます。

新機能 (Tracing)



LangSmith と Langfuse で Difyのワークフロー 内で行われている LangChain の処理内容を見ることができるようになりました。
クライアントに提供する場合などで、不具合のデバッグなどが容易になるためありがたいですね。

新機能(Undo, Redo, Change History)


ワークフロー編集画面で、もとに戻す、やり直す、変更履歴からもとに戻す。の機能が追加されました。こちらも、地味にありがたいです。

新機能 (DSLでの上書き)


今までは、作ったワークフローをDSLでエクスポートして、エクスポートしたDSLを使って、新しいワークフローを作ることはできましたが、すでにあるワークフローを上書きすることはできませんでした。それができるようになりました。
個人的には、あまり使用するケースが思いつきませんが、便利な人にとってはものすごく有用そうという印象。

新機能 (ワークフロー非表示)


プレビュー機能で表示される上記の赤枠の場所の表示・非表示を切り替えられるようになりました。
エンドユーザーに見せたくないときもありますので、これは嬉しいですね。
[2024年6月版] 僕が考える最強のAI (LLM) 関連サービスアーキテクチャ[2024年6月版] 僕が考える最強のAI (LLM) 関連サービスアーキテクチャ
URLを指定するとページからタイトル、本文等の情報を取得するシンプルな本文抽出WEBアプリをgithubで公開しました