Agile育成ブログ
未来を変える喜びを
未分類

Dify使い方

質問分類器

チャンク

Difyのチャンク設定は、データを効率的に処理し、検索精度を向上させるために重要な機能です。

チャンクとは

チャンクとは、大容量のドキュメントを小さな部分に分割することを指します。この分割により、データの管理が容易になり、AIモデルが各部分を効率的に処理できるようになります。特に、長いテキストを扱う際には、チャンクを適切に設定することで、モデルのパフォーマンスを向上させることができます

検索設定

ベクトル検索は、意味的な類似性に基づいて情報を検索し、非構造化データに強い。
全文検索は、キーワードに基づく正確な検索を提供し、インデックスを利用して高速化される。
ハイブリッド検索は、両者の利点を組み合わせ、より柔軟で関連性の高い検索結果を提供する。

Variable Assigner

フローやノード内でデータの変数に値を割り当てるためのノードです。ユーザーからの入力、APIレスポンス、計算結果、または他のノードからのデータを処理し、特定の変数に保存する際に使用されます。この機能を利用すると、フロー全体でデータを効果的に活用できるようになります。

主な特徴と用途

1. データ保存

• 特定のデータを一時的に保存し、後続のノードやアクションで使用可能にします。

• 例: ユーザーの入力した値を変数として保存。

2. データ変換

• 取得したデータをフォーマットしたり、条件に基づいて値を操作します。

• 例: APIからのレスポンスを解析して必要な部分だけ保存。

3. カスタムロジック

• 条件に基づいて変数に異なる値を割り当てることができます。

• 例: 特定のキーワードが含まれるかチェックして結果を保存。

Template

Difyのテンプレートは、AIプロジェクトやアプリケーションを効率的に構築するために、事前定義された構造や機能を提供するものです。テンプレートを使用することで、繰り返しの設定やコーディング作業を減らし、迅速に成果物を作成できます。

主な特徴

1. 事前構成済みのワークフロー:

テンプレートは、よく使われるプロセスやフローをあらかじめ構築しています。例えば、入力から出力までのプロセスや、API統合、データ処理など。

2. カスタマイズ可能:

テンプレートの各要素は柔軟に編集可能です。ニーズに応じてフローやロジックを変更し、独自のプロジェクトに合わせることができます。

3. シンプルな設定:

非技術者でも直感的に設定や操作が行えるように設計されています。コードを一切書かなくても利用できるものもあります。

4. 高度なAI統合:

OpenAIや他のAIサービスと連携する機能が組み込まれているテンプレートがあります。これにより、AI生成のプロンプトや処理を簡単に追加できます。

テンプレートの例

1. ブログ生成テンプレート:

• ユーザー入力(キーワード、トーンなど)を受け取り、記事のタイトル、見出し、本文を自動生成。

• 外部API(例: Google検索)と連携して関連情報を取得。

2. FAQチャットボット:

• 質問と回答のデータベースを基に、ユーザーの質問に的確に答えるチャットボットを構築。

3. マーケティングメール生成:

• 製品やサービスの情報を基に、プロモーションメールを自動生成。

4. データ処理テンプレート:

• ユーザーがアップロードしたデータを分析し、要約やインサイトを提供。

用方法

1. テンプレートの選択:

Difyのダッシュボードで目的に合ったテンプレートを選択します。

2. 設定:

• 必要な変数(例えば、APIキーや入力データ)を設定。

• フローやノードを確認し、必要であれば編集。

3. カスタマイズ:

• 特定の処理や出力フォーマットを調整。

• 新しいノードを追加して機能を拡張。

4. 実行とテスト:

• テンプレートを実行し、期待どおりの結果が得られるか確認。

5. デプロイ:

準備が整ったら、テンプレートをデプロイして利用可能な状態にします。

テンプレートのカスタマイズ例

変数アサイナー:

特定の入力データを変数に割り当て、フロー内で再利用。

条件ノード(If-Else):

ユーザーの入力や状況に応じて処理を分岐。

外部API統合:

Google検索やSlack通知のようなサードパーティサービスと連携。

TavilySearch

AIエージェント向けに設計された検索エンジンAPIで、リアルタイムかつ正確な情報を提供します。Difyにおいては、ウェブ検索結果を自動で収集・解析し、目的に応じた正確な回答を生成する際に活用されます。

JinaReader

