ナレッジベースは、ドキュメントストレージとセマンティック検索用の Agent Storage コンテナです。CLI の kb サブコマンドを使用して、ナレッジベースの作成、ドキュメントのアップロード、ベクトル検索と全文検索の結果を組み合わせたハイブリッド検索の実行、サブスペースによるマルチテナントデータの分離などを行います。
前提条件
Tablestore Agent Storage CLI がインストールされ、アクセス認証情報が設定済みであること (「Agent Storage CLI」をご参照ください)
oss_endpointとoss_bucket_nameが設定された OSS バケット、または CLI によって自動作成されたマネージドバケットがあること
ナレッジベースの管理
CLI からナレッジベースを作成、表示、一覧表示、削除します。
ナレッジベースの作成
最小限の作成コマンド:
tablestore-agent-cli kb create --name my_kb --description "Product documentation knowledge base"
サブスペースを有効にし、カスタム埋め込みモデルを指定する場合:
tablestore-agent-cli kb create --name product_docs \
--description "Product documentation" \
--tags "tech,docs" \
--subspace \
--embedding-provider bailian \
--embedding-model text-embedding-v4 \
--embedding-dimension 1024
パラメーター:
|
パラメーター |
必須 |
デフォルト |
説明 |
|
|
はい |
— |
ナレッジベース名。英字、数字、アンダースコア (_) のみ使用でき、先頭は英字にする必要があります。1~64 文字。 |
|
|
いいえ |
— |
説明。最大 4 KB。 |
|
|
いいえ |
|
サブスペースパーティショニングを有効にします。有効にすると、ドキュメントのアップロードと検索でサブスペースの指定が必須になります。詳細については、「サブスペースのワークフロー」をご参照ください。 |
|
|
いいえ |
— |
タグ。カンマ区切り。合計サイズは最大 4 KB。 |
|
|
いいえ |
— |
JSON 文字列形式のメタデータスキーマ。 |
|
|
いいえ |
— |
メタデータスキーマを含む JSON ファイルへのパス。 |
|
|
いいえ |
— |
リクエストボディ全体を含む JSON ファイルへのパス。他のパラメーターとは併用できません。 |
|
|
いいえ |
— |
埋め込みサービスプロバイダー。有効な値: |
|
|
いいえ |
— |
埋め込みモデル名。例: |
|
|
いいえ |
— |
ベクターの次元。 |
|
|
いいえ |
— |
カスタム埋め込みサービス用の API キー。 |
|
|
いいえ |
— |
カスタム埋め込みサービスの URL。URL は事前に Tablestore に登録しておく必要があります。 |
|
|
いいえ |
— |
検索設定を含む JSON ファイルへのパス。 |
メタデータフィールドの型: string、long、double、boolean、date、およびそれらのリスト形式。各ナレッジベースは最大 200 個のメタデータフィールドをサポートし、各フィールド名の最大長は 128 文字です。
ナレッジベースの一覧表示
tablestore-agent-cli kb list
tablestore-agent-cli kb list --limit 50
kb list は自動的にページ分割し、現在のアカウントのすべてのナレッジベースを返します。 --limit はページサイズを設定しますが、結果の総数には影響しません。
ナレッジベースの表示
tablestore-agent-cli kb describe --name my_kb
出力には、基本メタデータ、埋め込み設定、検索設定が含まれます。
ナレッジベースの削除
ナレッジベースを削除すると、すべてのドキュメントとベクターデータが完全に削除されます。この操作は元に戻せません。
tablestore-agent-cli kb delete --name my_kb # TTY で確認を求められます。
tablestore-agent-cli kb delete --name my_kb -y # 確認をスキップします。
ドキュメントの管理
既存のナレッジベースのドキュメントを追加、表示、一覧表示、削除します。
ドキュメントの追加
CLI は、ローカルファイル、ローカルディレクトリ、既存の OSS オブジェクトの 3 つのソースをサポートしています。
ローカルファイルの追加:
tablestore-agent-cli kb doc-add --kb my_kb --file ./report.pdf
tablestore-agent-cli kb doc-add --kb my_kb --file ./doc1.pdf --file ./doc2.md
ローカルディレクトリのスキャン (再帰および glob フィルターをサポート):
先頭および末尾の* ワイルドカードがサポートされています (たとえば、*.pdf)。
tablestore-agent-cli kb doc-add --kb my_kb --dir ./docs
tablestore-agent-cli kb doc-add --kb my_kb --dir ./docs --include "*.pdf,*.md"
tablestore-agent-cli kb doc-add --kb my_kb --dir ./docs --exclude "*.tmp" --no-recursive
既存の OSS オブジェクトの追加:
tablestore-agent-cli kb doc-add --kb my_kb --oss-key oss://my-bucket/data.pdf
サブスペースとメタデータの指定:
tablestore-agent-cli kb doc-add --kb my_kb --file ./doc.pdf --subspace tenant_A --metadata '{"author":"Alice"}'
パラメーター:
|
パラメーター |
必須 |
デフォルト |
説明 |
|
|
はい |
— |
ナレッジベース名。 |
|
|
はい (いずれか 1 つを選択) |
— |
ドキュメントソース。パラメーターを複数回指定することで、複数のアイテムをアップロードできます。 |
|
|
サブスペースが有効な場合は必須 |
— |
サブスペース名。 |
|
|
いいえ |
— |
JSON 文字列形式のメタデータ。 |
|
|
いいえ |
— |
メタデータを含む JSON ファイルへのパス。 |
|
|
いいえ |
— |
Glob 許可リスト。カンマ区切り。 |
|
|
いいえ |
— |
Glob 拒否リスト。カンマ区切り。 |
|
|
いいえ |
|
サブディレクトリを再帰的にスキャンします。 |
|
|
いいえ |
|
アップロードの同時実行数。 |
サポートされているファイル形式:PDF、DOCX、DOC、WPS、PPTX、PPT、TXT、Markdown、HTML、XLSX、XLS、PNG、JPG、BMP、GIF。
ドキュメントの表示
tablestore-agent-cli kb doc-get --kb my_kb --doc-id doc-123
tablestore-agent-cli kb doc-get --kb my_kb --oss-key data.pdf
出力には、ドキュメントのステータス (保留中、完了、または 失敗)、チャンク数、メタデータ、およびその他の情報が含まれます。
ドキュメントの一覧表示
tablestore-agent-cli kb doc-list --kb my_kb
tablestore-agent-cli kb doc-list --kb my_kb --subspace tenant_A,tenant_B
kb doc-list は自動的にページネーションを行い、ナレッジベース内のすべてのドキュメントを返します。--subspace では、複数のサブスペースをカンマで区切って指定できます。
ドキュメントの削除
tablestore-agent-cli kb doc-remove --kb my_kb --doc-id doc-123
tablestore-agent-cli kb doc-remove --kb my_kb --oss-key data.pdf --delete-file
--delete-file は OSS のソースファイルも削除します。このフラグを指定しない場合、kb doc-remove はナレッジベースからインデックスのみを削除し、OSS のソースファイルは保持します。
ドキュメントの検索
ナレッジベースに対して、ベクトル検索、全文検索、またはハイブリッド検索を実行します。
基本検索
デフォルトでは、kb retrieveは、ベクトルと全文検索のシグナルを組み合わせたハイブリッド検索を実行し、上位 20 件の結果を返します:
tablestore-agent-cli kb retrieve --kb my_kb --query "System architecture design"
高度な検索
以下の例では、検索タイプの制御、メタデータフィルター、マルチサブスペース検索、リランク戦略について説明します。完全なパラメーターリストについては、「パラメーター」をご参照ください。
検索タイプと結果数の指定:
tablestore-agent-cli kb retrieve --kb my_kb --query "SSL certificate" --search-type DENSE_VECTOR --top-k 5
メタデータによる絞り込み:
tablestore-agent-cli kb retrieve --kb my_kb --query "Deployment guide" --filter '{"author":{"equals":"Alice"}}'
複数のサブスペースを横断した検索:
tablestore-agent-cli kb retrieve --kb my_kb --query "policy" --subspace "tenant_A,tenant_B"
リランク戦略の指定:
tablestore-agent-cli kb retrieve --kb my_kb --query "Optimization plan" --rerank-type WEIGHT --weight-dense 0.7 --weight-fulltext 0.3
パラメーター
|
パラメーター |
デフォルト |
説明 |
|
|
|
検索タイプ。有効な値: |
|
|
|
dense、full-text、rerank の各ステージの結果数を同時に設定します。 |
|
|
— |
リランク戦略。有効な値: |
|
|
— |
RRF リランクのパラメーター。 |
|
|
— |
WEIGHT リランクにおける dense と full-text の結果に対する重み。 |
|
|
— |
MODEL リランク用のモデルプロバイダーとモデル名。例: |
|
|
— |
JSON 文字列形式のメタデータフィルターです。 |
|
|
— |
メタデータフィルターを含む JSON ファイルへのパス。 |
|
|
— |
サブスペースのリスト。カンマ区切り。 |
メタデータフィルターの演算子
|
演算子 |
例 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
サブスペースのワークフロー
サブスペースは、単一のナレッジベース内で、複数のテナント、ビジネスライン、またはシナリオにまたがるデータを分離します。典型的なユースケースには、マルチテナント SaaS の分離、ビジネスラインごとのアーカイブ、A/B テストなどがあります。
サブスペースを有効にして使用するには:
ナレッジベースを作成する際は、
--subspaceでサブスペースパーティショニングを有効にしてください。詳細については、「ナレッジベースの作成」をご参照ください。ドキュメントをアップロードする際は、
--subspace <name>でターゲットサブスペースを指定します。詳細については、「ドキュメントの追加」をご参照ください。ナレッジベースをクエリする場合、
--subspace "<name1>,<name2>"で検索するサブスペースを 1 つ以上指定してください。 詳細については、「詳細検索」をご参照ください。
エンドツーエンドの例:
# サブスペースを有効にしてナレッジベースを作成します。
tablestore-agent-cli kb create --name multi_tenant_kb --subspace
# ドキュメントをアップロードする際にサブスペースを指定します。
tablestore-agent-cli kb doc-add --kb multi_tenant_kb --file ./doc.pdf --subspace tenant_A
# 検索する際に複数のサブスペースを指定します。
tablestore-agent-cli kb retrieve --kb multi_tenant_kb --query "policy" --subspace "tenant_A,tenant_B"