【Dataiku最新】ノーコードでのAIエージェント構築

## はじめに
Dataikuは"Everyday AI, Extraordinary People"というテーマを掲げ、データ分析やAI活用を広げ、皆様の可能性を開放していく事を目標にしているプラットフォームです。
コーダー、ビジネスサイドのノンコーダーを含めてあらゆるスキルの方々が利用できる素晴らしい製品ですので、是非本内容を通して少しでも興味を持って頂ければ幸いです。

本記事では最新リリースの主機能の一つである今話題の「AIエージェント」を取り上げ、実践編として構築~利用までの流れを具体的に記載します。

### この記事でわかる・できること
- AIエージェント構築の流れ
- エージェント活用のWeb画面構築の流れ
※作成から利用までの全ての流れを今回はノーコードで実施してます

### この記事の対象者

- AIエージェントに興味のある方
- 最新技術をキャッチアップされたい方
- Dataikuにご興味のある方 etc...

## 目次
[1.AIエージェント構築](#1aiエージェント構築)
[2.Webアプリケーションの設定](#2webアプリケーションの設定)
[3.Webアプリケーションの利用](#3webアプリケーションの利用)

## 1.AIエージェント構築
### 1.1 シナリオ策定

AIエージェントと言っても定義が広いので、どんなエージェントを作るか？を定義する事が重要だと思います。
今回は分かり易いサンプルとして「営業の御用聞きエージェント」を作る事にしました。
以下の3つの得意分野を持つエージェントとします。
　①社内のCRM情報から顧客把握や将来予測を実施してくれる
　②社内マニュアルやドキュメントに問い合わせしてくれる
　③社外の公知情報から最新ニュースを取得してくれる

### 1.2 参照先のデータやシステムの準備
①社内のCRM情報と予測モデルの準備
- 以下の画像にある様に顧客属性と売上を保持するサンプルデータを取込み
- 上記のサンプルデータを利用して顧客の売上予測モデルを作成
※上記の作業はDataiku上で簡易にできますが、本記事では割愛します。
ご興味ある方は最後に参考文献をいくつか載せておきますのでそちらを参照頂ければ本フローはすぐに作れると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/e3e4f847-11ac-4daf-b9cf-f7185b538e37.png)

②社内マニュアルやドキュメントを参照するRAGを構築
- 「documents」という名前のフォルダーを作成し、その中にPDF、txtやmdファイルなどを追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/a6ed5ebf-394e-461b-900f-1a73b379448c.png)
- 情報群を格納したフォルダに対して「ドキュメントの埋め込み」レシピを利用してRAGを構築
※マルチモーダルと言われる画像やテキストなどの複数の形式に対応しているので、こちらのフローのみで構築が完了します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/32c13692-b218-4104-9660-ab455d8a56b6.png)

③社外の公知情報からの情報取得
- GoogleSearchAPIを利用する事として、Dataikuでは特筆すべき設定が不要なので割愛します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/50a9d0da-e491-4ce2-816c-b886dab21f01.png)

### 1.3 Visual Agentの作成
Dataikuのv13.4からの新機能としてVisual Agentが提供されました。
Code Agentの機能もあるため、コードを書いてAIエージェントを一連のプロセスに組み込んで利用する事もできますが、ノーコードでも開発できる様になっています。

- フロー内の「Generative AI」→「Code Agent」を選択
- ピンクの背景のアイコンが生成AI関連のレシピ（コンポーネント）ですが、Agentマークも可愛いですね！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/0732a768-33ac-44cf-ba9f-3413c8ed9c75.png)

- エージェントを選択したら、その中から、エージェントに紐付けるツールを選択します。
※ツールの設定内容は後述します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/59b9e436-755d-4d3e-aab7-ac1e79f9a6e3.png)


### 1.4 Toolの設定
こちらのツール群がDataikuでプリセットで用意されています。
また、"プラグイン"として追加できるツールもいくつかあったので、今後随時更新されていくと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/94e37c9c-0c23-422b-8c97-3161da71bd00.png)


まずはCRMの情報取得や将来予測用のツールを設定してみましょう。
- 検索対象としたいデータセットを指定し、検索に利用するカラムと表示に利用するカラムを選択するだけです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/909d8925-9ea6-4efe-889a-01ea83d0762c.png)

- 将来予測もDataiku上でAutoMLで作成したモデルを指定するだけで完了しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/e57becbd-6433-4088-870d-dd6c93fda0b6.png)


この様に、Dataiku内でデータ接続、加工・集計、AIモデル化しているあらゆるコンポーネントを活用できます。
エージェントが呼び出す中身をホワイトボックスにしつつ、要件に応じて必要なデータやモデルを裏で担保しておく事で精度を保証できる点が非常に重要な部分だと考えております。

以下、残りの2機能の設定も同じ様に簡易に実施できます
- 同じ様に参照するRAGのKnowledge Bankを指定するのみ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/7c19cde9-a0ac-47d0-af81-d85e748dcc62.png)

- Google Search AgentのAPIの設定のみを実施（割愛します）

これだけで冒頭のシナリオに掲げた、「①社内CRMデータの参照・将来予測」、「②社内ドキュメントの参照(RAG)」「③社外情報の検索」をマルチタスクで行ってくれるAI御用聞きエージェント君が設定できました！

## 2.Webアプリケーションの設定
### 2.1 Agent Connectの設定

