以下の API を使用して、ナレッジベースの作成、更新、詳細の照会、一覧取得、削除を行います。
ナレッジベースの作成
create_knowledge_base を呼び出してナレッジベースを作成します。システムは対応するドキュメントテーブルとチャンクテーブルを Tablestore に自動的に作成します。
リクエストパラメーター
パラメーター | タイプ | 説明 |
| string | (必須) ナレッジベースの一意の名前。長さは 1〜64 文字で、先頭は英字である必要があります。英字、数字、アンダースコア (_) のみ使用できます。 |
| string | ナレッジベースの説明。最大サイズは 4 KB です。 |
| boolean | サブスペースマルチテナンシーを有効にするかどうかを指定します。詳細については、「サブスペースマルチテナンシー」をご参照ください。デフォルト値は |
| list<string> | タグのリスト。合計サイズは 4 KB を超えることはできません。 |
| list<object> | メタデータフィールドを定義します。詳細については、以下のセクションをご参照ください。 |
| object | 埋め込み設定。指定しない場合、システムはデフォルトで Model Studio の |
| object | デフォルトの取得設定。 |
メタデータフィールドの定義
各要素には、name (フィールド名) と type (フィールドタイプ) が含まれます。
項目 | 説明 |
サポートされているタイプ |
説明
|
フィールド名 | 最大長は 128 文字です。名前にピリオド ( |
フィールド数 | 最大 200 フィールド。上限の引き上げをリクエストするには、チケットを送信するか、Tablestore サポートグループ (ID: 36165029092) を通じてテクニカルサポートにお問い合わせください。 |
予約済みフィールド |
|
ナレッジベースの作成後は、メタデータフィールドの定義を追加または削除することはできません。作成前に、結果のフィルタリングに使用する可能性のあるすべてのディメンションを特定し、定義してください。
埋め込み設定
パラメーター | タイプ | 説明 |
| string | モデルプロバイダー。デフォルト値は、組み込みの Model Studio モデルに対応する |
| string | モデル名。デフォルト値は |
| int | ベクトルのディメンション。デフォルト値は 1024 です。 |
| string |
|
| string |
|
取得設定
パラメーター | タイプ | 説明 |
| list<string> | デフォルトの取得タイプは |
| int | ベクトル検索から返す結果の数。デフォルト値は 20 です。 |
| int | 全文検索から返す結果の数。デフォルト値は 20 です。 |
| string | 再ランキングのタイプ: |
| int | 再ランキング後に返す結果の数。デフォルト値は 20 です。 |
| double | ベクトル検索結果の重み。デフォルト値は 0.7 です。 |
| double | 全文検索結果の重み。デフォルト値は 0.3 です。 |
| double | RRF モードでのベクトル検索の重み。デフォルト値は 1.0 です。 |
| double | RRF モードでの全文検索の重み。デフォルト値は 1.0 です。 |
| int | RRF アルゴリズムの |
| string | 再ランキングモデルのプロバイダー。デフォルト値は、Model Studio に対応する |
| string | 再ランキングモデルの名前。デフォルト値は |
取得設定の詳細については、「取得と再ランキング」をご参照ください。
コード例
以下の例は、ナレッジベースを作成する方法を示しています。
最小限の例
デフォルト設定でナレッジベースを作成します。デフォルトでは、システムは埋め込みに Model Studio の text-embedding-v4 モデル (1024 ディメンション)、取得にハイブリッド検索 (ベクトル検索と全文検索の組み合わせ)、再ランキングに重み付けフュージョン (ベクトル検索: 0.7、全文検索: 0.3) を使用します。
client.create_knowledge_base({
"knowledgeBaseName": "product_docs_kb"
})完全な例
カスタムの埋め込みモデル、取得戦略、メタデータフィールドを使用してナレッジベースを作成します:
client.create_knowledge_base({
"knowledgeBaseName": "product_docs_kb",
"description": "Product documentation knowledge base",
"subspace": True,
"tags": ["Product", "Documentation"],
"metadata": [
{"name": "author", "type": "string"},
{"name": "category", "type": "string"},
{"name": "publish_date", "type": "date"}
],
"embeddingConfiguration": {
"provider": "bailian",
"model": "text-embedding-v4",
"dimension": 1024
},
"retrievalConfiguration": {
"searchType": ["DENSE_VECTOR", "FULL_TEXT"],
"denseVectorSearchConfiguration": {"numberOfResults": 10},
"fullTextSearchConfiguration": {"numberOfResults": 10},
"rerankingConfiguration": {
"type": "WEIGHT",
"numberOfResults": 5,
"weightConfiguration": {
"denseVectorSearchWeight": 0.7,
"fullTextSearchWeight": 0.3
}
}
}
})レスポンス
成功レスポンス:
{"code": "SUCCESS", "data": {}, "message": "succeed"}エラーレスポンスの例:
{
"code": "INVALID_PARAMETER",
"message": "Unknown field type: strings, supported types: string, long, double, boolean, date, string_list, long_list, double_list, boolean_list, date_list"
}注意事項
embeddingConfigurationは作成後に変更できません。異なる埋め込みモデルを使用するには、ナレッジベースを削除して再作成する必要があります。作成後に
metadataフィールドの定義を追加または削除することはできません。作成後に
subspace設定を変更することはできません。metadataフィールド名にピリオド (.) を含めたり、予約済みフィールドにしたりすることはできません。フィールドタイプのスペルを間違えるとエラーが発生します。
ナレッジベースの更新
update_knowledge_base を呼び出して、ナレッジベースの説明、タグ、または取得設定を更新します。
リクエストパラメーター
パラメーター | タイプ | 説明 |
| string | ナレッジベースの名前 (必須)。 |
| string | ナレッジベースの新しい説明。最大サイズは 4 KB です。 |
| list<string> | 新しいタグのリスト。 |
| object | 新しいデフォルトの取得設定。 |
description、tags、または retrievalConfiguration のうち、少なくとも 1 つのパラメーターを指定する必要があります。指定しない場合、エラーが返されます。
コード例
client.update_knowledge_base({
"knowledgeBaseName": "product_docs_kb",
"description": "Updated description",
"tags": ["Live"],
"retrievalConfiguration": {
"searchType": ["DENSE_VECTOR", "FULL_TEXT"],
"rerankingConfiguration": {
"type": "RRF",
"numberOfResults": 10,
"rrfConfiguration": {
"denseVectorSearchWeight": 0.7,
"fullTextSearchWeight": 0.3,
"k": 60
}
}
}
})注意事項
retrievalConfigurationを更新すると、その設定が後続のすべてのRetrieveリクエストの新しいデフォルトになります。この変更は、独自の設定を指定するRetrieveリクエストには影響しません。この API で
embeddingConfigurationまたはmetadataを変更することはできません。
ナレッジベースの詳細の照会
describe_knowledge_base を呼び出して、ナレッジベースの完全な設定を取得します。
リクエストパラメーター
パラメーター | タイプ | 説明 |
| string | ナレッジベースの名前 (必須)。 |
コード例
resp = client.describe_knowledge_base({
"knowledgeBaseName": "product_docs_kb"
})
data = resp["data"]
print(f"Name: {data['knowledgeBaseName']}")
print(f"Embedding: {data['embeddingConfiguration']}")
print(f"Retrieval Configuration: {data['retrievalConfiguration']}")レスポンス
レスポンスフィールド
フィールド | タイプ | 説明 |
| string | ナレッジベースの名前。 |
| string | ナレッジベースの説明。 |
| list<string> | タグのリスト。 |
| boolean | サブスペースが有効かどうかを示します。 |
| int | 作成タイムスタンプ (ミリ秒)。 |
| int | 最終更新タイムスタンプ (ミリ秒)。 |
| list<object> | メタデータフィールドの定義。 |
| object | 埋め込み設定。 |
| object | 取得設定。 |
レスポンスの例
{
"code": "SUCCESS",
"data": {
"knowledgeBaseName": "product_docs_kb",
"description": "Product documentation knowledge base",
"tags": ["Product", "Documentation"],
"subspace": true,
"metadata": [{"name": "author", "type": "string"}],
"createdAt": 1774494642525,
"updatedAt": 1774494642525,
"embeddingConfiguration": {
"provider": "bailian",
"model": "text-embedding-v4",
"dimension": 1024
},
"retrievalConfiguration": {
"searchType": ["DENSE_VECTOR", "FULL_TEXT"],
"denseVectorSearchConfiguration": {"numberOfResults": 20},
"fullTextSearchConfiguration": {"numberOfResults": 20},
"rerankingConfiguration": {
"type": "WEIGHT",
"numberOfResults": 20,
"weightConfiguration": {
"denseVectorSearchWeight": 0.7,
"fullTextSearchWeight": 0.3
}
}
}
},
"message": "succeed"
}ナレッジベースの一覧取得
list_knowledge_base を呼び出して、現在のプロジェクト内のすべてのナレッジベースのページ分割されたリストを取得します。
リクエストパラメーター
パラメーター | タイプ | 説明 |
| int | 返す結果の数。デフォルト値は 10、最大値は 100 です。 |
| string | 結果の次のページを取得するためのページネーショントークン。最初のリクエストではこれを省略します。 |
コード例
# 最初のページを取得
resp = client.list_knowledge_base({"maxResults": 10})
for kb in resp["data"]["knowledgeBases"]:
print(f"{kb['knowledgeBaseName']} - {kb.get('description', '')}")
# 次のページを取得
next_token = resp["data"].get("nextToken")
if next_token:
resp = client.list_knowledge_base({
"maxResults": 10,
"nextToken": next_token
})レスポンス
フィールド | タイプ | 説明 |
| list<object> | ナレッジベースのリスト。各項目には |
| string | ページネーショントークン。空または null の値は、これ以上結果がないことを示します。 |
注意事項
maxResults の最大値は 100 です。100 を超える値を指定すると、INVALID_PARAMETER エラーが返されます。
ナレッジベースの削除
delete_knowledge_base を呼び出して、ナレッジベースを削除します。
この操作は元に戻せません。ナレッジベースを削除すると、関連するすべてのドキュメントデータとチャンクデータも削除されます。
リクエストパラメーター
パラメーター | タイプ | 説明 |
| string | ナレッジベースの名前 (必須)。 |
コード例
client.delete_knowledge_base({
"knowledgeBaseName": "product_docs_kb"
})レスポンス
成功レスポンス:
{"code": "SUCCESS", "data": {}, "message": "succeed"}エラーレスポンスの例:
{"code": "NOT_FOUND", "message": "KnowledgeBaseName:[product_docs_kb] not found"}