メインコンテンツまでスキップ
自然言語でナレッジベースを検索し、類似度がしきい値を超えた断片を返します。

Retrieve Knowledge

Retrieve Knowledge はナレッジベースから関連する情報を検索するプロセッサーです。

基本的な使い方​

Retrieve Knowledge は指定したナレッジベースに対して、クエリ文で意味検索を行い、類似度のしきい値で結果を絞り込み、該当したものを配列として指定の変数に保存します。後続のプロセッサーがそれを利用できます。質問応答、文書検索、コンテンツの推薦、サポートなど、ナレッジベースに基づく正確な情報が必要な場面で使います。

設定項目​

ノードのプロパティパネルです。

Retrieve Knowledge のプロパティパネル。Knowledge Bases、Text Query、Similarity Threshold など

Name​

キャンバス上に表示される名前です。ワークフロー内でこのプロセッサーを識別するために使います。

Description​

このプロセッサーの用途を補足し、ワークフローの読みやすさを高めます。

Properties​

Knowledge Bases(必須)​

検索対象のナレッジベース名を、カンマ区切りの一覧で指定します。複数を同時に検索できます。あらかじめナレッジベースを作成し、データを取り込んでおく必要があります。

Text Query(必須)​

検索に使うテキストです。Literal、Expression、Template の値の種類に対応しています。詳しくはExpression の概要 — 値の取得を参照してください。

Similarity Threshold(必須)​

結果を絞り込むための類似度のしきい値で、0 から 1 の範囲です。1 が最も類似しており、値が小さいほど条件が緩くなります。一般には 0.1 から 0.7 の間に設定します。

Result Field(必須)​

結果を受け取る変数の名前です。結果は配列として保存されます。既定値は result です。

Filter Tags​

結果を絞り込むタグを、カンマ区切りの一覧で指定します。ナレッジベース側のタグを使ってさらに絞り込みます。

Sample K​

索引データとその拡張データから抽出する件数です。既定値は 20 で、検索時のサンプリングの広さを制御します。

Path Exists​

指定した JSON パスの項目が存在するかを確認します。妥当な JSON Path 構文を受け取り、特定の構造を持つデータだけを通します。複数の条件を設定できます。

JSON Path の構文については JSONPath の仕様を参照してください。

Path Predicate​

JSON Path の述語で条件を絞り込みます。妥当な述語構文(たとえば $.category == "HR")を指定し、複数の述語は AND で結合されます。

Workflow CRD での設定​

- name: proc-retrieve
type: retrieve-knowledge
labels:
display_name: 製品ナレッジベースを検索
configs:
- name: knowledgeBases
value: kb-product-manual,kb-faq
- name: textQuery
expression: prevMessage
- name: similarityThreshold
value: "0.7"
- name: resultField
value: result
- name: sampleK
value: "20"
- name: filterTags
value: public

knowledgeBases と filterTags はいずれもカンマ区切りの文字列で、配列ではありません。resultField の既定値は result、sampleK の既定値は 20 です。

このプロセッサーは動的な設定に対応しており、エディター上の Path Exists と Path Predicate は動的設定として追加されています。

接続関係​

Success​

検索に成功すると、この接続点から次へ進みます。結果は配列として Result Field の変数に保存され、後続のプロセッサーで利用できます。

Failure​

検索の途中でエラーが起きた場合、この接続点から続き、prevError 変数にエラー情報が入ります。

実際の例​

ユーザーの質問文でナレッジベースを検索します。

項目値
Knowledge Basesプロジェクトのナレッジベース(複数選択可)
Text QueryExpression:prevMessage
Similarity Threshold0.7
Result Fieldkb_hits
Sample K5

実行後、kb_hits にはオブジェクトが入ります。変数名は Result Field で決まり、既定は result です。後ろには通常 LLM Completion を置き、ヒットした断片を Prompt に含めます。

注意事項​

  • Similarity Threshold は必須で、どの断片を返すかを決めます。高すぎると取りこぼし、低すぎるとノイズが混ざるため、ナレッジベースの中身に合わせて調整します。
  • Sample K は返す件数の上限です。
  • Filter Tags は特定のタグを持つ文書だけに検索を限定します。