🥬

【dataiku】ノーコードで販売管理チャットボットを作ってみた-生成AIエージェント-③

に公開

kobayashiです。
dataikuで利用可能なユーザーも拡大している、「生成AIエージェント」で社食販売システムのエージェントを作ってみました。
①、②と続き3本目のブログです。
↓前回ブログ
https://zenn.dev/truestar/articles/73ef11cb1c8991

前回までの流れ

弊社ではOFFICE de YASAIという素晴らしい社食販売システムを導入しているのですが、
この仕入れの管理に困っていたYさんのため、Dataikuを用いてOFFICE de YASAIに特化したチャットボットを作っていました。
①で、それらしいチャットボットはできたのですが「最も売れた商品は?」というような並び替えの質問に弱かったです。
②で、LLMをChatGPT4o-miniからChatGPT-4.1へ格上げしたら、並び替えの質問にも答えられるようになりました。LLMの進化はすごいですね。

めでたしめでたし、で終わるつもりだったんですが、
dataikuで「生成AIエージェント」機能がとても充実してきている、ということで、OFFICE de YASAIで試してみました。
単純なチャットボットとエージェントで何が変わったのか、良い例になると思います!

今回作成した生成AIエージェントの全体像

前回まではSnowflakeに保存したデータを直接WebappのAnswersに渡してチャットボットを作っていました。
今回はそれを考えると手間のように感じるかもしれません。
ざっくりとした手順は
① Agent tools の SQL Query を作成し、Snowflakeに保存したデータを読み込ませる
② Agent tools の Model Predict を作成し、予測モデルを読み込ませる
  (予測モデルの作成については割愛します)
③ ①、②をKnowledge Bankとした Agent を作成する
④ ③をLLMとした Answers を作成する

イメージこんな感じ

では作っていきます!

①Agent tools -SQL Query-

version 14.1 から追加されたピンクのアイコンから「Agent tools」を選択。

右上の「+NEW AGENT TOOL」から「SQL Query」を選択。
(ここに表示されていない場合はプラグイン「SQL Question Answering Agent Tool」をインストール)

Snowflakeのコネクションとデータセットを入力し、LLMを選択します。
「Data context information」に簡単にデータの説明を入力し、SAVEします。

②Agent tools -Model Predict-

Agent tools の 「+NEW AGENT TOOL」から「Model Predict」を選択

Saved Modelに作成しておいたモデルを選択します。
ここで、モデルについて制限があるようです。
当初、販売数を時系列モデルを用いて作成していたのですが、時系列モデルは選択できませんでした。
どうやらDataikuがすでに提供している回帰モデルのみ対象のようですので注意が必要です。

③Agents & GenAI Models -Agent-

ピンクのアイコンから今度はAgents & GenAI Modelsを選択。

「+NEW AGENT」から「Visual Agent」を選択。

LLMを選択し、「Additional prompt」にAgentへの指示を入力します。

Toolを追加します。
「+ADD A TOOL」をクリックし、Toolに①で作成したSQL Queryを選択します。
もう一回「+ADD A TOOL」をクリックし、次は②で作成したModel Predictを選択します。
Additional descriptionは記載しなくてもOK。

これで設定は終了ですが、試しに左側のTestのcontextに質問を入力し、RUN TESTをクリックすると、どんな回答をするのかをテストすることができます。

④Dataiku Answers & Agent Connect -Answers-

ピンクのアイコンからDataiku Answers & Agent Connectを選択

「+NEW ANSWER」をクリック。

ここから先はWebappのAnswerと同じですが、前回からバージョンアップしてUIが変わっています。
LLMは③で作成したAgentを選択します。
Conversation History DatasetとConversation User Profile Datasetはすでに作成済みのテーブルがあるのでそれを選択しました。

LLMに対するプロンプトを入力する場所があるのでコチラを変更しておきます。

あとはお好みですが、日本語仕様にしたり、

タイトルや例を入力します。

「SAVE AND VIEW WEBAPP」をクリックすると、前回までと同じようなチャットボット画面になります。

エージェントへ進化したチャットボット

まずは前回と同じ質問をしてみます。

ここはクリア。

エージェントっぽい質問も。

エージェントらしい回答!
ただ、実は前回までのチャットボットでも過去の販売履歴から参照して回答はしてくれます。

次に予測モデルを使わせてみます。

予測結果が返ってくるだけでなく、前年との比較も回答してくれました。

前回までのノーコードチャットボットはデータセットを読み込ませることで回答してくれました。
今回の機能は、モデルや他のツールを簡単に組み合わせることができ、より自由度の高いものをノーコードで作ることができるようになった印象です。

ツールによっては、テーブルに書き込ませたり、メールやTeamsにメッセージを送ることもできるようなので、使い方によっては文字通り「ひと手間減らす」ことができそうです。

truestarテックブログ
設定によりコメント欄が無効化されています