3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricks Agent Bricks で SharePoint Online 上のドキュメントをナレッジソースにして Q&A チャットボットを作成する

Last updated at Posted at 2025-06-13

はじめに

以下の記事で SharePoint Online のファイルを連携したあとのユースケースの一つとして Agent Bricks を使用して Q&A チャットボットを作成してみます。

Agent Bricks とは

Agent Bricksは、一般的なAIユースケース向けに、ドメイン固有の高品質なAIエージェントシステムを構築および最適化するためのシンプルなノーコードアプローチを提供します。Agent Bricksは、AIエージェントシステムの実装を効率化し、ユーザーが問題、データ、メトリクスに集中できるようにします。

出典:https://learn.microsoft.com/en-us/azure/databricks/generative-ai/agent-bricks/

セットアップ

機能の有効化を行います。前提条件がまだ色々あるので、注意です。今回の記事では westus 環境を使っています。

サーバーレスでサポートされるワークスペースには、次のものが含まれます。

  • ワークスペースで Unity Catalog が有効になっている。
    • パートナーが提供する AI 支援機能がワークスペースで有効になっています。
    • サポートされているリージョンのいずれかのワークスペース: または .eastuswestus
    • Mosaic AI モデルサービングへのアクセス。
    • スキーマを使用した Unity Catalog の基盤モデルへのアクセス。system.ai
    • 予算が 0 以外のサーバーレス予算ポリシーへのアクセス。
  • 入力データを使用する準備ができている必要があります。次のいずれかを選択できます。

image.png

ソースは web 上で公開されている Delta Lake: The Definitive Guide を使用します。

image.png
出典:https://delta.io/

SharePoint に配置して、

image.png

前記事のパイプラインでファイルが連携されていることを確認します。

image.png

1. ナレッジソースを配置する

チャットボットが参照するナレッジを Volume に配置します。Lakeflow Connect の SharePoint 取込はバイナリ文字列となっているので、これを AI 処理のためのファイルとして書き出します

  1. Volume を作成しておきます。

    image.png

  2. ノートブックで対象のフォルダの pdf のレコードのみを抽出

    pyspark
    
    df = spark.sql("""
        WITH base AS (
            SELECT 
                file_id,
                file_metadata.name,
                source_metadata.drive_id,
                source_metadata.file_folder_path,
                content,
                REPLACE(
                    source_metadata.file_folder_path,
                    CONCAT('/drives/', source_metadata.drive_id, '/root:/')
                ) AS path
            FROM bronze_prod.sharepoint.documents
            WHERE source_metadata.mime_type = 'application/pdf'
        )
        SELECT 
            name AS file_name,
            content 
        FROM base 
        WHERE path LIKE 'databricks_knowledge%'
    """)
    df.printSchema()
    
    

    image.png

  3. ダウンストリームRAGの使用例を参考にして Volume に配置します。

    pyspark
    
    from pyspark.sql.functions import udf, struct
    
    # copy to volume_path and get file path
    def copy_to_disk(blob, filename) -> str:
        volume_path = "/Volumes/bronze_prod/sharepoint/databricks_knowledge_sources/"
        fname = volume_path + filename
        with open(fname, "wb") as f:
            f.write(blob.inline_content)
        return fname
    
    read_blob_as_file = udf(copy_to_disk)
    
    # Chain your UDF with the file access UDF for the file path.
    
    df = df.withColumn("text_content", read_blob_as_file("content", "file_name")).collect()
    
    
    
    
  4. 処理が完了すると、ファイルが Volume に配置されます。

    image.png

    ナレッジソースとして直接 Agent Bricks のソースにするためにファイルに書き出していますが、Vector Index 化する際には一時的でもよく、永続的なファイル化は必須ではないかと思います。

    Unity Catalog ファイルまたはベクター検索インデックスのいずれかを提供することを選択できます。
    UC ファイルの場合、txt、pdf、md、ppt/pptx、doc/docx のファイル タイプがサポートされています。Databricks では、32 MB 未満のファイルを使用することをお勧めします。

    出典:https://learn.microsoft.com/en-us/azure/databricks/generative-ai/agent-bricks/knowledge-assistant#step-1-configure-your-agent

    :

2. Agent を構築する

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

  1. 左部のメニューから Agent を選択し、ナレッジアシスタントを選択します。
    image.png

  2. 名前と役割を設定
    image.png

  3. Vector Store などを保存する対象のスキーマと、ナレッジソースとなる Volume パスを選択します。

    image.png

  4. 最後に回答に関してのガイドラインを定めます。

    image.png

最低限の設定としては以上です!

Agent の作成が開始すると、ナレッジソースなどの処理が開始されます。

image.png

完了後の画面は以下。

image.png

3. Agent に質問する

  1. Playgound にアクセスして、質問を投げてみます。
    image.png

  2. 少し待機すると Agent の回答が得られます。出典もしっかり載っています。

    image.png

    表示された回答については AI 審査が入ります。

    image.png

    出典が得られなかったり、エージェントに関係ない質問をするとここでインジケータが表示されます。
    image.png

    また、質問内容の提案をもらうことも可能です。

    image.png

4. Agent の品質を向上させる

Agent の回答について、専門家によるフィードバックを得ることで品質を改善していくことが可能です。

  1. 品質向上のセクションでレビューの必要な質問を追加します。

    image.png

    image.png

  2. ラベルつけセッションを開きます。
    image.png

  3. レビュー画面で、Agent による回答を確認し、この質問に対する回答時の注意事項とフィードバックを記入します。

    image.png

    image.png

  4. フィードバックを統合して、 Agent に反映します。

    image.png

  5. ちょっとわかりにくいですが、回答にストリーミングワークロードの記述が反映されました。

    image.png

所感

Agent Bricks は簡単に Gen AI アプリを構築し、改善サイクルを開始できる仕組みが組み込まれていることがわかりました。

今回は1ファイルだったため、ナレッジソースの処理時間がファイルの量に応じてどれくらい変わっていくのかというのはようけんsyとなるかなと思います。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?