デジタルヒューマン向け最適化のポイント

デジタルヒューマンのナレッジベース(RAG)においては、ユーザー体験を損なわないための**「応答速度(レイテンシ)」と、キャラクターの信頼性を担保する「回答の正確性」**の高次元での両立が必須です。

1. デジタルヒューマン特有の要件と対策

高速なレスポンス(レイテンシの最小化)

circle-info

検索時間を0.5秒以内(可能な限り少なく)に抑える

音声対話やアニメーションを伴うデジタルヒューマンでは、数秒の沈黙が「フリーズ」と感じられ、体験を著しく損ないます。

  • TopKの制限: 検索候補を 3〜5 に絞り、LLMの読解時間を短縮。Rerankモデルを活用して、少ないTopKでも高精度を維持する。

  • 不要な検索の回避: 不要なナレッジベースは分離し、必要なものだけを検索対象にする。「アノテーション(固定回答)」や「マルチナレッジ」を活用し、ベクトル検索の負荷を減らす。

  • インデックスの最適化: インデックスモードは必ず「High-Quality」を選択し、検索品質を維持しつつも、検索範囲を絞り込む設計を行う。

高精度な回答と「幻覚」の防止

circle-info

不正確な回答は信頼の喪失に直結する

キャラクターが誤った情報を話すと、サービス全体の信用に関わります。 テキストチャットなら「もう一度聞く」が容易ですが、音声対話では誤った情報が与える影響が大きくなります。

  • スコア閾値(Threshold)の設定: 0.7以上 を基準とし、関連度の低い情報を検索結果から除外し、LLMに渡さない(「分かりません」と答える勇気)。

  • ハイブリッド検索: 「ベクトル検索(意味)」+「キーワード検索(単語)」を併用し、検索精度を向上させる(例: 専門用語や製品名の取り違えを防ぐ)。

  • Rerankの活用: 検索結果の並び順を再評価し、TopKが少なくても正解が含まれる確率を高める。

  • アノテーション機能の活用: 頻出質問には確実な回答を登録させる。

即時性(最新情報への対応)

circle-info

古い情報は信頼を損なう

障害情報やキャンペーン、価格、在庫状況など、リアルタイム性が求められる情報を更新してください。

  • ナレッジの分離: 更新頻度の高い情報は独立させ、差し替えを容易にする。

  • 情報の種類ごとに更新頻度を定義(後述の「更新運用のポイント」参照)

  • 定期的なテスト質問で、古い情報が残っていないかチェック

2. 推奨設定パラメータ

以下は、速度と精度のバランスを考慮した初期設定の推奨値です。

項目
設定値 / 推奨
理由

検索モード

ハイブリッド検索

表記揺れ(ベクトル)と固有名詞(キーワード)の両方に対応するため。

Rerank

有効 (例: rerank-multilingual-v3.0等)

検索精度の要。TopKを絞るために必須。

TopK

3 〜 5

6以上だと処理時間が増加傾向。レスポンス速度重視なら3。

スコア閾値

0.7

低品質なチャンクの混入を防ぎ、ハルシネーションを抑制。

埋め込みモデル

text-embedding-3-large / bge-m3 等

日本語性能とコンテキスト理解力の高いモデルを選択。

チャンク設定

チャンクの長さ: 500〜800 / 重複(オーバーラップ): 15%

文脈が切れにくい適度な長さ。 自動分割も可(カスタム区切り文字を使う場合は要検証)。

circle-info

設定の優先順位

  1. ハイブリッド検索 + Rerank を有効化(精度のベース)\

  2. TopK を「5」から開始し、遅延が気になるなら減らす\

  3. 閾値 を「0.7」から開始し、回答拒否が多すぎれば0.05刻みで下げる

用途別の詳細設定

用途

インデックスモード

チャンク設定

検索設定

備考

FAQ応答

Q&Aモード

500文字前後 オーバーラップ: 小

ハイブリッド検索 TopK: 3

Q&A形式のドキュメントに最適。1つの質問=1つのチャンク

製品・サービス説明

General

700〜800文字 オーバーラップ: 15%

ハイブリッド検索 TopK: 5

複数の情報源から総合的に回答を生成

対応マニュアル

General

1000文字前後 オーバーラップ: 20%

ハイブリッド検索 TopK: 6

手順や詳細説明が必要な場合。文脈が重要

企業情報・アクセス

General

500〜700文字 オーバーラップ: 10%

