メインコンテンツまでスキップ

Agent Bricks: Knowledge Assistantを使用して、ドキュメント上に高品質のチャットボットを作成します

このページでは、Agent Bricks: Knowledge Assistantを使用して、ドキュメントに対して質問と回答のチャットボットを作成し、対象分野の専門家からの自然言語フィードバックに基づいてその品質を向上させる方法について説明します。

Agent Bricks は、一般的なAIユースケース向けに、ドメイン固有の高品質のAIエージェントシステムを構築および最適化するためのシンプルなアプローチを提供します。

Agent Bricks: Knowledge Assistantとは?

Agent Bricks: Knowledge Assistant を使用して、ドキュメントに関する質問に答え、引用付きの高品質な回答を提供できるチャットボットを作成します。Knowledge Assistant は高度な AI を使用し、 Instructed Retrieverアプローチに従って、従来の検索拡張生成 (RAG) アプローチの制限に対処し、ユーザーが提供するドキュメントに基づいて最高品質の回答を提供します。

Agent Bricks:Knowledge Assistantは、次のユースケースをサポートするのに最適です。

  • 製品ドキュメントに基づいてユーザーの質問に答えます。
  • 人事ポリシーに関連する従業員の質問に答えます。
  • サポートナレッジベースに基づいて顧客からの問い合わせに回答します。

Knowledge Assistant を使用すると、専門家からの自然言語によるフィードバックに基づいてチャット エージェントの品質を向上させ、その動作を調整できます。エクスペリエンス内で直接質問やガイドラインを提供し、エージェントを共有して他のユーザーが共同作業を行い、エージェントのパフォーマンスを向上できるようにします。

エージェント ブリック: Knowledge Assistant は、アプリケーションのダウンストリームで使用できるエージェント エンドポイントを作成します。たとえば、下の画像は、AI Playground でチャットしてエンドポイントと対話する方法を示しています。エージェントに書類に関連する質問をすると、エージェントが引用とともに回答します。

Playground のナレッジアシスタントエンドポイント。

Agent Bricks は、デフォルトのストレージを使用して、各エージェントを動かす一時的なデータ変換、モデル チェックポイント、および内部メタデータを保存します。エージェントを削除すると、エージェントに関連付けられているすべてのデータがデフォルトのストレージから削除されます。

必要条件

ナレッジアシスタントエージェントの作成

へ移動エージェントアイコン。ワークスペースの左側のナビゲーション ペインにある エージェントKnowledge Assistant タイルから、 [ビルド] をクリックします。

ステップ 1: エージェントを構成する

[ビルド] タブで、エージェントを構成し、質問に答えるために使用する知識ソースを提供します。

  1. 名前 フィールドに、エージェントの名前を入力します。

  2. 説明 フィールドで、エージェントが実行できる操作を説明します。

  3. ナレッジ ソース パネルで、ナレッジ ソースを追加します。Unity Catalog ファイルまたはベクトル検索インデックスのいずれかを指定することを選択できます。

UC ファイルの場合、txt、pdf、md、ppt/pptx、および doc/docx のファイル タイプがサポートされています。50 MB を超えるファイルは、取り込み中に自動的にスキップされ、ナレッジ ベースには含まれません。

  1. タイプ で、[ UCファイル ]を選択します。
  2. ソース フィールドで、Unity Catalog のボリュームまたはファイルを含むボリューム ディレクトリを選択します。
  3. 名前 フィールドに、ナレッジ ソースの名前を入力します。
  4. [コンテンツの説明] で、エージェントがこのデータソースをいつ使用するかを理解できるように、ナレッジ ソースに含まれるコンテンツを記述します。
  1. (オプション)ナレッジ ソースをさらに追加する場合は、[ ナレッジ ソースの追加 ] をクリックします。 最大 10 個のナレッジ ソースを提供できます。

  2. (オプション) 指示 フィールドで、エージェントが応答する方法のガイドラインを指定します。

  3. エージェントの作成 をクリックします。

エージェントを作成し、提供したナレッジ ソースを同期するには、最大で数時間かかる場合があります。エージェントの準備が整うと、右側のパネルに同期されたナレッジ ソースが表示されます。

重要

ナレッジソースにファイルを更新または追加する場合は、クリックする必要があります。 同期アイコン。 エージェントが変更を取得できるように同期します。同期は増分的に行われます。たとえば、以前に同期したUnity Catalogボリュームに新しいファイルを追加すると、同期では新しく追加されたファイルのみが処理されます。

ナレッジ アシスタントの作成者だけがナレッジ ソースを同期できます。

ステップ 2: エージェントをテストする

