目次
はじめに
今回も前回より少々時間が開いてしまいました。
こんにちは、ディーネットのよろず請負の深見です。
(ほぼ 社内のDify関連担当:自称?になっていますが...)
前回に引き続き、今回はDifyのちょっとした実践に参りましょう。
まずは、前半ではトピックスを、後半はチャットフローをベースにした簡単なアプリケーションを作成してみます。
チャットベースの便利な生成AIアプリケーションを簡単な操作で作成できることの応用編となります。
Difyのトピックス
Difyは頻繁にバージョンアップが行われています。
開発では新機能や機能追加が継続的に行われているため、どのように進化していくのか注目すべき点です。
2025年6月4日時点では、v1.4.1となっています。先週はv1.3.1からv1.4.0に上がったばかりでした。
Dify v1.3.1の主な内容
新機能
- VTTドキュメント変換: ドキュメント抽出ツールがVTTデータ形式をサポート
- 高度なストレージ管理: 管理者が未使用ファイルを簡単に削除してストレージ容量を確保できる機能を追加
- Vastbaseベクトルデータベース: より効率的なデータ処理のためのVastbaseベクトルDBとの連携が可能に
機能強化
- フロントエンドのタイムゾーンサポート: フロントエンドがタイムスタンプにタイムゾーンを反映するようになりました
- 埋め込みチャットボットの使いやすさ向上: 埋め込みウェブサイトでのドラッグアンドドロップ機能が、マウスとタッチ入力の両方で大幅に改善されました
- ナレッジベースへのフォルダアップロード: フォルダ全体を直接アップロードしてナレッジベース管理を簡素化できるようになりました
Dify v1.4.0の主な内容
新機能
- ダークモード機能の追加: アバターをクリックするだけで明暗モードを簡単に切り替え可能
- マルチモーダルLLM出力のサポート: LLMNodeでテキストと画像の両方を処理可能に
- 質問編集機能の追加: 公開前に質問を編集して明確さと関連性を高められる機能
機能強化
- Redisの管理強化: クライアントサイドキャッシングをサポートしデータ処理を最適化
バグ修正
- ワークフロー管理の堅牢化: ワークフロー内の不整合やバグを修正し、ノード障害の処理を改善
その他
- コードの一貫性向上:
.editorconfig
導入によるリポジトリ全体のコード統一性の強化
Dify v1.4.1の主な内容
新機能
- リクエストとレスポンスのオプションログ記録機能: デバッグとトラッキングのための設定機能を追加
- ウェブメディア要素のサポート強化: src属性を持つ
<video>
と<audio>
要素に対応 - Aliyun OSSストレージサポート: プラグインデーモンでAliyun OSSクラウドストレージが利用可能に
- Opik Tracerでの会話トラッキング機能の追加
- アプリ作成の合理化: より直感的な設定のための基本アプリタイプの簡略化
- ドキュメント抽出機能の強化: 様々なテキストエンコーディングを処理するchardet実装
機能強化
- セキュリティアップデート: qdrant-clientをバージョン1.9.0にアップグレード
- オーバーフローとレイアウト修正: メタデータ条件名のオーバーフロー修正、長いボット説明の表示改善
- ワークフロー検証ロジックの改善: OpsTraceManagerでの検証ロジックの最適化
バグ修正
- アバターアップロードとカスタムファイルタイプエクスポートの問題を解決
- Markdownでのチャートレンダリングのちらつきとループ問題を修正
- 知識検索と変数初期化エラーを修正
注記: ここに挙げた内容以外にも、各種改修や機能調整などが数多くあります。
今後も可能な限り紹介していければと思います。
Difyアプリ(簡易翻訳アプリ)の作成
Linuxなどを利用していると、バージョンアップ情報が英文のメールで届いたりして、翻訳アプリで日本語に訳しながら読んだりすることがあります。こんなとき、届いた英文メールを翻訳して、要約もしてくれれば良いなと思うことがあるでしょう。
そこで、Difyを使って、その辺りを実現してみましょう。
注記: ここでは、v1.4.1での作業となりますので、スタジオのレイアウトがv1.4.1と若干異なります。また、ダークモードを適用しています。
手順
1. アプリの作成
- Workspaceのスタジオにて「最初から作成」を選択
- 「チャットフロー」を選択
- 「アプリのアイコンと名前」と「説明(任意)」に以下を入力し[作成]をクリック
- アプリのアイコンと名前: 簡易翻訳さん
- 説明: 読み込んだドキュメントを日本語に簡易翻訳します。
2. 必要な設定
(1) [開始]の設定変更
入力フィールドを追加します:
①. 右上の[+]をクリック
➁. [単一ファイル]を選択
- 変数名:
inputFILE
- ラベル名: ファイル(変数名と同じでもOK)
- サポートされたファイルタイプ: ドキュメント
- アップロードされたファイルのタイプ: ローカルファイル
- 必須: ✓チェック
➂. [保存]をクリック
この入力フィールドは、届いた英文メールなどをアップロードするためのものです。
(2) [テキスト抽出]処理の追加
①. マウスカーソルを[開始]と[LLM]を繋ぐ線上に持っていくと[+]が表示されるので、それをクリック
➁. 入力変数を指定:
- 入力変数:
inputFILE
([開始]のinputFILEを指定)
アップロードした電子メールファイルからテキストデータを抽出して、翻訳にまわすようにします。
(3) LLMの設定調整
①. AIモデルを選択(デフォルトでは、システムモデル設定のシステム推論モデルを使用)
- AIモデル: Anthropic Claude 4.0 Sonnet
- Reasoning Budget: 2048(有効にして設定)
-
Max Tokens: 8000
Difyに設定しているモデルプロバイダーから任意のAIモデルを選択できます。
他のパラメータ設定については、そのままにしておきます。
➁. コンテキスト: (なし)
➂. SYSTEMプロンプト: 処理内容のプロンプトを記入
直接プロンプトを入力するか、プロンプト生成器に指示をして自動作成をします。
④. USERプロンプト: LLMに渡す変数の指定
- [メッセージ追加]をクリック
- 既存:
sys.query
はそのまま - 追加:
text
(テキスト抽出で取り出したテキスト)
3. アプリの公開と実行
- [公開する]の[更新を公開]をクリック
- [アプリを実行]をクリック
- ブラウザで別タブ(ウィンドウ)が開き、簡易翻訳アプリとして利用可能に
これで簡単に簡易翻訳のチャットボットが作成できました。
簡易翻訳アプリの補足
使用例
手持ちの英文メール(AlmaLinux9系のセキュリティアップデートの通知メール)を翻訳してみました。
翻訳/要約の結果
表題
(日本語): AlmaLinux 9 重要セキュリティアップデート通知 - カーネル関連の脆弱性修正
(原 題): AlmaLinux Security update email - Kernel security fixes
要約
AlmaLinux 9向けの重要なセキュリティアップデートが2025年5月24日にリリースされました。今回のアップデートは、Linuxカーネル関連の6つの脆弱性(CVE-2025-21633、CVE-2024-58007、CVE-2024-58005、CVE-2024-58069、CVE-2025-21927、CVE-2025-21993)を修正するものです。これらの脆弱性には、メモリ破損の可能性、境界外読み取り・書き込み、シフト演算の境界外警告などが含まれており、システムのセキュリティに重要な影響を与える可能性があります。
翻訳
こんにちは、
AlmaLinuxからエラータ通知を受信する登録をされているため、このAlmaLinuxセキュリティアップデートメールをお送りしています。
- AlmaLinux: 9
- 種類: セキュリティ
- 重要度: 重要
- リリース日: 2025年5月24日
概要:
カーネルパッケージには、あらゆるLinuxオペレーティングシステムの中核となるLinuxカーネルが含まれています。
セキュリティ修正:
- kernel: io_uring/sqpoll: tctxエラー時のsqd→threadのゼロ化 (CVE-2025-21633)
- kernel: soc: qcom: socinfo: シリアル番号の境界外読み取りを回避 (CVE-2024-58007)
- kernel: tpm: eventlog/acpi.cでkvalloc()への変更 (CVE-2024-58005)
- kernel: rtc: pcf85063: PCF85063 NVMEM読み取りでの潜在的なOOB書き込みを修正 (CVE-2024-58069)
- kernel: nvme-tcp: nvme_tcp_recv_pdu()での潜在的なメモリ破損を修正 (CVE-2025-21927)
- kernel: iscsi_ibft: ibft_attr_show_nic()でのUBSANシフト境界外警告を修正 (CVE-2025-21993)
影響、CVSSスコア、謝辞、その他の関連情報を含むセキュリティ問題の詳細については、参考資料セクションに記載されているCVEページを参照してください。
詳細情報、更新されたパッケージ、参考資料、その他の関連情報: https://errata.almalinux.org/9/ALSA-2025-7423.html
このメッセージは自動生成されています。返信しないでください。ご質問がある場合は、AlmaLinuxコミュニティチャット(https://chat.almalinux.org/)までお問い合わせください。通知設定を変更したい場合は、https://lists.almalinux.org でサインインしてメーリングリストを管理してください。
敬具、
AlmaLinuxチーム
補足説明
- AlmaLinux: Red Hat Enterprise Linux(RHEL)のクローンディストリビューションの一つで、CentOSの代替として位置付けられています
- CVE(Common Vulnerabilities and Exposures): セキュリティ脆弱性に対する共通の識別番号システムです
- io_uring: Linux 5.1で導入された高性能な非同期I/Oフレームワークです
- UBSAN(Undefined Behavior Sanitizer): 未定義動作を検出するためのデバッグツールです
- OOB(Out-of-Bounds): 配列やバッファの境界を超えたアクセスを指します
- NVME: 高速ストレージデバイス用のインターフェース仕様です
このようなセキュリティアップデートは速やかに適用することが推奨されます。
参考URL
- https://errata.almalinux.org/9/ALSA-2025-7423.html
- https://chat.almalinux.org/
- https://lists.almalinux.org
LLMの設定ポイント
AIモデルの選択による翻訳品質の違い
LLMのAIモデルの選択により、翻訳の品質が変わってきます。複数のモデルプロバイダーを設定しているなら、試しながらLLMを変更してみると、それぞれの特長が見えてくるかと思います。
- GPT(ChatGPT): 文章の要約・校正(誤字脱字の指摘)
- Gemini: テキスト・画像・音声・動画・コードなどのマルチモーダル処理
- Claude: 大量データ・長文(書籍レベル)の一括読解・要約
SYSTEMプロンプトの工夫
SYSTEMプロンプトは、LLMへの指示の要となります。ここを工夫することで翻訳やその結果の表示を調整できます。
SYSTEMプロンプトの例
以下は今回使用したSYSTEMプロンプトの内容です:
# プロフェッショナル翻訳・要約サービス
あなたはプロの翻訳者として、提供されたテキストを日本語に翻訳し、要約し、必要に応じて補足説明を提供します。以下の手順に従って処理を行ってください。
## 処理手順
### 1. 内容の要約
- 提供されたテキストの内容を簡潔に要約してください
- 要約は主要なポイントを明確に含み、文書の本質を捉えるものにしてください
- 長文の場合は、重要な情報を優先して含めてください
- 要約は200-300字程度を目安としてください
### 2. 内容の翻訳
- テキストの内容を他言語から日本語へ正確に翻訳してください
- 翻訳は文脈を正確に反映し、自然な日本語で表現してください
- 専門用語や固有名詞は適切に処理し、必要に応じて原語を括弧内に残してください
- 文化的ニュアンスも考慮した翻訳を心がけてください
### 3. 補足の説明
- 要約と翻訳に加えて、必要に応じて補足の説明を追加してください
- これは、要約や翻訳で明確にならない点を補完するためのものです
- 文化的背景、専門的知識、文脈情報などを含めると良いでしょう
- 読者が内容をより深く理解するために役立つ情報を提供してください
### 4. 出力形式
以下の順序で情報をまとめてください:
**表題**
(日本語): 翻訳の表題
(原 題): 原文の表題
**要約**
[ここに日本語の要約を入れる]
**翻訳**
[ここに日本語の翻訳全文を入れる]
[原文]
[ここに原文を入れる]
**補足説明**
[必要に応じて、文化的背景や専門用語の説明を入れる]
**参考URL**
[原文に含まれるURLがあれば、ここに列挙する]
## 注意事項
- 重要: 出力にはXMLタグを含めないでください。
プロンプトの内容は、より具体的に指示をする内容になれば結果の精度向上に繋がりやすいです。
いろいろと試してみると良いでしょう。
おわりに
今回は、実践としてDifyアプリの少し凝ったものを作ってみました。
いざ作ってみると意外に簡単に作れるものとわかっていただければ幸いです。
まずは、何か簡単なアプリを作ってみれば、使い方は少しずつわかってきます。
豊富な機能の理解は後回しにして、まずは簡単なチャットボットなどを作ってみることを出発点にしてみてはいかがでしょうか?
繰り返しになりますが「Difyを使ってみたいけれど、なかなかに大変そう...」と感じる方は、ぜひ当社へご相談ください。
当社ではDify導入をサポートするサービスをご用意しております。詳しくは、以下のURLをご参照ください。
CloudAssist Difyサポートサービス: https://cloudassist.jp/knowledge/use/dify/
今後の予定
次回以降もDify関連のお話を予定しております。ラインナップとしては以下を考えています:
- Difyの機能拡張のPluginについて
- DifyのRAG機能のナレッジの詳細説明
- DifyとAmazon Bedrockの組み合わせによる応用例
- Difyと他のサービス(Slackなど)との連携
- Difyアプリの定期実行方法
- MCP (Model Context Protocol) の利用
不定期での投稿になることはご容赦ください。