ハイブリッド検索 TopK: 3

シンプルな情報が多いため、TopKは少なめでOK

3. ドキュメント作成(チャンク品質)の鉄則

dify-docs-optimization-tips-for-digital-humans_llm_systemprompt_top.png

RAGの精度は「検索設定」よりも**「元の文章の書き方」**に依存します。AIが読みやすく、検索しやすい形式で記述します。

「Q&A形式」または「見出し付き構造化」

circle-info

階層構造を持たせることで、チャンク分割がしやすくなる

見出し、箇条書き、Q&A形式を活用して、情報を整理しましょう。 ユーザーの質問(Query)と類似した文章が含まれているとヒット率が上がります。

❌️悪い例: だらだらとした長文の約款。 ✅️良い例: 「返品はできますか?」という見出しの直下に条件を箇条書き。

マークダウン記法

見出し

リスト

強調・装飾

リンク

コードブロック

引用

テーブル

これらの記法を使うことで、ナレッジベースのドキュメントが読みやすく構造化され、RAGの検索精度も向上します。

想定される「ユーザーの話し言葉」を含める

{% hint style="info" %} ユーザーが実際に聞きそうな言葉を含める

正式名称だけでなく、ユーザーが使いそうな略称や言い回しをドキュメント内に記載しておきます。 例: 「初期化の手順」だけでなく、「リセットしたい」「動かない」などのキーワードを併記する。 {% endhint %}

なぜ効果的か:

  • ユーザーが「返品できますか?」と聞いた時、このドキュメントが確実にヒット

  • 検索精度が向上し、関連性の高い情報が返される

否定条件・禁止事項の明文化

{% hint style="danger" %} 「できないこと」も明確に記載する

「何ができないか」を明確に書くことで、誤った回答(ハルシネーション)を防ぎます。ユーザーは「できること」だけでなく「できないこと」も知りたがっています。また、応答禁止についてもプロンプトで記載することも必要です。 {% endhint %}

4. マルチナレッジ設計と運用

{% hint style="info" %} すべての情報を1つのナレッジベースに入れるのではなく、種類や更新頻度に応じて分割しましょう。 {% endhint %}

分割のメリット

  • 検索ノイズの低減: 関連性のないドキュメントがヒットするのを防ぐ。

  • 運用効率: 「キャンペーン情報」だけを頻繁に更新し、「製品マニュアル」は変えない、といった運用ができる。

マルチナレッジ運用のポイント

ポイント

説明

重複を避ける

同じ情報が複数のナレッジに含まれると、同じような検索結果が複数返され、TopKを圧迫します。

命名規則

ナレッジ名は用途が明確にわかるようにします。 例: 「KB_FAQ」「KB_製品情報」

ドキュメント数の目安

1つのナレッジには100〜500ドキュメント程度が管理しやすいとされます。

定期的な見直し

3ヶ月に1回程度、ナレッジの構成を見直し、必要に応じて再編成します。

推奨構成例1

ナレッジ名
内容
更新頻度
特記事項

KB-01_FAQ

頻出質問、トラブルシュート

最も検索される Q&A形式で整備

KB-02_Product

スペック、料金、仕様書

正確性が最重要 構造化データ

KB-03_News

キャンペーン、障害情報

古い情報は即削除またはアーカイブ

KB-04_Company

会社概要、問い合わせ窓口

基本情報

チャットフローでの実装方法

{% hint style="info" %} 方法1: 単一の「ナレッジ検索」ノードで複数ナレッジを検索

ナレッジ検索ノードの設定で、複数のナレッジベースを選択します。

メリット

  • シンプルな構成\

  • 全ナレッジを横断検索

デメリット

  • TopK設定が全ナレッジ共通\

  • 検索時間がやや長くなる {% endhint %}

{% hint style="info" %} 方法2: ナレッジごとにノードを分ける

条件分岐で、質問内容に応じて検索するナレッジを切り替えます。

メリット

  • ナレッジごとに異なるTopKを設定可能\

  • 検索速度が速い

デメリット

  • フロー設計がやや複雑\

  • 条件分岐の設計が必要 {% endhint %}

推奨構成例2

5. 更新・品質管理フロー

{% hint style="info" %} 古い情報は信頼を失う最大の原因である

