IBM Cloud Docs
拡張分析およびログ関連タスク

拡張分析およびログ関連タスク

クラシック・エクスペリエンスのみ

この情報は、クラシック・エクスペリエンスのダイアログ・スキル分析に適用されます。 watsonx Assistantでの分析について詳しくは、 分析を使用したアシスタント全体の概要の確認 を参照してください。

ログデータにアクセスし、分析するために使用できるノートブックとAPIについて学んでください。

分析のための Jupyter ノートブックの使用

IBM が作成した Jupyter ノートブックを使用すると、動作やアシスタントを分析できます。 Jupyter ノートブックは、対話式計算処理のための Web ベースの環境です。 データを処理する小さいコードを実行して、コンピューティングの結果をすぐに確認することができます。

ノートブックは、英語のスキルでのみ使用できます。

分析ノートブック

分析ノートブックは、以下で使用できます。

  • IBM Watson® Studio
  • 標準の Python ツール

Watson Studio は、以下を行うことができる環境を提供します。

  • データの分析と視覚化に必要なツールを選択します。
  • データのクレンジングとシェーピングを行います。
  • ストリーミング・データを取り込みます。
  • 機械学習モデルを作成、訓練、展開する。

詳しくは、 製品資料を参照してください。

watsonx Assistant 継続的改善のベストプラクティスガイド では、これらのノートブックを最大限に活用する方法が説明されています。

Watson Studio でのノートブックの使用

次のノートブックを使用できます。

Watson Studioに設計されたノートブックを使用する場合は、以下の手順に従います

  1. Watson Studioを作成し、 プロジェクトを作成し、 Cloud Object Storageを追加します。

  2. Watson Studio コミュニティーから、ノートブックを選択します。

    開発プロセスの初期段階では watsonx Assistantのダイアログスキル分析を使用して、作業を開始するのに役立ててください。 ノートブック:

    • トレーニングデータ内の各意図と相関関係にある用語を調査し、調査すべき問題を特定できる可能性がある異常を見つけます。
    • お客様が提供するブラインドテストセットを使用して、正確性、精度、再現率、 F1 のような統計的指標におけるパフォーマンスを算出します。
    • よくある問題の原因を特定するのに役立つ高度な機能を提供します。例えば、なぜ特定の文章が誤認されることが多いのか、といった問題です。

    このノートブックが対話の改善に役立つ方法についてさらに詳しく知りたい場合は 、「対話スキル分析」 をお読みください。

  3. アシスタントのバージョンを展開し、会話ログデータを収集した後 watsonx Assistant を実行します。

  4. ノートブックに用意された手順に従って、ログからダイアログ交換の一部を分析します。

    最初に以下のノートブックを実行します。

    • 測定 (Measure): 適応範囲 (アシスタントがユーザーに応答するのに十分な自信を持っている頻度) と有効性 (アシスタントが応答する際に、応答内容がユーザーのニーズを満たしているかどうか) に重点を置いたメトリックを収集します。

    アシスタントの改善領域が理解しやすいように、洞察情報が視覚化されます。

  5. 効果的でない会話から得られるログのサンプル・セットをエクスポートしてから、それらのログを分析して、それらのログに注釈を付けます。

    例えば、応答が正しいかどうかを示します。 正しい場合は、応答が有用であるかどうかをマーキングします。 応答が正しくない場合は、根本原因を明らかにします。例えば、間違ったインテントやエンティティーが検出されたことや、間違ったダイアログ・ノードがトリガーされたことなどが考えられます。 根本原因を特定した後で、正しい選択項目を指定してください。

  6. 注釈を付けたスプレッドシートを watsonx Assistantに読み込ませます。

    • 効果: ログのより深い分析を提供し、アシスタントの改善に役立つステップを理解するのに役立ちます。
  7. watsonx Assistantの Dialog Flow Analysis を使用して、ダイアログを確認します。 このノートブックは、お客様が最もよく会話を中断するダイアログ・ノードを特定するために役立ちます。

    このノートブックが放棄の分析と評価にどのように役立つかについて詳しくは、 ユーザーが会話を中断した場所と理由を把握していますか?を参照してください。

このプロセスは、アシスタントを改善するために実行できる手順を理解するのに役立ちます。

標準の Python ツールでのノートブックの使用

標準の Python ツールを使用してノートブックを実行することを選択した場合は、GitHub からノートブックを取得できます。

watsonx Assistant 継続的改善のベストプラクティスガイド では、改善プロセスの各段階でどのノートブックを使用すべきかを説明しています。