Dataikuでは元々「Dataiku Answers」というRAGのチャットボット向けのWebアプリを提供していたのですが、今回AIエージェント構築側の機能群と合わせて、「Agent Connect」というよりAIエージェントに対応したWebアプリの提供も開始しました。

こちらをご利用頂く事で直ぐにエージェント群にアクセスできる画面も準備できますので、そちらもご案内します。

- 「WebApps」から「Visual Webapp」を選択→"Agent Connect"を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/10fa273e-4da0-4d51-866a-05dd829be4a7.png)


主要設定項目のみご案内します
- まずは対話用の生成AIのファンデーションモデルを選択します。DataikuではLLMメッシュをコンセプトにしており、API接続をしていればお好きなモデルを選択頂けます。
- この例ではOpenAIのo3を選択しています。
- その後、先ほど1章の中でツールを紐づけておいた3つのエージェントを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/3a58a211-a8dd-4a5a-9aad-ad528fd6cce5.png)

プロジェクトを跨いだ指定も可能ですので、あらゆる所で作成したデータ分析の様々なアセットをAIエージェントのソースにできます！

### 2.2 各Agentのメタデータ付与
同じ画面でスクロールしていくと、各種エージェントの役割を定義しておく事もできます。こちらを記述しておく事で利用時の問い合わせ（プロンプト）から適切なエージェントを呼び出してくれる様になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/cfe276bd-8090-4664-b737-75d7f881594f.png)

- 後は画面に表示する内容を調整します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/f87ab15a-8ea3-4f5b-8954-a2f87ee3d39c.png)

これだけで画面構築が完了です！
実は他にも表示のパーツや形式を独自の素材に変更できたり、この画面はモバイルでレスポンシブ対応していたり・・・色々あるのですが今回はこちらで以上とします。
非常に簡易に設定できました！

## 3.Webアプリケーションの利用
### 3.1 Webアプリの利用

早速利用してみましょう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/0e39f4b9-330d-455b-b66c-e0b0865a65b6.png)

- まずは最新ニュースを質問として、訪問前にお客様の最新リリースを知る目的で公知情報を集めてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/290285fe-4a07-46b2-b80b-eb8a62ac8354.png)
きちんとGoogle Search Agentとして検索結果を集めてくれてますし、ソースも表示してくれてます。

</br>

- 次に顧客理解・予測としてCRMの情報と、顧客のポテンシャル予測（機械学習を利用）も問い合わせてみます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/0872bb8a-1981-4d19-a11e-13d6f177b7f3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/13b9e75f-25f2-4826-a45a-947ad34704ff.png)

それぞれAgentから情報を返してくれてますね！将来予測と組み合わせ可能な点も中々凄い・・・
</br>

- 最後にRAGから、訪問先でお客様に質問される事を想定して社内ドキュメント検索を行ってみます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/754c414f-616e-430c-9de1-faf7a74afbfc.png)

こちらもちゃんとPDFの中身から回答してくれてますね！
※ちなみにDataikuでは回答内に記載のシステムに留まらないあらゆるデータソースに接続できるのでご安心下さい

ここまで簡易かつ分かりやすく、オープンに構築できるのは素直に凄いです！

### 3.2 裏側の呼び出しチェーンの確認
補足ですが、AIエージェントのチェーンや呼び出し先がブラックボックス化する事で、業務上の信頼性の担保をどう考えるか？が不明瞭になってきてしまいます。

Dataikuではその点もフォローする目的で、併せて「TracesExplorer」も提供しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988185/759dfc14-7966-45dd-b2fd-368c46eebad5.png)

この様に最終的なツールの呼び出しまでのプロセスと、コールに要した時間、またはクエリのトークン数や課金の見積もりが出てきます。

ただ構築するだけではなく、Agent Opsとしてビジネス上での利用や運用までをエンタープライズレベルでカバーするという点が非常に重要なDataikuのコンセプトです。

今回はあくまで簡易なサンプルでしたが、エージェントに期待されている事はより広く深い内容と理解しております。
皆様と一緒にぜひより実用的な内容を構築して参りたいと思っておりますので、ぜひご興味あればご意見を頂きつつ遠慮なく拡散して下さいませ！

## 参考情報
- Twitterで日々データ分析やDataikuに関わる内容を発信してます。是非参考としてフォローして頂けると嬉しいです
https://x.com/Fumihiko__K
- Dataikuの基本操作
"Dataiku"でweb検索頂くとパートナー様を含めた情報が様々出てきますので、是非ご参考にして下さい
- DataikuのYoutube（日本語版）
日本語でYoutube動画で諸々ご紹介しております。
https://www.youtube.com/playlist?list=PLWjlCkA2BrRSvhNuTLH10VSQZoPRhRC1Y

## おわりに
- Dataikuは「データ接続〜前処理〜AI・機械学習~Ops」までの全てのプロセスに加え、生成AI、AIエージェントにもいち早く対応している先進的なプラットフォームです
- 今回のエージェントの例はあくまで検索でしたが、エージェントに期待される内容は自動でアクションに繋げたりアウトプット化するなどより幅広いと認識してます
- まだまだ今回のサンプルに留まらないより高度な事も多く実装できますので、少しでも皆様の発想の一助となり、広く皆様にも試していただけますと幸いです
<br/>
Dataikuは6週間に1度の短期間でどんどん新しい技術や機能をリリースしています。皆様の実践的な内容や声を多くオープンにプロダクトに反映して参りますので、ご興味ある方はぜひ遠慮なくお問合せくださいませ！