「作って終わり」ではなく、ログに基づいた継続的なチューニングが必要です。キャンペーン終了後も古い情報が残っていたり、価格が変わっているのにドキュメントが更新されていないと、ユーザーの信頼を大きく損ないます。 {% endhint %}

  1. 変更の反映

    • ドキュメント修正後、必ず**「再同期(Re-index)」**を実施する。

    • 古い情報(終了したキャンペーン等)は削除する。

  2. 実機テスト

    • 同期後、主要な質問(5〜10件)をテストし、回答内容と**出典(引用チャンク)**が正しいか確認する。

  3. ログモニタリング(週次)

    • 「回答できなかった質問」や「ユーザーからの低評価」を確認。

    • 不足している情報はナレッジに追加(またはアノテーション登録)する。

  4. アノテーション(固定回答)の活用

    • 毎回RAG検索させる必要のないあいさつや、絶対に間違えてはいけない回答は、RAGの前段で固定回答として設定し、レスポンス速度を向上させる。

更新頻度の目安

情報種別

更新頻度

優先度

備考

キャンペーン情報

開始/終了時に即時

🔴 最優先

終了したキャンペーンは即座に削除

価格情報

変更時に即時

🔴 最優先

誤った価格案内はクレームに直結

在庫状況

リアルタイム連携 または日次

🔴 最優先

可能であればAPI連携で自動更新

製品情報

新製品発売時 仕様変更時

🟡 高

発売前に準備、発売日に公開

FAQ

月1回見直し

🟡 高

問い合わせログから新規質問を追加

会社情報

変更時

🟢 中

営業時間、所在地、代表者など

季節情報

季節の変わり目

🟢 中

夏季/冬季の営業時間など

運用フロー例

トラブルシューティング

実際の運用で遭遇しやすい問題と解決策をまとめました。

よくある問題と解決策

問題

原因

解決策

検索結果が返らない、または「見つかりませんでした」と返す

・スコア閾値が高すぎる ・ドキュメントに関連情報がない ・表現が不一致である

・スコア閾値を0.5〜0.6に下げる ・想定質問をドキュメントに含める ・同義語・言い換えを追加する

回答が遅い(3秒以上かかる)

・TopKが大きすぎる ・ナレッジが多すぎる ・Rerankが有効化されていない

・TopKを3〜5に下げる ・不要なナレッジを検索対象から外す ・Rerankモデルを有効化する

間違った情報を返す

・古い情報が残っている ・複数の矛盾する情報がある ・検索精度が低い

・ドキュメントを更新し同期する ・矛盾する情報を削除する ・ハイブリッド検索 + Rerankを有効化する

同じような検索結果を複数返す

・重複したドキュメントがある ・チャンクのオーバーラップが大きすぎる

・重複のドキュメントを削除する ・オーバーラップを10〜15%に下げる

検索結果に無関係な情報を含む

・スコア閾値が低すぎる ・TopKが大きすぎる

・スコア閾値を0.7以上にあげる ・TopKを3〜5に下げる

よくある質問(FAQ)

Q: インデックスモードは「Economy」でも大丈夫ですか?

A: **デジタルヒューマン用途では推奨しません。**Economyモードは検索精度が低下するため、不正確な回答が増えます。必ず「High-Quality」を使用してください。

Q: TopKはいくつが最適ですか?

A: 基本は5、速度重視なら3、精度重視なら6がおすすめです。TopKを大きくすると検索時間が増え、デジタルヒューマンの会話テンポが悪くなります。

Q: Rerankモデルは必ず使うべきですか?

A: 精度を上げたい場合は推奨します。Rerankモデルを使うことで、TopKを少なくしても高い精度を維持できます。特に日本語の場合、rerank-multilingual-v3.0が効果的です。ただし、Rerank処理が入ることで処理に時間がかかる場合がありますので、Rerank処理の有無を試して速度や精度を比較してください。

Q: ドキュメントを更新したのに検索結果が変わりません。

A: Difyでは**「チャンク」タブで同期処理を実行する必要があります**。ドキュメントを更新しただけでは検索結果に反映されません。

Q: 複数のナレッジベースを使うべきですか?

A: 推奨します。情報の種類や更新頻度に応じて分割すると、検索精度と管理効率が向上します。最低でも「FAQ」と「その他」の2つに分けることをおすすめします。

Q: アノテーション機能とは何ですか?

A: 頻出質問に対して固定回答を設定できる機能です。RAG検索をスキップして即座に回答が返るため、速度・精度・コストすべてが改善します。FAQの上位10件程度をアノテーション登録するのがおすすめです。

最終更新