Slide 1

Slide 1 text

Tableau Langchainとは何か? Tableau Serverと生成AIの可能性 Yuta Sakai(さかぴー) 2025.7.8 (火) 中部Tableauユーザー会

Slide 2

Slide 2 text

Tableau Serverにも生成AIが来た! https://youtu.be/ROwf5jS1MZY?si=mtcCdb_lpwOdNCBy&t=3679

Slide 3

Slide 3 text

先月の売上は? 100万円です! 質問をVDSクエリに 変換して問い合わせて 返答をいい感じに返す VDS Query VDS Reponse

Slide 4

Slide 4 text

先月の売上は? 100万円です! 質問をVDSクエリに 変換して問い合わせて 返答をいい感じに返す VDS Query VDS Reponse どうやってるの??

Slide 5

Slide 5 text

自己紹介 酒井 佑太 Yuta Sakai (さかぴー) 仕事:お客様のデータ活用を支援 ダッシュボード構築の伴走やTableauの技術的なレ クチャー、ワークショップなどやっています。 Tableau歴:9年くらい Tableau PublicでのViz作成も大好き。 Tableau Ambassador、Visionaryとして コミュニティ活動も積極的に実施。 生成AI歴:ライトユーザー 翻訳や調査、ライティング補助に利用。 生成AIアプリの開発などはしていない。 @unbosoms

Slide 6

Slide 6 text

最初の疑問 「これってなに?」

Slide 7

Slide 7 text

生成AIアプリケーションを開発するためのフレームワーク エージェントに強み RAGに強み 検索とQAに強み

Slide 8

Slide 8 text

生成AIアプリケーションを開発するためのフレームワーク エージェントに強み RAGに強み 検索とQAに強み 「Tableau Langchain」というパッケージが提供されているので LangChainを使えば生成AIとTableauの連携が簡単に実現できる

Slide 9

Slide 9 text

今日のテーマ Tableau Server × LLMのコアである 「Tableau Langchain」は何をしているのか? を読み解いてみた内容をちょっとだけシェア

Slide 10

Slide 10 text

LangChainのためのTableauパッケージ GithubでOSSとして公開されている (MITライセンス) 現在正式に提供されている機能は以下の一つ ※他にも機能を開発中とのこと Tableau Langchainとは? https://github.com/tableau/tableau_langchain simple_datasource_qa 特定のデータソースに対して自然言語で 質問をすると回答を返してくれる機能。

Slide 11

Slide 11 text

simple_datasource_qaの位置づけ ● LangChainではAIエージェントを作れます ● AIエージェントとは会話だけでなく様々なシステムとの連携もできる (検索をするとか、メールを送るとか、システムから情報を取ってくるとか) ● LangChainでは「AIエージェントのできる事」を「ツール」として定義 ● AIエージェントは自律的にどのツールを使うか?を判断します ● simple_datasource_qaはAIエージェントのための「ツール」の一つとし て機能します

Slide 12

Slide 12 text

simple_datasource_qaの動作イメージ <例>サンプルスーパーストアについて質問をする例 ================================ Human Message ================================= WEST地域で最も売り上げの大きいカテゴリーは何ですか? ↓ ================================== Ai Message ================================== WEST地域で最も売り上げの大きいカテゴリーは「Furniture」で、売上は約260,679.73ドルです。 次に「Technology」が約252,766.99ドル、そして「Office Supplies」が約226,366.89ドルとなっています。 この情報はSuperstoreデータセットから取得したものです。

Slide 13

Slide 13 text

simple_datasource_qaの動作イメージ <例>サンプルスーパーストアについて質問をする例 ================================ Human Message ================================= WEST地域で最も売り上げの大きいカテゴリーは何ですか? ↓ ================================== Ai Message ================================== WEST地域で最も売り上げの大きいカテゴリーは「Furniture」で、売上は約260,679.73ドルです。 次に「Technology」が約252,766.99ドル、そして「Office Supplies」が約226,366.89ドルとなっています。 この情報はSuperstoreデータセットから取得したものです。 エージェントが自律的にsimple_datasource_qaを使うべきだと 判断して当該ツールから取得した結果をもとに回答している

Slide 14

Slide 14 text

simple_datasource_qaの動作イメージ <例>サンプルスーパーストアについて質問をする例 ================================ Human Message ================================= WEST地域で最も売り上げの大きいカテゴリーは何ですか? ↓ ================================== Ai Message ================================== WEST地域で最も売り上げの大きいカテゴリーは「Furniture」で、売上は約260,679.73ドルです。 次に「Technology」が約252,766.99ドル、そして「Office Supplies」が約226,366.89ドルとなっています。 この情報はSuperstoreデータセットから取得したものです。 simple_datasource_qaの中では 具体的にどんな事が起きているのか?

Slide 15

Slide 15 text

