# ナレッジ検索ノードの設定

\*\*ナレッジ検索ノード（Knowledge Retrieval）\*\*は、接続されたナレッジベース（Knowledge Base）からユーザーの質問に関連する情報を検索・取得するためのノードです。 取得した情報はコンテキストとして後続のLLMノードに渡され、RAG（Retrieval-Augmented Generation）を実現するために使用されます。

## 設定手順

### 1. ノードの配置

1. ワークフローエディタのノードパネルから「**ナレッジ検索（Knowledge Retrieval）**」を選択し、キャンバスに追加します。
2. 開始ノード、または質問を受け取る前のノードの後ろに接続します。

### 2. ナレッジベースの選択

![dify-docs-configure-knowledge-retrieval-node\_dhkk\_flow\_editor 1.png](/files/jWW3AhAht2Nx1B9yEqfe)

1. ノード内の「＋**ナレッジを追加（Add Knowledge）**」をクリックします。
2. リストから検索対象としたいナレッジベースを選択します。
3. 必要に応じて複数のナレッジベースを選択可能です。

### 3. クエリ（検索ワード）の設定

検索に使用するキーワードを設定します。

* **設定値**: 通常はユーザーの入力変数（例: `sys.query`）を指定します。
* **変数の挿入**: 入力欄の「{x}」マークをクリックするか、`{{`を入力して変数を呼び出せます。

## 主要な設定パラメータ

検索精度を調整するためのパラメータです。

| 項目名                 | 説明                                        | 推奨設定例       |
| ------------------- | ----------------------------------------- | ----------- |
| **クエリ変数**           | 検索に使用する入力値。                               | `sys.query` |
| **TopK**            | 取得するドキュメントの最大件数。                          | 3 〜 5       |
| **Score Threshold** | 検索結果の類似度スコアの下限値。これ以下の関連度の低い情報は除外されます。     | 0.5 〜 0.7   |
| **Rerank設定**        | (オプション) 検索結果をRerankモデルで再ランク付けし、精度を向上させます。 | オン (推奨)     |

{% hint style="info" %}
Score Threshold を高くしすぎると、検索結果が0件になる場合があります。\
最初は低め（0.5など）に設定し、デバッグしながら調整してください。
{% endhint %}

* **メタデータフィルタ**: ナレッジベースのドキュメントに付与されたメタデータを条件として検索対象を絞り込む機能です。デジタルヒューマン環境ではデフォルトで「無効」に設定されています。

## 複数ナレッジ検索（N-to-1 Recall）

複数のナレッジベース（例：「社内規定」と「製品マニュアル」）を同時に検索対象とする場合、「**複数ナレッジ検索（N-to-1 Recall）**」モードが適用されます。

```markdown
ナレッジ検索ノード
├── 社内規定ナレッジ
└── 製品マニュアルナレッジ
```

* **仕組み**: 各ナレッジベースから検索された結果を統合し、最も関連性の高い順に並べ替えて出力します。
* **推奨**: 複数のナレッジを使用する場合は、情報の優先順位を正しく判定させるため、**Rerankモデル**の設定を強く推奨します。

## 出力結果の利用方法

検索結果は変数として出力され、後続の「LLMノード」のコンテキストとして利用します。

### LLMノードでの設定例

LLMノードの「コンテキスト」欄、またはプロンプト内で以下のように変数を参照します。

```markdown
### 参考情報
{{#knowledge_retrieval.result#}}

### ユーザーの質問
{{#sys.query#}}

### 指示
上記の参考情報のみに基づいて、ユーザーの質問に回答してください。
情報が不足している場合は「情報がありません」と回答してください。
```

## ベストプラクティス

1. **適切なTopKの設定**: LLMのコンテキストウィンドウ（トークン制限）を圧迫しないよう、TopKは3〜5程度から開始してください。
2. **デバッグの活用**: プレビュー/デバッグ機能を使用し、実際にどのようなテキストが検索（Retrieve）されているかを確認してください。意図しないテキストがヒットしている場合は、ナレッジベースのデータ分割（チャンク）設定を見直す必要があります。
3. **Rerankの検討**: 検索精度が低い場合、外部のRerankモデル（Cohere Rerank等）を導入することで劇的に改善する場合があります。

{% hint style="warning" %}
本ドキュメントはDifyのバージョンアップによりUI名称等が変更される可能性があります。
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digitalhumans.jp/dify-guide/chatflow/dify-docs-configure-knowledge-retrieval-node.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
