AIエージェントによるデータの可視化について

お世話になっております。
AIエージェント機能におけるデータセットの可視化方法についてご相談させていただきたく存じます。
AIエージェントを活用して一連のデータ分析作業を実行したいと考えておりますが、その中で可視化を行う場合、Agent Toolsのような形で可視化機能は提供されているのでしょうか。
あるいは、可視化用のコードを生成するエージェントを用意し、その結果を表示する形になるのでしょうか。
ご教示いただけますと幸いです。何卒よろしくお願いいたします。
Answers
-
Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 265 Dataiker
ご質問に記載の「可視化機能」は「チャートなどを利用して、データの内容をビジュアル表示する機能」を指していると理解いたしました。その前提ですと、現時点でDataikuが提供するAgent Toolには、データをチャート表示する機能はまだ存在しない状況です。(もし、データをテーブル形式で可視化できれば良い場合には、標準のToolで対応可能です。)
独自Toolの開発は可能ですが、チャットUI(Answer / Agent Connect)側で、まだUI内のチャート表示に対応していない状況となります。今後、Answers / Agent Connectから自然言語で問い合わせて、結果をチャート表示する機能の提供は予定されていますので、状況によっては、そちらをお待ちいただく案も考えられます(具体的な提供時期はまだ未公開となります)。
現時点で対応する場合には、独自のToolを開発して、matplotlib, seaborn, plotlyなどのPythonコードをLLMに生成させ、Tool内でチャート画像とHTMLを生成し、その内容を独自開発したWebapp上で表示するような対応になると思います(開発作業がそれなりに発生することにはなります)。
また、別の機能とはなりますが、データからインサイトとスライドを生成・共有する機能として「Dataiku Stories」という機能は存在します。
https://knowledge.dataiku.com/latest/collaboration/stories/concept-stories.html
(この「Dataiku Stories」は、アドホックな分析というよりも、組織内で共有する動的なスライドを作成する機能という位置付けとなります。また、上位パッケージでのみ利用可能、ベータ版という位置付けであるため、今回のご質問にはフィットしないと考えられますが、参考までに上記リンクを記載いたします。) -
ありがとうございます!
現時点で可視化を行う場合は、コード生成+WebAppでの実装が必要であること承知いたしました。あわせて「SQL Question Answering Tool」についてもお伺いさせてください。
①「Dataset Lookup Tool」との使い分けについて、以下のような理解でよろしいでしょうか。
フィルタリング+上位x件までの表示 → Dataset Lookup Tool
それ以外のケース → SQL Question Answering Tool②「SQL Question Answering Tool」に関するチュートリアルや、設定・挙動の参考となるドキュメントはございますでしょうか。
③複数のデータソースに対してクエリを実行できると理解していますが、以下についても確認させてください。
・異なるコネクション(Excel、Snowflake、BigQuery など)に対しても実行可能でしょうか。
・AIエージェントが複数データソースの中から適切なものを選択して検索を実行させる場合、どのような設計がベストプラクティスでしょうか。
・マルチエージェント構成(例:データソース選択エージェントとSQL実行エージェントを分ける)とするべきか
・データセットのメタデータ管理が必要かなど具体性に欠ける部分もあり恐縮ですが、ご存知の範囲でご教示いただけますと幸いです。
-
Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 265 Dataiker
以下、回答いたします。
①「Dataset Lookup Tool」との使い分けについて、以下のような理解でよろしいでしょうか。
フィルタリング+上位x件までの表示 → Dataset Lookup Tool
それ以外のケース → SQL Question Answering Toolはい。基本的な使い分け方の基準としては、ご記載の考え方で合っていると思います。
②「SQL Question Answering Tool」に関するチュートリアルや、設定・挙動の参考となるドキュメントはございますでしょうか。
現状では、ご記載いただいたURLの文書以外にはドキュメントが存在しない状況です。
ただ、この「SQL Question Answering Tool」は、Dataiku Answersが提供する「Dataset Retrieval」とほとんど同様な機能ですので、以下のドキュメントをある程度は参考にしていただくことが可能と思います。
https://doc.dataiku.com/dss/latest/generative-ai/chat-ui/answers.html#dataset-retrieval-parameters
(Joinのキーマッピング設定は、現時点のToolには存在せず暗黙的に行われますが、今後設定が追加される可能性はあります。)③複数のデータソースに対してクエリを実行できると理解していますが、以下についても確認させてください。
・異なるコネクション(Excel、Snowflake、BigQuery など)に対しても実行可能でしょうか。「SQL Question Answering Tool」は、SQLデータベースが対象のため、Excelには対応しておりません。
もし、Excelのデータを対象にしたい場合は、事前にDataikuのデータセットを作成して、データをDBに格納しておく必要があります。もし仮に「その場でExcelファイルをアップロードして動的に利用したい」という要件の場合は、別途Webappを開発して、Webapp側で処理を実装する必要があります。また、現時点で「正式」にサポートしているDBを確認しましたところ、SnowflakeとPostgreSQLでした。
(ただ、今後以下リンクに記載のDBはサポートされる可能性があります。)
https://doc.dataiku.com/dss/latest/generative-ai/chat-ui/answers.html#infrastructure・AIエージェントが複数データソースの中から適切なものを選択して検索を実行させる場合、どのような設計がベストプラクティスでしょうか。
アプリの特性、想定用途によって、最適な構成は異なりますが、基本的には一つのエージェントから複数のツールを使い分ける対応で良いと考えられます。(=データソース毎に異なる「SQL Question Answering Tool」を定義して、エージェントがどのツールを呼び出すかを判断。)
別の方法として、異なるデータソース毎に別々のDataiku Answersインスタンスを作成し、前述の「Dataset Retrieval」でデータを取得、それぞれのAnswersをAgent Connectで統合する方法も存在します。しかし、異なる用途毎に別々のチャットUI(Answers)を提供する必要がない場合は、上記の「一つのエージェントで複数のツールを制御」する方が、構成がシンプルになってメンテナンスしやすいと思います。
・マルチエージェント構成(例:データソース選択エージェントとSQL実行エージェントを分ける)とするべきか
いえ。複数のデータソースを使い分けることだけが目的の場合、一つのエージェント内で、データソースの選択ロジックを記述して、複数のツール(SQL実行ツールなど)を使い分ける対応で良いと考えられます。
・データセットのメタデータ管理が必要かなど
はい。前述の「Dataset Retrieval」のドキュメントに記載のように、データセットとカラムのDescriptionが定義されている場合、ツール側でより正確な判断が行えるため、Descriptionの値を入れておくことを推奨します。(メタデータの追加には、Version 14.0で導入された「Generate Metadata」機能も便利ですので、こちらもご活用ください!)