エージェントの構築が完了したら、エージェントとチャットしてテストします。エージェントは、その知識に関連する質問に対して引用で応答する必要があります。

  1. ビルドタブ でエージェントと直接チャットを開始します。
  2. (オプション) 「Playground で開く」 をクリックして、 AI Playgroundでチャットすることもできます。AI 支援機能が有効になっている場合は、 AI ジャッジ合成質問生成を 有効にして、エージェントの評価に役立てることができます。
  3. エージェントへの質問を入力します。
  4. その応答を評価します。
    1. 思考を表示 」をクリックして、エージェントが質問にどのように回答したかを確認します。
    2. 完全なトレースを表示するには、 「トレースの表示」 をクリックします。開発プロセス中に品質評価を追跡するために、UI のトレースにラベルを追加できます。
    3. エージェントが参照として引用しているファイルを確認するには、 [ソースの表示] をクリックします。これにより、確認できるソースのリストを含むサイドパネルが開きます。

エージェントのパフォーマンスに満足している場合は、エージェントをそのまま使い続けてください。

ステップ 3: 品質を向上させる

エージェント ブリック: Knowledge Assistant は、自然言語のフィードバックに基づいてエージェントの動作を調整できます。構成ページを通じて専門家からのフィードバックを収集し、エージェントの品質を向上させます。エージェントのラベル付きデータを収集すると、エージェントの品質と動作が向上します。

[例] タブで、ユーザーが尋ねる質問や、エージェントが以前に間違えた質問を追加します。あるいは、 Unity Catalogテーブルからラベル付きデータを直接インポートすることもできます。

  1. ラベルに質問を追加します:

    1. [ + 追加 ] をクリックして質問を追加します。
    2. [ 質問の追加 ] モーダルに、質問を入力します。
    3. 追加 をクリックします。質問がUIに表示されます。
    4. 評価するすべての質問を追加するまで繰り返します。
    5. 質問を削除するには、ケバブメニューをクリックし、[ 削除 ]をクリックします。
  2. 質問の追加が完了したら、エージェントを他のユーザーと共有してレビューし、高品質のラベル付きデータセットを構築することができます。右上隅のケバブメニューをクリックしますケバブメニューアイコン。権限を管理します

    専門家がアクセスしてフィードバックを提供するには、次の権限を付与する必要があります。

    • エージェント設定ページからのCAN_MANAGE権限
  3. Agent Bricks: Knowledge Assistant 構成ページへのリンクを共有して、専門家からのフィードバックを収集します。

  4. データにラベルを付けるには、質問をクリックし、表示されるペインに ガイドライン を追加します。ガイドラインは保存後すぐに適用されます。

  5. 構成ページまたはAI Playgroundでエージェントを再度テストし、パフォーマンスの向上を確認します。 必要に応じて、質問やガイドラインを追加して、行動の改善を続けます。

(オプション)ラベル付きデータのインポートとエクスポート

新しい質問とフィードバックを Unity Catalog テーブルから直接インポートするには:

  1. インポート 」をクリックします。

  2. [ ソース ] フィールドで、ラベル付けされたデータを含む Unity Catalog テーブルを選択します。

    テーブルには、次のスキーマが必要です。

    • eval_id: string

    • request: string

    • guidelines: array

      • items: string
    • metadata: string

    • tags: string

  3. インポート 」をクリックします。

新しい質問とガイドラインは、右側のラベル付きデータ テーブルに統合されます。

ラベル付けされたデータをUnity Catalogテーブルとしてエクスポートするには:

  1. [エクスポート] をクリックします。
  2. [ スキーマ] フィールドで、データを保存する Unity Catalog スキーマの場所を選択します。
  3. [ テーブル名] フィールドに、テーブルの名前を入力します。
  4. [エクスポート] をクリックします。

ラベル付けされたデータで新しいテーブルが作成されます。

権限を管理する

デフォルトでは、エージェント ブリックの作成者とワークスペース管理者のみがエージェントに対する権限を持ちます。他のユーザーがエージェントを編集または照会できるようにするには、明示的に権限を付与する必要があります。

エージェントの権限を管理するには:

  1. Agent Bricks でエージェントを開きます。

  2. 上部のケバブメニューアイコン。ケバブメニュー。

  3. [権限の管理] をクリックします。

  4. [権限設定] ウィンドウで、ユーザー、グループ、またはサービスプリンシパルを選択します。

  5. 付与する権限を選択してください:

    • 管理可能 : 権限の設定、エージェント構成の編集、品質の向上など、エージェント ブリックの管理を許可します。
    • クエリ可能 : AI PlaygroundおよびAPIを通じて Agent Bricks エンドポイントをクエリできます。 この権限のみを持つユーザーは、エージェント ブリックでエージェントを表示または編集することはできません。
  6. [ 追加 ] をクリックします。

  7. 保存 をクリックします。

重要

ナレッジ アシスタントの作成者だけがナレッジ ソースを同期できます。

エージェント エンドポイントをクエリする

エージェントページで、 モデルサービングアイコン。 右上のエージェント ステータスを参照して、デプロイされたエージェント エンドポイントを取得し、エンドポイントの詳細を確認します。

