Best practices for Hybrid Knowledge Bases
=========================================

これは誰に向けたものですか
--------------------------

ハイブリッドナレッジベースを作成して、構造化データと非構造化データを組み合わせた高度なAIアプリケーションを強化するプラットフォームユーザー。一般的なユーザーには、製品カタログ、顧客プロファイル、または混合データセットを操作する開発者、AIアーキテクト、データエンジニア、コンテンツマネージャーが含まれます。

あなたが達成すること
--------------------

Gen AI
Builderでハイブリッドナレッジベースをデザインするためのベストプラクティスを学びます。

- 構造化列と非構造化列を選択する方法

- 強力なAIクエリーをサポートするスキーマをデザインする方法

- ハイブリッドナレッジベースデザインでの一般的な落とし穴を回避する方法

ハイブリッドナレッジベースを注意深くデザインする理由
----------------------------------------------------

- ハイブリッドナレッジベースを使用すると、 **構造化フィルタ**
  の完全一致、レンジ、ファセットと **セマンティック検索**
  ベクトルベースの検索を組み合わせることができます。

- 適切に設計されたハイブリッドナレッジベースにより、より正確で柔軟、説明可能なAI応答が可能になります。

- スキーマ設計が不十分であると、非効率なクエリ、不完全な検索結果、または無駄な処理が発生する可能性があります。

背景については、以下を参照してください。

- :ref:`Knowledge Bases Reference Manual <Knowledge Bases Reference Manual>` 

- :ref:`Gen AI Builder Concepts (Assistants, Knowledge, Tools, Threads) <Gen AI Builder Concepts (Assistants, Knowledge, Tools, Threads)>` 

- :ref:`Retrieval Augmented Generation (RAG) <AI Factory terminology>` 

- :ref:`Embeddings explained <Fundamental AI Concepts>` 

**ハイブリッドマネージャー展開**
でハイブリッドナレッジベースがどのように使用されるかを確認するには、次のWebサイトにアクセスしてください。

- `Hybrid Manager: Using Gen AI Builder <https://www.enterprisedb.com/docs/edb-postgres-ai/latest/hybrid-manager/ai-factory/gen-ai>`_ 

複雑さと完了までの時間
----------------------

- **複雑さ** 中度 -
  スキーマデザインには、データとユースケースを理解する必要があります。

- **推定時間** ハイブリッドナレッジベースごとに15〜30分。

ハイブリッドナレッジベースのデザイン
------------------------------------

ユースケースを理解する
^^^^^^^^^^^^^^^^^^^^^^

AIアプリケーションでサポートするクエリの種類を理解することから始めます。

例

- 「カテゴリ’アウトドア’にある500ドル未満の商品を表示し、検索用語との関連性によってランク付けます。」

- “データ保持に言及したリージョン’EU’のポリシーを検索します。”

構造化列の選択
^^^^^^^^^^^^^^

**構造化列** のサポート

- 完全一致フィルタ例 ``region = 'EU'``

- レンジクエリー 例 ``price BETWEEN 100 AND 500``

- ファセット検索たとえば、すべての\ ``categories`` をリストします

ベストプラクティス

- ライブラリースキーマに正確に一致する **短くて明確な列名**
  を使用します。

- データ型を注意深く選択します。

- 識別子とカテゴリSKU、リージョン、カテゴリの場合は\ ``Text``

- ``Number`` 数値範囲価格、評価の場合

- 日付ベースのフィルタリングの場合 ``Date`` 発売日、有効期限

- ``Boolean`` 単純なyes/noフィルタisActive、inStock

- 自由形式のテキストフィールドを構造化列として含めないでください。非構造化列に含める必要があります。

非構造化列の選択
^^^^^^^^^^^^^^^^

**非構造化列** のサポート

- 全文セマンティック検索

- 検索拡張生成RAGクエリー

ベストプラクティス

- 埋め込みからメリットを得るリッチテキストを含む列を選択します。

- 説明

- レビュー

- ポリシー

- よくある質問の回答

- 詳細な注意事項

