FessのRAGチャットで利用権限・回答言語・再検索回数を設定する

FessのRAGチャットに、利用できるユーザーと参照文書の制限、回答言語の指定、検索クエリーの作り直し回数の設定が追加されました。部署限定のチャットや、日本語で回答する社内検索を構成しやすくなります。

利用者と参照文書を制限する

管理画面の「システム」>「全般」のRAG設定で、利用パーミッションとラベルを指定します。これらはsystem.propertiesの設定項目です。例えば次のように指定します。

rag.chat.permissions={group}sales,{user}taro
rag.chat.labels=manual,faq

両方とも初期値は空です。パーミッションが空なら従来どおり利用可能な全員が対象、ラベルが空ならユーザーが閲覧できる全ての文書が対象です。パーミッションは列挙したいずれかに一致すれば利用できます。{role}guestを指定すれば匿名ユーザーも対象になります。

ラベルには表示名ではなくラベル値を指定します。指定したラベルのいずれかに属する文書と、もともとの閲覧権限の両方を満たす文書だけを参照します。ユーザーがチャットで選んだラベルともANDで組み合わせます。通常検索だけでなく、URL要約や文書を指定するチャットにも制限を適用します。

利用権限のない匿名ユーザーは401、ログイン済みユーザーは403となります。制限対象のユーザーには標準テーマのチャットリンクも表示しません。空でない不正なパーミッション設定から利用対象を解決できない場合は、全員を拒否します。

回答言語と検索回数を指定する

次の2項目はfess_config.propertiesに設定します。前述の全般設定とは保存先が異なります。

rag.chat.response.language=browser
rag.chat.query.regeneration.max.count=2

回答言語の初期値browserはブラウザーやUIの言語に従い、英語の場合は言語指示を加えません。jaなら日本語、enなら英語で回答するよう指示します。noneは言語指示を加えない設定で、通常は質問の言語に沿った回答になります。不正な言語コードは警告を出し、browserへ戻ります。LLMへの指示なので、必ず指定言語で回答する保証ではありません。

検索クエリーの再生成は初期値で最大2回です。ヒットがないとき、ストリーミングでは関連性評価で文書が残らないときにも、LLMにクエリーを作り直させて検索します。0で再生成を無効にできます。空のクエリーや同じリクエスト内で検索済みのクエリーが返った場合も打ち切ります。

利用時の制限

RAG自体はrag.chat.enabled=falseが初期値です。有効化と対応LLMの設定が前提になります。再生成回数を増やすとLLM呼び出し回数と待ち時間も増えます。非ストリーミングでは関連性評価を行わず、ヒットがない場合だけ再検索します。文書指定のチャットでは検索の再生成を行いません。

ラベル値の存在は保存時に検証しないため、設定後に対象ユーザーで文書取得を確認してください。独自の検索プラグインが標準の検索クエリー構築を利用しない場合は、追加フィルターへの対応確認も必要です。

利用できるバージョン

Fess 15.9.0に含まれる予定の機能になります。現時点では、まだ、リリースしていないので、今後のテストで変更される可能性もあります。

関連PR

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です