3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Snowflakeで学ぶAI実践 モーニングワークショップ参加レポート ~生成AIを活用したチャットボットを作ろう~

Last updated at Posted at 2025-06-16

はじめに

2025年4月某日、東京ミッドタウン八重洲の上層階にあるSnowflakeのオフィスで開催された、「AI実践 モーニングワークショップ」に参加したので、実際にやったこと、所感をまとめていきます:snowflake:

Snowflakeって?

「知ってるよ」という方は次セクションまで飛ばしちゃってください。

Snowflakeはワークショップ参加時点(2025年4月)で日本800社、世界で10,000社以上に導入されているクラウドサービスです。
Snowflakeは自社サービスを「AIデータクラウド」と称しています。
DWHの機能を核としつつ、アナリティクス、AI、データエンジニアリング、アプリケーションとコラボレーションといった機能をシングルプラットフォームで提供します。
image.png

弊社のエンジニアの中にも、「SnowflakeはDWHだとおもっていた」と話していた人もいました。
しかし、Snowflakeの機能は従来のDWHを超えたものとなっています!

Snowflakeの機能

なぜSnowflakeでAI活用?

各企業がAIドリブンによるビジネス価値の創出を目指しています。
しかし、生成AI単体を利用していてもビジネス価値とはなりません。
自社が持っているデータとAIを掛け合わせることで、はじめて価値が生み出されます。

ただ、皆さん同じような課題に直面します。

  • 思ったようなクオリティに達しない
  • セキュリティ、ガバナンスの管理
  • コストがかかる、実装が複雑

Snowflakeは「簡単」、「効率的」、「信頼性」の三要素でこれらの課題を解決します!

Snowflakeの生成AI 「Cortex AI」

Snowflakeでは独自開発のAIのモデルはもちろん、他社の商用/オープンソースのAIのモデルも選択できます。
2025年2月にはMicrosoftとのパートナーシップの拡大も発表し、OpenAIのモデルにもネイティブで対応するようになります。

Cortex AIの強みは場面場面で簡単に最適なAIのモデルを使い分けられるところです。
また、現時点で優れているAIのモデルであっても、将来もそうとは限りません。
Cortex AIを使えば、常に最先端のAIのモデルを選択できます。

Cortex AIはSnowflake内で使えるAIサービスの総称であり、いくつかの機能を内包しています。

  • Cortex Search → RAGを使う
  • Cortex Analyst → SQLを生成して分析を行う
  • Cortex Agent → Cortex SearchとCortex Analystを柔軟に使い分ける
  • Snowflake AI /ML Studio → GUIでAI開発
    などなど

本来、いくつかのツールを使い分けなければいけないAI開発も、すべてSnowflakeの中で、一画面で実現できます!
image.png

ハンズオン

GUI操作と、Snowflakeのエンジニアの方が作成したコードをコピペするだけで、簡単に生成AIを活用したチャットボットを作成できます。
ハンズオンで使うコードは以下からクローンできます。

シナリオ

本ワークショップのハンズオンでは、架空のスーパーマーケットチェーン「SNOWRETAIL」のデータを元に生成AIを用いたお問い合わせ対応チャットボットを作成しました。

Snowflakeを無料でセットアップ

まずは上記ページから400ドル相当の使用分が無料で含まれている、30日間のSnowflake無料トライアルを始めましょう。

上記ページで必要事項を記入します。
クラウドプロバイダーは「AWS」、地域は「US East (Ohio)」を選択します。

image.png

クラウドプロパイダー・地域選択
クラウドプロパイダー・地域ごとに、利用できる機能に差があります。
後述のハンズオンを実践するには「AWS」、「US West (Oregon)」を選択してください。

記入したメールアドレス宛にログインリンクが送られます。
メールの指示に従ってログインしましょう。
image.png

アンケートの回答も求められますが、回答は任意です。スキップしてもかまいません。

snowsightを日本語化

前述のメールから、SnowflakeのWeb UI「snowsight」にログインします。
初期状態では言語設定が英語になっています。
日本語の方が読みやすいという方は、左下の自身のアイコン > My profileをクリックします。
image.png

ダークモード
My profileの2つ下、Appearanceからダークモードの設定もできます。

Languageのプルダウンから日本語を選択し、Saveボタンを押してください。
image.png

各種オブジェクトの作成

ハンズオンで使う各種オブジェクトを、下記パラーメーターシートに沿って作成していきます。

handson_parameter.txt
# コピペ用各種パラメーター

## DBオブジェクト関連

データベース名: snowretail_db

スキーマ名: snowretail_schema

テーブル名: 
  - snow_retail_documents
  - snow_retail_documents_chunked

ウェアハウス名: compute_wh

Cortex SearchのService名: snow_retail_search_service

データベースを作成

左側タブ データ > データベース を選択し、右上「+データベース」ボタンをクリック。
image.png

「snowretail_db」という名前で新しいデータベースを作成します。
image.png

大文字と小文字の区別
Snowflakeではオブジェクトの識別子を引用符で囲まない場合、大文字として保存および解決されます。
例1:snowretail_dbSNOWRETAIL_DBとして保存および解決
例2:"snowretail_db"snowretail_dbとして保存および解決