作成されたナレッジ アシスタント エンドポイントをクエリする方法は複数あります。AI Playground で提供されているコード例を開始点として使用します。

  1. [ビルド] タブで、[プレイ グラウンドで開く] をクリックします。
  2. Playground から [ コードを取得] をクリックします。
  3. エンドポイントの使用方法を選択します。
    • curl を使用してエンドポイントをクエリするコード例として、 [Curl API ] を選択します。
    • Python を使用してエンドポイントと対話するためのコード例として、 Python API を選択します。

Databricks SDK を使用してナレッジ アシスタントを管理する

Databricks SDK for Pythonを使用すると、ナレッジ アシスタントとそのナレッジ ソースをプログラムで作成および管理できます。利用可能な API 操作の完全なリストについては、 Knowledge Assistants API リファレンスを参照してください。

ナレッジアシスタントを作成する

次の例では、表示名、説明、および手順を含む新しいナレッジ アシスタントを作成します。

Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.knowledgeassistants import KnowledgeAssistant

w = WorkspaceClient()

knowledge_assistant = KnowledgeAssistant(
display_name="<display-name>",
description="<description>",
instructions="<instructions>",
)
created = w.knowledge_assistants.create_knowledge_assistant(knowledge_assistant=knowledge_assistant)
print(created)

<display-name><description><instructions>ナレッジ アシスタントの値に置き換えます。

ナレッジアシスタントをワークスペース間で移行する

SDK を使用すると、ナレッジ アシスタントをあるワークスペースから別のワークスペースに複製できます。次の例では、ソース ワークスペースからナレッジ アシスタントを取得し、そのナレッジ ソースとともにターゲット ワークスペースに再作成します。

注記

ターゲット ワークスペースで参照されるナレッジ ソース (一括検索インデックスやUnity Catalogボリュームなど) は、ナレッジ ソースを作成する前にターゲット ワークスペースにすでに存在している必要があります。

Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.knowledgeassistants import (
KnowledgeAssistant,
KnowledgeSource,
IndexSpec,
FilesSpec,
)

# Retrieve the knowledge assistant from the source workspace
source_client = WorkspaceClient()
ka = source_client.knowledge_assistants.get_knowledge_assistant(name="<source-knowledge-assistant-name>")
print(ka.display_name, ka.description, ka.instructions)

# Set up the client for the target workspace
target_client = WorkspaceClient(
host="<target-workspace-url>",
token="<target-workspace-token>",
)

# Create the knowledge assistant in the target workspace
knowledge_assistant = KnowledgeAssistant(
display_name=ka.display_name,
description=ka.description,
instructions=ka.instructions,
)
created = target_client.knowledge_assistants.create_knowledge_assistant(knowledge_assistant=knowledge_assistant)
print(created)

# Re-create knowledge sources in the target workspace
index_source = KnowledgeSource(
display_name="<knowledge-source-name>",
description="<knowledge-source-description>",
source_type="index",
index=IndexSpec(
index_name="<catalog.schema.index-name>",
text_col="<text-column>",
doc_uri_col="<doc-uri-column>",
),
)

files_source = KnowledgeSource(
display_name="<knowledge-source-name>",
description="<knowledge-source-description>",
source_type="files",
files=FilesSpec(
path="<volume-path>",
),
)

created_index_source = target_client.knowledge_assistants.create_knowledge_source(
parent=created.name,
knowledge_source=index_source,
)
print(created_index_source)

created_files_source = target_client.knowledge_assistants.create_knowledge_source(
parent=created.name,
knowledge_source=files_source,
)
print(created_files_source)

プレースホルダー値を、ソース ワークスペースとターゲット ワークスペースの適切な値に置き換えます。<source-knowledge-assistant-name>knowledge-assistants/<knowledge-assistant-id>形式に従います。

ナレッジアシスタントを評価する

このノートブックでは、キュレーションされた評価データセットとカスタム スコアラーを使用して Databricks Knowledge Assistant を評価する方法を示します。

ノートブックを新しいタブで開く

制限

  • 英語のみがサポートされています。

  • 50 MB を超えるファイルは、取り込み中に自動的にスキップされ、ナレッジ ベースには含まれません。

  • 名前がアンダースコア ( _ ) またはピリオド ( . ) で始まるファイルは、取り込み中に自動的にスキップされ、ナレッジ ベースには含まれません。

  • Unity Catalog テーブルはサポートされていません。

  • 埋め込みモデルとして databricks-gte-large-en を使用するベクトル検索インデックスのみがサポートされます。

  • databricks-gte-large-enモデル エンドポイントでは AI ガードレールとレート制限を無効にする必要があります。「モデルサービング エンドポイントでのAIゲートウェイの構成」を参照してください。

  • トレースを機能させるには、 MLflow (Beta) の本番運用モニタリングを有効にする必要があります。 トレースが必要ない場合は、このプレビューを有効にする必要はありません。「Databricks プレビューの管理」を参照してください。