# チャット ベクトル化

チャット ベクトル化は、現在のチャット履歴で最新のメッセージに関連していると思われるメッセージを検索します。 これは最も関連性のあるメッセージをチャット履歴の開始または終了に一時的にシャッフルします。 これはモデルが最後のメッセージに返信するときに発生します。

チャット履歴の開始と終了のメッセージは、モデルの返信に最大の影響を与える傾向があります。 したがって、関連メッセージをこれらの位置にシャッフルすることで、モデルが返信で関連情報に焦点を当てるのを支援できます。

特に、チャット ベクトル化はメッセージ履歴内で深くフィットするのに遠すぎる関連メッセージを見つけることができます。 これらのメッセージをコンテキストにシャッフルすることで、モデルには通常利用できない情報が提供されます。

チャット ベクトル化は、検索拡張生成(RAG)の一種です。検索拡張生成は、プロンプトに追加の関連情報を提供することで、モデルが生成する応答の品質を向上させます。

  • 取得:最新のメッセージを使用して関連する過去のメッセージを取得
  • 拡張:モデルのコンテキストが有用な方法で過去のメッセージを挿入することで拡張
  • 生成:モデルに応答を生成するときに過去のメッセージを使用するよう指示

# セットアップ

チャット ベクトル化を有効にするには、「拡張機能」>「ベクター ストレージ」>「チャット メッセージで有効」を選択してください。

ベクトル化ソースとベクトル化モデルを構成します。チャット ベクトル化はData Bankと同じベクター ソースを使用するため、これを既に設定している可能性があります。ベクトル化ソースおよびベクトル化モデルの設定は、Data Bankに記載されています。

チャット ベクトル化はData Bankと同じベクター ストレージを使用しますが、セットアップまたは構成は不要です。 Data Bankにはベクター ストレージに関する情報もあります。

チャット ベクトル化はData Bankを使用してチャット メッセージを保存しません。メッセージはチャットに保存されます。

# 検索用のチャット メッセージの準備(ベクター ストレージ)

チャット メッセージを検索できるようにするために、各メッセージのベクターが計算され、保存されます。

ベクトル化は、メッセージを送受信するたびにバックグラウンドで発生します。

各メッセージは個別に保存されるため、生成中に個別に検出およびシャッフルできます。

大きなメッセージは、モデルが長いメッセージの最も関連性のある部分を与えることができるように、「チャンク」に分割されます。チャンク サイズは400文字です。 「チャンク サイズ(文字)」で変更できます。

メッセージは、段落区切り、行区切り、単語間スペースなどのチャンク境界を見つけることで分割されます。これにより、可能な限りすべてのチャンクが意味を持つようになります。チャット メッセージに----など他の方法でマークされた自然な分割ポイントがある場合、これを「チャンク境界」に追加できます。「チャンク境界」の設定はData Bankと共有されます。

# ベクター ストレージ コントロール

現在のチャット内のすべてのメッセージのベクターを計算するには、背景で処理されるのを待たずに、設定から「ベクトル化すべて」を選択してください。

現在のチャット内でベクトル化されたメッセージの数を確認するには、「統計情報の表示」を選択してください。保存されたベクターの総数が表示されます。 また、ベクトル化されたチャット メッセージを示す特定のチャット メッセージに緑色のボールでマークします。

現在のチャット内のメッセージのすべてのベクターを削除するには、「ベクターの削除」を選択してください。

# 関連するメッセージの検索(ベクター検索)

チャット履歴で最も関連性のあるメッセージを見つけるために、最新のメッセージは一連のベクターに変換(ベクトル化)されます。デフォルトでは、最新の2つのメッセージが使用されます。これを変更するには、「クエリ メッセージ」の値を変更してください。この値は、Data Bankから関連するコンテンツを見つけるときにも使用されます。

過去のメッセージは、最低でも25%の関連性スコアを持つ必要があります。「スコア しきい値」で変更できます。スコア しきい値の設定はData Bankと共有されます。

チャット履歴から最も関連性のある3つのメッセージがシャッフルされます。「挿入#」で変更できます。

チャット内の最新イベント を乱さないようにするために、最新の5つのメッセージはシャッフルされません。これを変更するには、「保持#」の値を変更してください。

# メッセージのシャッフル(拡張生成)

メッセージは3つの場所の1つにシャッフルされます:

  • チャット(デフォルト)の上部にあるメインプロンプト / ストーリー文字列の後
  • メイン プロンプト / ストーリー文字列の前にチャットの上部
  • チャットの最後。最後の2つのメッセージ(「インチャット@深さ2」)の前。メッセージを送信したばかりなので、この位置は通常、モデルからの前の返信の直前です。

これを「挿入位置」および「深さ」で変更できます。

メッセージは関連性の順序で含まれます。より関連性の低いメッセージが後に表示されます。

各メッセージを送信した人物またはキャラクターの名前が含まれます。

メッセージは「過去のイベント」としてモデルに表示されます。これにより、モデルがメッセージに含まれる情報が、挿入される時点のチャット履歴内の別のポイントからのものであることを理解するのに役立ちます。「挿入テンプレート」で変更できます。

プロンプト アイテム化ポップアップ、ターミナル ログ、またはブラウザ コンソール ログを使用してモデルへの最終プロンプトを確認できます。ブラウザ コンソール ログはチャット ベクトル化のすべてのステップが何を実行しているかを理解するのに役立ちます。

# ベクター要約

ベクター要約は、チャット メッセージのベクター検索をより効果的にすることを目的としています。これは、ベクトル化の前に要約ステップを導入することで実行されます。要約ステップはメッセージの最も重要な部分を抽出するため、結果のベクターはメッセージが関連するものをより適切に示します。

ベクター要約はベクター検索を効果的にしない可能性があります。

チャット履歴内のメッセージを要約し、各要約されたメッセージのベクターを生成するには、「チャット メッセージを要約してベクター生成」を選択してください。

要約されたメッセージはチャット内の元のメッセージを置き換えません。ベクター検索が要約されたメッセージのベクターと一致する場合、元のメッセージがチャット履歴から取得され、コンテキストにシャッフルされます。メッセージの要約されたバージョンはベクター ストレージに保持されるため、デバッグに役立つ可能性があります。

チャット履歴の検索に使用されるメッセージの内容(デフォルトでは最後の2つのメッセージ)を要約するには、「送信時にチャット メッセージを要約」を選択してください。

メッセージがベクトル化のために要約されるたびに、要約モデルへの個別のリクエストが作成されます。「要約する」で使用される要約ソースを選択できます。「メイン API」を選択すると、チャットまたはテキスト補完の生成に使用するのと同じモデルおよび接続設定を使用して要約が生成されます。

リクエストは生のメッセージ コンテンツと、モデルが要約を生成する方法に関する指示で構成されます。「要約プロンプト」で指示を変更できます。