こんにちは、yokochanです!
昨今よく耳にする生成AIですが、データ基盤の観点からはどう使えばいいの?という話です。
今回はアンケートの自由記述項目の結果をカテゴライズする手順をご紹介します。
1. 今回使用するもの
- Matillion DPC(Data Productivity Cloud)
- Snowflake
- とあるサービスの顧客アンケートの結果テーブル(Snowflakeに格納)
2. 手順
Ⅰ. テーブルの読み込み
Matillionの「Table Input」コンポーネントでアンケート結果テーブルを読み込みます。

今回使うデータはこんな感じ

分類したいカラムはここの”Q6″の自由記述の回答
質問内容は「このサービスに対して自由な意見や感想をお願いします」といったよくあるもの

Ⅱ. 生成AIによる処理のコンポーネントを接続
今回の主役「Cortex Completions」コンポーネントを使用します!

他にもいくつかCortex系のコンポーネントが見えていますが、これらはSnowflakeのLLM関数をノーコードのUIで使用できるという優れものです。
SnowflakeのLLM関数の詳細はこちら
Ⅲ. モデルの選択
ここから「Cortex Completions」の中身を設定していきます。
まずはモデルの選択を行います。モデルによって精度などが異なります。
何を選んでいいかわからない人はとりあえず適当に選んで遊んでみましょう(今回はllama3.1-70bを選択)

Ⅳ. 条件のプロンプトとメインのプロンプトを入力
次にプロンプトの入力を行います。
プロンプトは「System Prompt」と「User Prompt」の2種類あり、「System Prompt」に前提条件を、「User Prompt」に生成AIに指示する内容を入力します。
ちなみに「System Prompt」の入力は任意ですが、入力した方が精度が高くなります。


Ⅴ. ターゲットとなるカラムを指定
続いてターゲットとなるカラムを選択します。今回は「Q6」を選びます。

Ⅵ. 結果を確認
実はこれだけでもう既に生成AIによるカテゴライズの結果を確認することができます!
ここまでの処理の途中経過をSample dataで確認してみると、一番右に「completion_result」列が生成されています。

列の中身はネスト化された状態で返されています。

Ⅶ. ネスト構造になっている結果から欲しい情報を抽出
ここからは生成AIの機能ではないですが、ネスト化されたものを展開して欲しい情報だけ取得します。
コンポーネントは「Extract Nested Data」を使用します。

今回取得したいのは”messages”の部分なのでチェックボックスを入れます。

Ⅷ. 結果の出力
以上の処理を実行すると、今回欲しかったカテゴライズが付与されたテーブルを取得することができます!

まとめ
簡単に作れて結果も比較的すぐ返ってくるので、みなさま試しにやってみてはいかがでしょうか?
また、MatillionやSnowflakeの導入に興味を持っていただけたらぜひ弊社にお問い合わせください!
ではまた。