【snowflake】半年の初心者がIntelligenceAgentを構築してみた話
1. はじめに
こんにちは!
snowflake歴半年の初学者ですが、わたしもsnowflake Intelligenceがなんなのか語れるようになりたい!!!ということで、まずは公式のクイックスタートを丁寧に理解していこうと思います😸🌟
2. 今回触ってみたsnowflakeインテリジェンスについて
今回トライしたクイックスタートはこちら!
下記の機能を使って、ビジネスユーザーがチャットボットで自社の売上や、カスタマーサポートへの問い合わせを検索できるようにします!
Snowflake Intelligenceは今回は使わないのね...?と思ったのですが、
「Snowflake Intelligence」って機能名じゃなくて、SnowflakeのAI・分析プラットフォームの総称・ブランド名みたいなものなのね😹(そこから笑)
なので今回の機能をざっくり図に整理するとこんな感じ!
3. チュートリアル実施してみる
扱うデータと今回のゴール
用意されているサンプルデータは、「売上やそれにひもづぐキャンペーン・商品データ」などの構造化データ と 「サポート問い合わせ」の非構造化データ
構造化データとの両方を使い、最終的には、「●●地区の売上は?」「先月△△カテゴリの不具合の問い合わせってどんなものが多かった?」質問に回答できるチャットボットを作成するイメージです🌟
■構造化データ:売上
その他、キャンペーン、商品、SNS等のデータあり
■非構造化データ:サポート問い合わせ
「TRANSCRIPT」カラムに、カスタマーサポートのチャット履歴のデータがはいっていますね!
[10:15] Customer: こんにちは。最近 ThermoJacket Pro を購入したのですが、縫い目に裂け目があるのに気づきました。製造上の欠陥のようです。対応していただけますか?
[10:16] Support Agent: こんにちは!ThermoJacket Pro に不具合があったとのこと、本当に申し訳ありません。もちろん対応させていただきます。ご注文番号を教えていただけますか?
[10:17] Customer: はい、注文番号は 123456789 です。 ....続く
という内容!このなが~いテキストが、どうチャットの返答として使えるように設定していくのかがポイントですね!
いざ
snowflakeにて実践!
今回データは準備されているので(本当はこのデータの準備が大変なのだが...)いきなり、Cortex analystの設定からはいります!
1. Cortex Analystでの設定
ここでは構造化データである「売上データ」に対してクエリ実行できるように、データ構造とビジネスルールをマッピングしてあげることが目的です!
そこで登場するのがYAML ファイル!
YAMLファイル=データの構造をテキストで表すためのフォーマットです!
今回のYAMLファイルの中身をみるとこんな感じ
marketing_campaigns.yaml
ぱっと見ると「う…なんかいっぱい書いてある…」ってなるけど、実はやってることはシンプルで、項目名とその意味が羅列されているだけなので、安心してください!笑
画面上でmarketing_campaigns.yamlファイルをアップすると、セマンティックレイヤーの定義が下記のように展開された状態になっています!
例えば、CAMPAIGN_NAMEのディメンション定義は下記のように記載されています
CAMPAIGN_NAME
意味:マーケティングキャンペーンの名前
用途:分析で「どのキャンペーンごとに結果を見るか」を切り分けられる
そしてCortex Analystでやることは以上!簡単✌✌
.
2. Cortex Serchでの設定
すでに用意されているテーブルとカラムに対してインデックス化することで、非構造化データも検索できるようにしていきます!
そして、ここでもGUI上でぽちぽちと直観的に設定できます!対象データを選択後に検索列を設定します!
① 検索列の設定
画像の検索列として選ばれた列だけが「自然文検索の対象」として扱われる仕組みなので、今回はサポート問い合わせ記録「TRANSCRIPT」を選択します!
② 属性の設定
ここでは、フィルタに使いたい列を属性として設定します!
今回は●●商品に絞った問い合わせを検索するなどが想定できるので、商品・タイトルを選択します!
③ 列を選択
実際に検索結果として返すときに「一緒に表示される情報」になるので、ここではすべてを選択します
例えば、システム管理用フラグなど、ユーザーが見ても意味がないものは選択しなくて大丈夫!
.
3. Agentの作成
最後にAgentの作成です!
ここでは1,2で作成したAnalystやsearchの機能束ねて、ユーザーの質問に答えたり、データに基づいてタスクを実行できるようにしていきます!
①指示を追加する
サンプルの質問を追加します!
サンプル質問があることで、ユーザーは「このエージェントは売上分析やサポートケースの要約ができるんだ」と具体的にイメージできます。
②ツールを追加
ツールとはエージェントのスキルセットのようなもの!
ここにAnalystやSearchのスキルを付与して、ユーザーの質問に応じて「データを分析する力」や「文章を検索する力」を呼び出せるようにする、というイメージですね!
こちらのクイックスタートではカスタムツールでメール送付機能も実装しておりますが、
チャットを動かすだけならこちらで設定完了です!
4. 完成
さっそくintelligenceの画面で動かしてみましょう!
「6月から8月までの製品カテゴリー別の売上同行を教えてください」
という質問をしてみます!すると
動きました!🥹
問い合わせチャットの内容もちゃんと抽出できるのか見てみましょう!
「最近カスタマーサポートチャットで多く相談される商品カテゴリとその内容を教えて!」
カテゴリ別にいい感じに回答してくれました~
5. まとめ
今回触ってみて感じたのは、データさえあれば(何度も言うけどここが大変なのだ...)あとの設定はGUIでぽちぽち進められるので、初心者でも「自分の手でAIを動かしたぜ!」という体験ができます!
なんとなく仕組みは分かってきたので、次は「データ準備」にフォーカスしてまとめてみようと思います...!💪
それでは!