simple_datasource_qaがやっていること Input Output WEST地域で最も売り上げの大きいカテゴリーは何ですか? WEST地域で最も売り上げの大きいカテゴリーは「Furniture」で、 売上は約260,679.73ドルです。 次に「Technology」が約252,766.99ドル、そして「Office Supplies」が約226,366.89ドルとなっています。 この情報はSuperstoreデータセットから取得したものです。

Slide 16

Slide 16 text

simple_datasource_qaがやっていること query_writing_data query_writing_prompt query_writer get_data response_inputs response_prompt Input Output WEST地域で最も売り上げの大きいカテゴリーは何ですか? WEST地域で最も売り上げの大きいカテゴリーは「Furniture」で、 売上は約260,679.73ドルです。 次に「Technology」が約252,766.99ドル、そして「Office Supplies」が約226,366.89ドルとなっています。 この情報はSuperstoreデータセットから取得したものです。 6つの処理を行っていることが分かる tableau_langchain/pkg/langchain_tableau/tools/simple_datasource_qa.py の259-264行目から抜粋

Slide 17

Slide 17 text

01.VDSクエリを生成するためのプロンプトを作る query_writing_data query_writing_prompt query_writer get_data response_inputs response_prompt Input Output Inputに答えるために必要なデータを取得するための VDSクエリを生成するためのプロンプトを生成する query_writing_dataでクエリ生成に必要な情報を収集し、 query_writing_promptでクエリ生成用プロンプトを生成 クエリの生成にはLangChainのPromptTemplateを使用。 定義済のテンプレートにquery_writing_dataで取得した データをあてはめてプロンプトを生成する テンプレートは101行、826単語で構成されている。 ※実際のプロンプトは変数を追加するのでもっと長くなる

Slide 18

Slide 18 text

(参考)クエリ生成用プロンプトのテンプレートイメージ tableau_langchain/pkg/langchain_tableau/tools/prompts.pyの1070-1170行 (一部抜粋) あなたの仕事はユーザーから与えられたタスクに答えるためのデータを取得 するためのTableau VizQL Data Service APIのクエリを書くことです。 data_dictionaryをつかってユーザーの自然言語による質問を、データソース 上で利用可能なフィールドへのマッピングに使ってください。etc... 他にもクエリの書き方の詳細説明やサンプルクエリもつけていし、 出力結果はVDS Queryのみをシンプルに記述する旨も指定している

Slide 19

Slide 19 text

02.クエリを生成してデータを取得する query_writing_data query_writing_prompt query_writer get_data response_inputs response_prompt Input Output さっき作ったプロンプトを使って LLMにVDSクエリを生成してもらう 指定されたデータソースに対して さっき生成したVDSクエリを実行して結果を獲得する

Slide 20

Slide 20 text

03.エージェントに返す文章を生成 query_writing_data query_writing_prompt query_writer get_data response_inputs response_prompt Input Output VDSクエリの結果を整理してエージェントが 返すべき内容を支持するプロンプトを生成する response_promptがPromprTemplate機能を使って エージェントに返す内容を生成 response_inputsはテンプレートで使う要素を 整理してresponse_promptに渡している こっちのテンプレートはクエリ生成プロンプトよりは シンプルで23行、145単語で構成されている。 ※実際のプロンプトは変数を追加するのでもっと長くなる

Slide 21

Slide 21 text

(参考)エージェントに返すためのテンプレート こんなデータソースに こんなクエリを投げたら ユーザーの質問はこれなので こんな結果が返ってきました こんな感じで返してあげてね tableau_langchain/pkg/langchain_tableau/tools/prompts.pyの1172-1196行

Slide 22

Slide 22 text

【再掲】simple_datasource_qaの動作イメージ <例>サンプルスーパーストアについて質問をする例 ================================ Human Message ================================= WEST地域で最も売り上げの大きいカテゴリーは何ですか? ↓ ================================== Ai Message ================================== WEST地域で最も売り上げの大きいカテゴリーは「Furniture」で、売上は約260,679.73ドルです。 次に「Technology」が約252,766.99ドル、そして「Office Supplies」が約226,366.89ドルとなっています。 この情報はSuperstoreデータセットから取得したものです。

Slide 23

Slide 23 text

まとめ:Tableau Langchainの所感 ● スクラッチでTableauxLLMを作るより圧倒的に楽!開発者に感謝! ● プロンプトエンジニアリングの学びが多かった ● VDSクエリ生成用のプロンプトは大きいのでトークン消費量が心配かも? ● 新機能開発中とのことなので今後に期待! ○ データソースを選ぶところからやってくれたり? ○ 複数のデータソースを組み合わせて回答してくれたり? 皆様のTableau Langchain理解の一助になれば幸いです!

Slide 24

Slide 24 text

参考1:今後の開発動向について Experimentalフォルダに実験中のコードが入っているので今後の開発動向が予測 しやすいかも?(chains/search_datasourcesも気になる)

Slide 25

Slide 25 text

参考2:ハンズオンノートブック ハンズオンで学べるJupyterNotebookもあるので試したい方はこちらを触ってみ てください!

Slide 26

Slide 26 text

EoF