見出し画像

Dify が立て続けにv.up---v0.10.0-beta2, beta1, v0.9.1, v0.9.0

はじめに

日本時間の9月30日20時に、v0.9.0がリリースされました、そして、v0.9.1、v0.10.0-beta1、さらに10月1日15時に、v0.10.0-beta2が立て続けにリリースされています。10月3日12時現在、さらなるリリースは無いようです。

これらの内容について、githubのリリースからピックアップし、メモしておきたいと思います。また、いくつか実際の画面等を、注として補記しておきます。

一連のリリース

下記は、Githubのリリースノートのリンク先です。

以下は、上記のGithubのリリースからのピックアップです。
今回は、v0.9.0/1までの補記を加えます。

v0.10.0については、正式バージョンがでてから検討したいと思います。

v0.9.0

🚀 新機能

🔄 検索拡張生成 (RAG)
外部ナレッジAPI:サードパーティのナレッジベースにシームレスに接続できるようになりました

外部ナレッジ ベースにリンクするには、API エンドポイント、API キー、外部ナレッジ ID を指定するだけです。

注-1:ナレッジのメニューに、" 外部ナレッジAPI "というボタンが追加されています。後述します

  • ユーザーのクエリに基づいて外部知識の検索と呼び出しをサポートします。

  • Dify アプリケーション内での外部ナレッジベースの統合を可能にします。

ウェブサイトのクローリング:ウェブサイトのクローリングの追加の代替手段としてJina Reader をサポートするようになりました。これにより、ウェブページの URL が LLM 対応の入力形式に変換されます。詳細については、 「ウェブサイトからのデータの同期」を参照してください。

