メインコンテンツへスキップ
見出し画像

Dify 1.0にアップデートしてみた ~v0.13から1.1へ~

    こんにちはRcatです。
    こちらの記事で初期のDify_から1度アップデートしましたが、とうとうバージョン1.0が出ましたのでアップデートしようと思います。
    なんだかんだで一番読まれてる記事なのでちゃんと書きます。てか、もう1.1だしちょっと遅いよ…。

    ちなみに本記事はアップデートという形で書いてますが、新規環境に対してデータを移植という形なので、新しく導入する方にも見ていただくことができます。
    その場合、データのコピーだけはスキップしてOKです。

    1回目のアップデートはこちら(一部の作業はこちらの作業を参照します。)

    初回の導入はこちら(もうだいぶ古いので、あんまり見ない方がいいかも。)


    はじめに

    利用規約

    情報や作品の活用時は事前に利用規約をご確認ください。

    コメントについて

    利用規約のガイドラインを確認の上コメントしてください


    概要

    さて、冒頭にも書いたようにアップデートしていきます。
    今回はバージョン13からバージョン1.1へのアップデートです。

    まあ、だいぶ前にメールが来てたんですが、とりあえず動いてるのでいいかなと放置していたんですが、いつも使ってるGeminiのバージョン2.0のAPIを使うにはアップデートしなきゃいけないのでアップデートすることにしました。

    画像

    アップデートのやり方

    最初にアップデートをした時の経験から、ボリュームはコピペでいけると思うので、新規環境に対してデータを移植っていう形を取ります。
    公式の方になんかアップデート用のコマンドとか書いてありますが、実行してもうまくいかないんですよね。

    まずはコンテナを落とす

    まずはすでに起動しているものを一旦終了しましょう。言わずも知れたこちらのコマンドです。

    $cd /SSD/Dify_20241208/dify/docker
    $docker compose down

    どのディレクトリで実行すればいいかわかるようにCDコマンドから書いておきます。参考にしてください。

    新バージョンをダウンロードする

    次に公式から新バージョンを引っ張ってきましょう。
    変更ログをクリックしてギットハブに移動した後、URLを取得します。コードのところからURLをコピーしましょう。

    画像

    次に新しいフォルダを作成して、そこにダウンロードします。
    今回は以下のような感じにしました。新規環境に置換するので、いつのデータなのか分かりやすいように日付を名前にしてます。

    $cd /SSD/Dify_20250321_v111
    $git clone <URL>

    データのコピーと設定の変更

    次に古い環境からチャットボットのデータをコピーしてきます。
    新しい環境の中のドッカーフォルダの中のボリュームの中に入ります。

    そして、管理者権限を持って全てのデータをこのボリュームフォルダにコピーするようにコマンドを打ちます。

    例をあげるとこんな感じ。ハードに使っている人はギガ単位で容量があるので、ちょっと時間がかかります。

    $cd /SSD/Dify_20250321_v111/docker/volumes
    $sudo cp -R /SSD/Dify_20241208/dify/docker/volumes/* ./

    環境設定(ポート番号 セキュリティキー)

    次に1つ上のフォルダに上がると".env.example"というデータがあるのでこれをコピーして書き換えます。
    データを置き換えてしまえばいいかと思ったのですが、ファイルのサイズがだいぶ違うので項目が増えている可能性があるため、今回は書き換えます。

    まずはセキュリティキーですね。クッキーの暗号化に使われてるとか。よくわかんないですが、そのままにしておくのは良くないと思うので変えます。
    秘密鍵の作り方は公式または前回の記事をご確認ください。
    別にローカルでしか使わないからいいんだという方は無視しましょう。

    # A secret key that is used for securely signing the session cookie
    # and encrypting sensitive information on the database.
    # You can generate a strong key using `openssl rand -base64 42`.
    SECRET_KEY=<ここに秘密鍵が入ります。>

    次にポート番号です。自分は80番でホストするからいいんだという人は無視してください。
    ポートを開放していたり、別で使っているという人は変えましょう。

    例えばこんな感じ。これはマイクラとかぶってますね。

    # ------------------------------
    # Docker Compose Service Expose Host Port Configurations
    # ------------------------------
    EXPOSE_NGINX_PORT=25565
    EXPOSE_NGINX_SSL_PORT=443

    以上の箇所を変更したら名前を".env"にして保存します。書き換える前に".example"の部分を消して複製すれば名前を変える手間はないですね。

    一応最終的なフォルダ構成を載せておきます。

    画像

    再起動する

    準備が整ったらDifyを再起動しましょう。
    起動するコマンドは以下の通りです。

    $ cd /SSD/Dify_20250321_v111/docker
    $ docker compose up -d

    最初はセットアップなども入るので少しだけ時間がかかるみたいです。
    完了後、ページをリロードしてみましょう。

    はい、アップデートされました。

    画像

    Geminiを使えるようにする

    今回のバージョン1からの大きな変更はプラグインという形が導入されたことです。
    例えば、各言語モデルの呼び出しAPIなどはプラグインとして外部で管理しているみたいです。そうすることで、今後はDify本体をアップデートしなくても言語モデルのAPIアップデートに対応できるという感じみたいです。
    スマホのシステムアップデートをしなくても、ストアからアプリを入れられるみたいな感じみたいですね。

    トップ画面右上のプラグインから

    画像

    マーケットプレイスを探索
    モデル
    Geminiの順にクリック

    画像

    インストールボタンを押してインストールしましょう。

    画像
    画像

    適当なチャットボットを選んでモデルを確認するとプラグインが適用されていることが確認できました。

    画像

    適当にチャットして確認します。

    画像

    問題なくAPIを呼び出せているようです。
    また、この後既存のサービスを使ってアクセス確認をしましたが、問題なくアクセスできました。
    プラグインという形に変わったからといって、全てのbotの設定を今すぐ直さないといけないわけではなさそうです。

    ただ、Geminiには1.0系のサービスが終了するので、いずれ変えなきゃいけませんが…

    アップデート後ワークフローがエラーになる件

    アップデート完了後、別のボットがエラーで動かないという事態に見舞われました。
    エラーの内容がこちら。
    なんかシステムプロンプとしか入ってないよ、ユーザーメッセージはどうした?って書いてある

    画像

    解決方法ですが、ユーザープロンプトを追加します。
    通常llmを追加するだけだとシステムだけあって、その下には何もないのですが、メッセージを追加ボタンを押すことでユーザーのところが追加されます。
    なので、変動するメッセージの方はこちらに書くようにします。

    画像

    まとめ

    今回はDifyのバージョン1系へのアップデートを行いました。
    公式に書いてあるやり方ではないですが、こういうやり方の方が直感的で手っ取り早いので、私はこんな感じでやってます。
    参考までに。
    それではまたお会いしましょう。


     
     
    モノづくりが趣味。 "売ってないなら自分で作ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワーク 全部やります。 記事執筆はAI不使用。 ご連絡や利用規約はプロフィール記事参照。

    あなたへのおすすめ