- 冗長または簡単なテキストを含む列を避けます。これにより、検索品質が低下する可能性があります。

- **非構造化列の数** を意図的に定義します。

- 希薄な検索結果が多すぎます。

- 少なすぎると、コンテキストの豊富さが制限されます。

スキーマデザインの例
^^^^^^^^^^^^^^^^^^^^

製品カタログ Hybrid KB
^^^^^^^^^^^^^^^^^^^^^^

**構造化列**

- ``SKU`` テキスト

- ``Category`` テキスト

- ``Price`` 数値

- ``AvailableSince`` 日付

- ``InStock`` ブール値

**非構造化列**

- ``ProductName``

- ``Features``

- ``DetailedDescription``

よくある落とし穴
^^^^^^^^^^^^^^^^

列名の不一致
^^^^^^^^^^^^

- 定義する列名は、ソースライブラリーCSVヘッダー、Googleシート列の列名と
  **正確に一致する必要があります** 。

- 名前のスペルが間違っている場合、または大文字と小文字の違いにより、取り込みエラーが発生します。

タイプの選択が不十分
^^^^^^^^^^^^^^^^^^^^

- 数値フィールドをテキストとしてマークしないでください。その逆も同様です。

- データ型を正しく使用して、適切な日付クエリをサポートします。

構造化列のオーバーロード
^^^^^^^^^^^^^^^^^^^^^^^^

- 長い自由形式のテキスト列を構造化として追加しないでください。これにより、フィルタリングのパフォーマンスが低下します。

非構造化列の使用が不十分
^^^^^^^^^^^^^^^^^^^^^^^^

- 非構造化テキストが複数の列にまたがっている場合FAQの質問、FAQの回答など、取り込む前に構造と組み合わせることを検討するか、両方を非構造化として明確に選択します。

シナリオ例
----------

あなたは、 **製品カタログ**
のハイブリッドナレッジベースをデザインしています。

構成例

- **構造化列**

- ``SKU`` テキスト

- ``Category`` テキスト

- ``Price`` 数値

- ``AvailableSince`` 日付

- **非構造化列**

- ``ProductName``

- ``DetailedDescription``

結果のクエリーがサポートされています

- ``Category`` および\ ``Price`` 範囲でフィルターします。

- ``AvailableSince`` で並べ替えます。

- 製品名と説明にわたってセマンティック検索を実行します。

障害対応
--------

不完全な検索結果
^^^^^^^^^^^^^^^^

- 非構造化列が選択され、正しくインデックス付けされたことを確認します。

- クエリーの構造化フィルターが制限しすぎないことを確認します。

フィルターが機能しない
^^^^^^^^^^^^^^^^^^^^^^

- 列が構造化されたものとしてマークされ、正しいデータ型であることを確認します。

- ライブラリースキーマと列名が正確に一致することを確認します。

インジェストエラー
^^^^^^^^^^^^^^^^^^

- すべての列名がソースライブラリーと正確に一致することを確認します。

- 列のデータ型が目的のスキーマと一致することを確認します。

関連トピック
------------

- :ref:`Knowledge Bases Reference Manual <Knowledge Bases Reference Manual>` 

- :ref:`Gen AI Builder Concepts (Assistants, Knowledge, Tools, Threads) <Gen AI Builder Concepts (Assistants, Knowledge, Tools, Threads)>` 

- :ref:`Retrieval Augmented Generation (RAG) <AI Factory terminology>` 

- :ref:`Embeddings explained <Fundamental AI Concepts>` 

- :ref:`Structures Reference Manual <Structures Reference Manual>` 

- :ref:`Create a Knowledge Base in Gen AI Builder <Create a Knowledge Base in Gen AI Builder>` 

- :ref:`Manage Knowledge Bases in Gen AI Builder <Manage Knowledge Bases in Gen AI Builder>` 

- `Hybrid Manager: Using Gen AI Builder <https://www.enterprisedb.com/docs/edb-postgres-ai/latest/hybrid-manager/ai-factory/gen-ai>`_ 