ログ API の使用

/logs API を使用して、ユーザーとアシスタントの間で行われた会話の書き起こしデータに含まれるイベントを一覧表示できます。 v2 /message APIで作成された会話については、インスタンスレベルのエンドポイントを使用して すべてのワークスペースのログイベントのリストを表示する し、アシスタントIDでフィルタリングします。 詳しくは、 フィルター照会リファレンス を参照してください。

API は、ダイアログ・スキルによって定義された会話で交換されたメッセージのみをログに記録します。

ログの保管日数はサービス・プラン・タイプによって異なります。 詳しくは、ログの制限を参照してください。

Pythonを実行してログをエクスポートし、CSV形式に変換するには、 GitHubwatsonx Assistant export_logs_py.py ファイルをダウンロードします。

用語の理解

まず、 Watson Assistantに関連する用語の定義を確認します。

用語
用語 定義
アシスタント Watson Assistantを実装するアプリケーション(「チャットボット」と呼ばれることもあります)。
Assistant ID アシスタントの固有の識別子。
会話 個々のユーザーがアシスタントに送信する一連のメッセージと、アシスタントが返信するメッセージ。
会話 ID 個々のメッセージコールに追加されるユニークな識別子で、関連するメッセージ交換をまとめる。 Watson Assistantの V1を使用するアプリ開発者は、コンテキストオブジェクトのメタデータにIDを含めることで、会話内のメッセージ呼び出しにこの値を追加します。
カスタマー ID 顧客データにラベル付けするために使用できるユニークなID。顧客がデータの削除を要求した場合、そのデータを削除できる。
デプロイメント ID Watson Assistant API V1 バージョンのアプリケーション開発者が、メッセージを生成したデプロイメント環境を識別するために各ユーザー・メッセージと共に渡す固有のラベル。
インスタンス Watson Assistant の展開、固有の認証情報でアクセス可能。 単一の Watson Assistant インスタンスに複数のアシスタントが含まれていることがあります。
メッセージ メッセージとは、ユーザーがアシスタントに送信する単一の発話です。
スキルID スキルの固有の識別子。
ユーザー ユーザーとは、あなたのアシスタントとやりとりする人のことです。
ユーザー ID 特定のユーザーのサービス利用状況を追跡するために使用されるユニークなラベル。

ユーザーIDプロパティ顧客IDプロパティと同等ではありませんが、両方ともメッセージで渡すことができます。 「ユーザー ID」 フィールドは、請求処理の目的で使用量のレベルを追跡するために使用されます。 「顧客 ID」 フィールドは、ユーザーに関連付けられたメッセージのラベル付けおよび後続の削除をサポートするために使用されます。 お客様 ID はすべての Watson サービスにまたがって一貫して使用され、X-Watson-Metadata ヘッダーで指定されます。 ユーザーIDは Watson Assistant専用で使用され、各 /message APIコールのコンテキストオブジェクトに渡されます。

削除のためのメッセージ・データとユーザーの関連付け

Watson Assistantから、ユーザーのデータを完全に削除したい場合があるかもしれません。 削除機能を使用すると、概要メトリックには削除されたメッセージは含まれず、会話の総数が少なくなります。

開始前に

1 人以上のユーザーのメッセージを削除するには、まず各ユーザーの固有のお客様 ID にメッセージを関連付ける必要があります。 /message APIで送信されるメッセージのカスタマーID を指定するには、 X-Watson-Metadata: customer_id プロパティをヘッダーに含めます。 複数の顧客IDエントリを、 field=value のペアをセミコロンで区切って、 customer_id を使用して渡すことができます。次の例のように:

curl -X POST -u "apikey:3Df... ...Y7Pc9" \
 --header \
   "Content-Type: application/json" \
   "X-Watson-Metadata: customer_id={first-customer-ID};customer_id={second-customer-ID}" \
 --data "{\"input\":{\"text\":\"hello\"}}" \
 "{url}/v2/assistants/{assistant_id}/sessions/{session_id}/message?version=2019-02-28"

ここで、{url} は、インスタンスに適切な URL です。 詳しくは、 エンドポイント URLを参照してください。

customer_id ストリングにセミコロン (;) や等号 (=) の文字を含めることはできません。 各 Customer ID パラメーターがお客様の間で重複していないことを確認する必要があります。

customer_id 値を使用するメッセージを削除する方法については、 Labeling and deleting data in watsonx Assistant を参照してください。