🧠 モデル

  • Voyage AI : 新しいモデルプロバイダーが追加されました

  • Llama3.2 : FireworksとGroqプロバイダーが利用可能になり、パフォーマンスと多様性が向上しました(注-2;後述)

  • InternLM 2.5-20bQwen 2.5-coder-7bを導入しました (注−3;後述

  • Jamba: 私たちの能力を拡張するもう一つの新しいモデル

  • 新しいNomic埋め込みモデルプロバイダーが導入されました

  • OpenRouterのo1シリーズモデルのサポート

  • DeepSeek-v2.5 がSiliconFlow のモデルプロバイダーとして追加されました(注−3

  • Geminiのストリームが利用可能になりました (注-4;後述)

  • Vertex AI Gemini 1.5 002と実験モデルがサポートされるようになりました (注-4;後述)

🛠️ その他のアップデート

  • Xinference TTS ストリームモード: よりスムーズなテキスト読み上げエクスペリエンスが実現しました

  • Chat、、AgentおよびChatflowアプリケーションで再生成します

⚙️ 機能強化

  • よりシームレスなデザイン体験を実現するSVG出力UXの改善

  • 拡張されたJina Embeddings V3 APIパラメータ (注-5;後述)

  • パフォーマンスを合理化するために、SiliconFlow の古いMistral モデルを廃止しました (注−3;後述

  • pgvectorの最小接続数と最大接続数の設定を追加しました

  • エラー処理の強化: 反復フィルターとエラーログが改善され、パフォーマンスが最適化されました

  • 完全に設定可能なWORKFLOW_環境変数による運用の柔軟性の向上*

  • インフラストラクチャを最新の状態に保つために、ElasticSearch を8.14.x から 8.15.x にアップグレードしました

🛠️ バグ修正

  • ワークフローの反復中に「送信回数の上限に達しました」というエラーを修正しました

  • ヘルプドキュメントのリンクエラーを修正しました

  • iOS TTSストリーム:Safari 17.1以降で完全に機能するようになりました

  • llm_generator.pyの JSONDecodeError を解決しました

  • チャットフローとダイアログ内でメッセージを送信する際のエラーを修正しました

  • 正確なトークン使用のためにSparkのLLMトークン計算エラーを修正しました

  • iOSの埋め込みチャットの問題を解決しました

v0.9.0/1 補記

注-n と記載した各項目について、補記します。
今回は、Macへのインストールの関係上、v0.9.0の内容についてサポートします。
なお、下記で引用している画面は、v0.9.1のものです。

注ー1: " 外部ナレッジAPI "について

v0.8.3でのナレッジの画面を示します。

v0.9.1のナレッジ画面では、下記の赤枠のメニューが増えています。

これをプルダウンしていくと、次が展開します。

これが、リリースに表示されていた画面です。

今回は、ここまで。後で示すJinaとともに、RAGのテストをいずれしたいと思います。

注−2:Llama3.2(Groq)

Groqの画面を示します。

上図の赤枠で囲んだように、今回Metaから発表されたLlama3.2の軽量テキストモデルの1B,3Bとビジョンモデルの11B,90Bが追加されています。API経由です。
Ollama経由だと、Llama3.2 の軽量テキストモデルのみでした。ただし、on PCという違いがあります。
Groqは、独自のプロセッサによる高速処理が売りですので、Ollama版との速度比較もおもしろいかもしれません。

注−3:Qwen2.5-coder他(Silicon Flow)

SiliconFlowのモデルが大幅に増えてます。2つに分けて示します。
まず、前半。

0.8.3で導入されたQwen2.5が使えるようになっています。おそらく現時点でのフルセットかと思われます。
このSiliconFlow経由が、Difyでの本命のように感じます。
次に示すように、多くのLLMが導入されています。特に、中華系のモデルと思われるものが多いようです。
このSiliconFlowと後で示すJinaは、Difyと特別な関係にあるのかもしれません。

この表のトップの、01-ai/Yi-1.5-6B-Chatは、前の表の最後と一緒です。あえて、重ねてます。
Meta、Googleのオープンモデル(赤枠)、Qwen, deepseek, 01-ai/Yi, BAA/bgeなどを網羅しているようです。特に、中華系のモデルをためすなら、ここ、というようになっていくのかもしれません。

注−4:Gemini1.5pro002他(Gemini)

GoogleのGemini系も今回大幅にモデルが増えています。

最新の002と、Latest, という最近のOpenAIのような表記のモデルが使えるようになっています。

注−5:jina-embeddings-v3他(Jina)

jinaのエンベディングモデルは、v2まで特定の言語用に限られており、日本語は、はいっていませんでした。v3では、-enや-deなどの表記がなくなっているので、マルチリンガルになったということのようです。
これについては、現時点では、cohereやOpenAIの最新モデルとの比較ということになろうかと思います。

なお、embeddingモデルについては、RAGとの関係を下記YouTubeで、にゃんたさんが丁寧に説明してくれてます。
以前もご紹介しましたが、再掲します。


その他−1;Open AI

LLM以外のOpenAIのモデルは、下記のようになっています。

その他−2:ComfyUI

前回、リンク先が途切れていましたが、今回つながっていました。
リンク先は、GitohubのComfyUIでした。


その他−3:Apple関連

v0.9.0のバグ修正に、Apple関連の記述が下記のようにさらっとあります。
現時点では、意味がわかっていません。

  • iOS TTSストリーム:Safari 17.1以降で完全に機能するようになりました

  • iOSの埋め込みチャットの問題を解決しました

今回の補記は、以上です。

以下、githubのリリースノートのピックアップです。

v0.9.1

バージョン 0.9.1 をリリースしました。このリリースでは、未解決の問題を解決しました。改善された点について詳しく見ていきましょう。

🚀 アップデートと修正

  • データセットの更新の改良: 不要なパラメータを削除することで、元のデータセットを更新するプロセスを合理化しました。混乱が減り、更新エクスペリエンスがスムーズになりました。

  • Jina経由のウェブページインポート: Jinaを使用してウェブページをインポートする際に問題が発生した場合は、修正が行われました。

  • 内部データセットのリクエストパラメータ: 内部データセットのリクエストパラメータを修正し、データリクエストが適切に実行されるように調整しました。

  • ナレッジノードの取得: パフォーマンスと効率を最適化するために、ナレッジノードでの複数の取得インスタンスを排除しました。

このバージョンでは、舞台裏の歯車がスムーズに回転するように、洗練と安定性を重視しています。次回まで、構築と革新を続けてください。

v0.10.0-beta1

✨ v0.10.0-beta1 の新機能✨

重要

このバージョンはプレビュー専用です。本番環境では使用しないでください。

注:このバージョンは、まだダウンロードしていないので、画面等を示すことができません。

注記

Dify 0.10.0-beta1 を早期アクセスとして提供できることを嬉しく思います。このリリースには、ワークフローと Chatflow でのファイル処理のサポートが含まれており、ユーザーは変数タイプFileを利用してArray<File>、これらの変数を複数のノードに渡すことができます。

🚀 主な特徴

  • ワークフローでのファイル処理:FileおよびArray<File>変数タイプのサポートが追加され、ワー​​クフロー内のさまざまなノード間でのファイルのシームレスな処理と転送が可能になりました。この機能により、Dify で自動化できるタスクの範囲が大幅に拡大します。

  • ドキュメント抽出ノード: ファイルの使用例となる新しいドキュメント抽出ノードを紹介します。このノードは、さまざまな種類のドキュメントをテキストに解析し、さまざまなファイル形式からテキストを抽出してさらに処理できるように設計されています。

  • リスト フィルター ノード: ユーザーが変数を操作しやすくするためにArray、リスト フィルター ノードが追加されました。このノードを使用すると、特定の条件に基づいて配列をフィルター、並べ替え、スライスすることができ、ワークフロー内の配列型データの制御が強化されます。

🎨 UIとUXのアップデート

また、Dify をよりモダンでユーザーフレンドリーにするために、UI と UX の改善もいくつか導入しました。

v0.10.0-beta2

✨ v0.10.0-beta2 の新機能は? ✨

重要

このバージョンはプレビュー専用です。本番環境では使用しないでください。

🛠️ バグ修正

  • Docker 起動の問題: Docker を使用して Dify 0.10.0-beta1 を起動できない問題を解決しました。


独り言

今回、実は、v0.9.1 のインストールが最初できませんでした。
ターミナル画面で、こんなエラーメッセージがでました。どうやら、モジュールの一部がメモリー不足でインストールできなかったようです。

failed to extract layer sha256:166e624cfab7bb2cf4e93ae9fc5ed551d7130a98be79e91a226aae72315eb2a4: write /var/lib/desktop-containerd/daemon/io.containerd.snapshotter.v1.overlayfs/snapshots/641/fs/app/api/.venv/lib/python3.10/site-packages/kaleido/executable/bin/kaleido: no space left on device: unknown

そこで、Google AI Studioに教えを請うことにしました。
まずは、上記の丸投げで、問い合わせました。

いくつかもらったサジェスチョンで、
・df -h コマンドを実行して、どのディスクパーティションの容量が不足しているかを確認します。
ということで、それを実行し、その出力結果も入れて再度お伺いをたてたところ、下記の回答を得ました。

前略

真の問題は、Difyが動作している環境のディスク容量不足です。エラーメッセージから、/var/lib/desktop-containerd/... 以下に書き込もうとして容量不足になっていることがわかります。これは、Docker Desktopなどのコンテナ環境で使用されている仮想ディスクの容量が不足していることを示唆しています。
MacOSでDifyをバージョンアップする際のディスク容量不足エラーへの対策は以下の通りです。

1. Docker Desktopのディスク容量を増やす:

  • Docker Desktopを開き、Preferences (環境設定) > Resources (リソース) > Disk (ディスク) を選択します。

  • "Disk image size" (ディスクイメージサイズ) を増やします。現在の使用量よりも十分に大きい値を設定してください。

  • "Apply & Restart" (適用して再起動) をクリックして変更を適用します。

2. 不要なコンテナイメージ、コンテナ、ボリューム、ネットワークを削除する:

  • Docker Desktopを開き、Images, Containers, Volumes, Networksタブで不要な項目を削除します。

後略

これらを実行し、無事、インストールに至りました。
ということで、せっかくなので、v0.9.1の画面をいくつか使った次第です。

わかっている人にとっては、なんでもないことかもしれませんが、私一人では、この結論にはとても至らないと思いました。

以前も、AI Tuber KITのインストールのときに、インストールができなく、これに相談したところ、Python2系がインストールされてないと、一部のモジュールがインストールできないということを指摘してくれたことがあります。最近、もういらないと思って、2系は削除してしまってました。

Google AI Studioは、私の素晴らしいチューターです。

最終的には、質問が、言語の入り混じった、かなりの長文になったのですが、さらっと受け入れて、かつ、Difyを理解して、回答してくれます。

全くありがたいことです。生成AIの威力を実感しました。



この記事が気に入ったらサポートをしてみませんか?