JinaReaderは、Jina AIが提供するツールで、指定したURLのコンテンツを大規模言語モデル(LLM)が処理しやすい形式に変換する機能を持ちます。具体的には、URLの前にhttps://r.jina.ai/を付加することで、そのページの主要な内容をクリーンなテキスト形式で取得できます。

また、https://s.jina.ai/を使用すると、特定のクエリに基づいてウェブ検索を行い、関連するURLとその内容をLLMが利用しやすいテキスト形式で取得することが可能です。

これらの機能により、JinaReaderはLLMを活用したアプリケーションやリトリーバル強化型生成(RAG)システムにおいて、ウェブ上の最新情報を効果的に取り入れることができます。


Parameter Extractor は、テキストデータから特定の情報(パラメータ)を抽出する機能を提供します。特に自然言語処理(NLP)を用いて、ユーザーが指定した形式やルールに基づいてテキストから必要な値やキーワードを抽出するのに役立ちます。

主な用途

1. フォームやフィールドへの入力支援

• ユーザーからの入力テキストから自動的に特定の値(名前、日付、数値など)を抽出し、システムの入力フィールドに適用します。

2. 文章からの構造化データ抽出

• レポート、記事、電子メールなどの非構造化テキストから、重要なパラメータ(例: 締切日、予算、担当者名など)を取得します。

3. 自然言語クエリ解析

• ユーザーの質問やリクエストを解析し、特定の情報を引き出してシステムに渡します(例: クエリ「来週の月曜日にミーティングをセット」に対して日付パラメータを抽出)。

4. チャットボットのコンテキスト理解

• ユーザーのメッセージから、関連するパラメータを抽出して会話の流れをスムーズにします。

特徴

柔軟な抽出ルール

キーワードベース、正規表現、またはAIモデルを使用して、複雑な文脈から情報を抽出できます。

マルチパラメータのサポート

一度に複数のパラメータ(例: 日付、場所、人物)を抽出可能。

自然言語対応

NLP技術を使用して、文脈に応じた意味解析を行い、適切なデータを抽出します。

エラーハンドリング

抽出できない場合や不確実性がある場合に備えた例外処理が可能。

例: 使用シナリオ

1. 日付の抽出

テキスト:

「来週の水曜日に会議があります。」

抽出結果:

{ “date”: “YYYY-MM-DD” }

2. 場所とイベント名の抽出

テキスト:

「東京でTechカンファレンス2024が開催されます。」

抽出結果:

{ “location”: “東京”, “event”: “Techカンファレンス2024” }

3. 数量や単位の抽出

テキスト:

「この商品の価格は3000円です。」

抽出結果:

{ “price”: “3000”, “currency”: “円” }

Doc Extractor

Difyの「Doc Extractor」ノードは、ユーザーがアップロードした文書ファイルからテキスト情報を抽出し、LLM(大規模言語モデル)がその内容を処理できるようにするためのツールです。これにより、LLMは文書の内容を直接読み取れない制約を克服し、ユーザーが提供するファイルの情報を効果的に活用できます。

主な機能:

対応ファイル形式: テキスト、Markdown、PDF、HTML、DOCXなどの文書形式から情報を抽出できます。ただし、画像、音声、ビデオなどの形式のファイルは処理できません。

入力変数: 「File」(単一ファイル)または「Array[File]」(複数ファイル)のデータ構造を受け入れます。

出力変数: 固定名「text」として出力され、入力変数の型に応じて以下のように変化します:

• 入力が「File」の場合、出力は「string」

• 入力が「Array[File]」の場合、出力は「array[string]」

使用例:

例えば、ユーザーがPDFファイルをアップロードし、その内容に基づいてLLMと対話するアプリケーションを構築する場合、以下の手順を踏みます:

1. アプリでファイルアップロード機能を有効にする。

2. 「スタート」ノードで単一ファイル変数を追加し、「pdf」と命名する。

3. 「Doc Extractor」ノードを追加し、入力変数で「pdf」を選択する。

4. LLMノードを追加し、システムプロンプトで「Doc Extractor」ノードの出力変数を選択する。

5. 終了ノードを構成し、LLMノードの出力変数を選択する。

これにより、ユーザーはPDFファイルをアップロードし、その内容に基づいてLLMと効果的に対話できるようになります。

注意点:

「Doc Extractor」ノードは、文書ファイルからテキスト情報を抽出するため、画像や音声、ビデオなどの非テキスト形式のファイルには対応していません。また、複数ファイルを処理する場合、出力は「array[string]」となるため、リスト操作ノードと組み合わせて使用することが推奨されます