詳しくは以下を参照
https://docs.snowflake.com/ja/sql-reference/identifiers-syntax

スキーマを作成

先ほど作成した「snowretail_db」というデータベースをクリックすると、データベースの詳細が表示されます。
image.png

右上「+スキーマ」ボタンをクリック。
パラメーターシートに記載の通り、「snowretail_schema」という名前で新しいスキーマを作成します。
image.png

テーブルを作成

先ほど作成した「snowretail_schema」というスキーマをクリックすると、スキーマの詳細が表示されます。
右上のボタンを 作成 > テーブル > ファイルから の順でクリック。

image.png

以下のファイルを保存後選択し、「snow_retail_documents」という名前で「次へ」をクリック。

スクリーンショット 2025-05-12 154954.png

遷移先画面で、規定値のまま「ロード」をクリックして新しいテーブルを作成します。
image.png

同様の手順で、以下のファイルから「snow_retail_documents_chunked」という名前で新しいテーブルを作成します。

Cortex Searchのサービスを作成

左側タブ AIとML > Studio を選択し、Cortex検索「▶試す」をクリック。
image.png

遷移先の画面で右上「作成」をクリック。
image.png

ロールとウェアハウスは規定値のモノを使用。
データベースとスキーマは先ほど作成した「snowretail_db.snowretail_schema」を選択。
名前は「snow_retail_search_service」とし、「次へ:Select data」。
image.png

インデックスを作成するデータは「snow_retail_documents_chunked」を選択し、「次へ:Select search column」。
image.png

検索列は「chunked_content」を選択し、「次へ:Select attributes」。
image.png

属性列は「title」、「document_type」、「department」を選択し、「次へ:列を選択」。
image.png

サービスに含む列はすべて選択し、「次へ:Configure indexing」。
image.png

最後に、検索サービスを構成です。
ターゲットラグを1 daysに設定。
埋め込みモデルは「snowflake-arctic-embed-l-v2.0」を選択します。
「検索サービスの作成」をクリックします。
image.png

ターゲットラグ
ターゲットラグとは、サービスがソースデータの更新を確認する頻度のことです。
頻度が高いとコストがかかってしまいます。

埋め込みモデル
v1.5も選択できますが、こちらは英語のみの対応となっています。
日本語を扱いたい場合は必ずv2.0を選択しましょう。

Streamlitアプリの作成

Streamlitとは

Streamlitとは、手軽にデータ分析を行うWebアプリが作成できる、オープンソースのPythonフレームワークです。
Snowflakeがこれを買収し、「Streamlit in Snowflake」として、SnowflakeのWeb UI内でアプリ開発ができる機能を提供しています。

Streamlitアプリの作成

左側タブ プロジェクト > Streamlitを選択し、右上「+Streamlitアプリ」をクリック。
image.png

アプリタイトルは任意です。ここでは、「チャットボットアプリ」とでもしておきましょうか。
アプリの場所は、「snowretail_db」、「snowretail_schema」です。
ウェアハウスは規定値のままでOKです。
「作成」をクリックします。
image.png

コーディング

初期状態では、サンプルコードと、その実行結果が表示されています。
サンプルコードは削除して、以下のコードをコピペしてください。

Anacondaパッケージをインストール

Streamlit in Snowflakeでは、Anacondaを用いたPythonの各種ライブラリのインストールが手軽にできます。
今回は「snowflake-ml-python」と、「snowflake.core」をインストールします。
バージョンは共に選択できる中で最新のもので結構です。
image.png
image.png

実行

右上「▶実行」をクリック。
チャットボットアプリが起動します。
image.png

チャットボットアプリを試してみる

アプリ内画面左上の「>」をクリックすると、「社内問い合わせチャットボット」を選択できます。
ここでは、前述までの手順で取り込んだsnowretailのドメイン情報を元に、チャットの回答が生成されます。
では、実際にsnowretailの社内規則について聞いてみましょう。(下画像参照)
社内規則について聞いてみよう

snowretailの社内規則について教えて

という問いに対して、

スノーリテールの主な社内規則について、提供された文書から以下の重要なポイントをご説明します...

といったように、ドメイン情報を元にした適切な回答がされていることが確認できました!

インプットしたドメイン情報はまだまだありますので、ここまでワークショップをなぞった方は別の質問も試してみてください!

画面構成の変更
左下の3つのボタンから、サイドバー、エディタ、プレビューを開閉できます。
image.png

所感

SnowflakeはDWHとしてのデータを蓄積する機能はもちろん、蓄積したデータからAIを用いてビジネス価値の創出を行うための機能が備わっていることがよく分かります。
これらの機能は追加のライセンス等なしに、ログインが完了したその瞬間から使えるようになっているのが魅力的ですね!
また、たったこれだけの手順でチャットボットが完成してしまうほど簡単です。

私も今回のコードを改造して、自社のデータでもチャットボットを作成してみたいと思います:v:

We Are Hiring!

BIPROGYグループでは一緒に働く仲間を募集しています。ご興味ある方は下記をご参照ください。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?