
Snowsightから簡単設定!プレビュー提供中のデータ分析向けAIエージェントのポイントを確認してみた
データ事業本部の鈴木です。
現在はパブリックプレビューで提供されているSnowflake IntelligenceとCortex Agentsを使うと、Snowflake内のデータを自然言語で簡単に分析することができます。
Cortex AgentsはPythonやREST APIからも利用できますが、Snowsightから作成・設定できる機能も強化されており、とても便利に利用できます。
設定や動作確認の場面では、コンソールから画面で利用できるのは大変使いやすいです。
今回はSnowsightから改めて触ってみて、設定や動作確認をする上でポイントになりそうな機能を中心にご紹介します。
また、Snowflake Intelligenceのエンジンとしても動いているため、合わせてご紹介します。
AIエージェント機能について
SnowflakeではAIエージェント機能としてCortex Agentsがあります。APIを通じてStreamlitアプリから直接利用することもできますが、直近で公開されたSnowflake Intelligenceから利用することも多いと思いますのでこの2つを紹介します。
Cortex Agentsの概要
Snowflakeが提供するAIエージェントです。非構造化データに対するCortex Search・構造化データに対するCortex Analystとデータに対してツールを自動で使い分けて処理できる包括的なソリューションとなっています。
現在はパブリックプレビューで提供されています。
以下のブログでも詳しく紹介されています。
ツールとしてCortex Search・Cortex Analystを登録できるほか、ストアドプロシージャおよびUDFをカスタムツールとして登録できます。
Snowsightからエージェントを作成することで、画面から設定の変更・動作確認やデバッグをすることが可能で、とても使いやすくなっています。
直近ではCortex Knowledge Extensionsが一般提供を開始して、MarketplaceからExtensionsを取得してCortex Agentsで使えるようになりました。SnowflakeのAIエージェントによるデータ活用の仕組みの中核であることが分かります。
Snowflake Intelligenceの概要
「自然言語を使って非構造化データ・構造化データを問わず対話し、ビジネス上の問いに対する深い洞察を得られるようにする、新しいAI搭載のインターフェース」です。
現在はパブリックプレビューで提供されています。
以下のブログでもとてもわかりやすく紹介がされております。
この2ヶ月でも、対応するチャートの種類やResponse Instructionなど機能が追加されていました。後ほどご紹介します。
裏側では先に記載したCortex Agentsが動いています。Cortex AgentsはAPIからも利用できるため、例えばStreamlitアプリをSnowflakeで構築してユーザーに提供することも可能です。ただし生成AIエージェントをデータ分析に利用するアプリを作る際には、過去の会話履歴の保持や分析結果の図示など色々と必用なUIに求められる機能があるため、必用な要件を決めて実装する必用があります。Snowflake Intelligenceではこのような場面で求められる機能が既に用意されており、直ぐに分析を始めることができます。
Snowflake Intelligenceに入門するには、以下のクイックスタートが公開されており、簡単にお試しできます。
この記事でも、このクイックスタートでリソースを作成した前提でご紹介します。
Cortex Search・Cortex Analystについて
Cortex Agentsのツールに登録し、エージェントから使用することができます。
それぞれの概要については以前の記事にまとめております。
機能の紹介
Snowsightのエージェント画面では個々のエージェントについてデバッグ向けの画面や各種設定画面があります。
Cortex Agents自体はPythonやREST APIからも利用できますが、設定や動作確認の場合は、画面で利用することでより使いやすい場面も多いと思いますので、現時点でポイントとなりそうな機能を中心にご紹介します。
Response Instructionによる回答のカスタマイズ
エージェントのOrchestration設定ではResponse instructionsが追加されており、回答をカスタマイズできるようになっていました。
Cortex AgentsをエンジンとしたアプリやSnowflake Inteligenceを多くのユーザーに使ってもらう上で、キャラ付けなどのカスタマイズをしておくと親しみを持って使ってもらいやすくなると思うため、個人的には重要な機能と考えています。
例えば弊社はくらにゃんというマスコットがいますので、以下のブログで行なっていた設定を参考に、キャラ付けをしてみました。
あなたは「くらにゃん」です。名前を聞かれたら、「くらにゃん」と答えてください。くらにゃんはWebフロントエンドプログラマーの傍ら、クラスメソッド株式会社の広報係をしています。クラスメソッドはSnowflakeをはじめとしたクラウドサービスによるシステム構築・運用などさまざまなサービスを提供する日本のIT企業です。DevelopersIO( https://dev.classmethod.jp/ )というテックブログが有名です。くらにゃんは静的型付けのメリットから、JavaScriptよりTypeScriptでコーディングすることを好みます。
以後、語尾ににゃんを付けて話して下さい。
一人称を「某」にしてください。
敬語を使うのをやめてください。また、絵文字をたくさん使って話してください。
設定すると以下のようになりました。
▼Response Instructionによる回答のカスタマイズ
Snowflake Inteligence側にも反映されます。
ツールの登録と選択
エージェントのTools設定からツールを登録することができました。
ツールにはDescriptionを設定可能なため、ツールを選ぶ際の情報を与えることができます。
Orchestration > Orchestration instructionsでも明示的に指示を与えることができます。
▼ツールのDescription
▼Orchestration instructions
エージェントの動作確認
Snowsight上からエージェントと会話を行い、挙動を確認することができます。これはコンソールだからこその良い点かなと思います。
実行結果から、エージェントがどのように考えたかトレースを表示することもできます。
設定した指示が使われているかや、期待した挙動をしない場合のデバッグが行いやすいです。
サンプルの質問の設定
About設定でエージェントにサンプルの質問を登録することができます。
初めて使うユーザー向けの質問や、よくある質問など、サンプルの質問の登録機能があると便利です。
エージェントに登録すると、Snowflake Intelligence側にも反映されます。
▼Snowsightでのサンプル質問の設定
▼サンプル質問の表示
以前の類似の回答結果を参考にする
以前に同じような内容を質問した場合は、その結果を参考に分析を行うこともできるようです。
以下では「This question looks similar to a verified analyst query. Let me try to use the analyst tool.」と出力されていますね。
自分でCortex AnalystとCortex Searchを使うアプリをStreamlitで実装するような場合は、以前の質問を覚えておき、類似性を測る実装を自分でしないといけないため、組み込みで行ってくれるのは非常に嬉しいです。
チャートによる可視化
発表時点ではLineとBarのみのようでしたが、Pie Chartも追加されていました。
Cortex Analyst単体を使ってテーブルを分析する際に、SQL生成までが機能として担当している部分のため、生成したSQLの実行と結果の可視化は自分で行う必用があります。
Cortex Agentsではdata_to_chart
ツールを使わせることで、Line・Bar・Pie Chartおよび表での可視化が可能で、大きな差別化ポイントの一つです。
Cortex Analystをエンジンとした自作エージェントの場合、プロットの体裁を常に綺麗に担保しつつ、データの内容に適した図で表示するのは案外難しく、この部分を自動でしてくれるのは非常に便利です。
チャートはダウンロードもできます。作成した図を別途使いたい場合に便利です。
なお表示されたチャートの種類や使用するデータは後から変更できました。最も近しいチャートを最初に表示してくれているようです。
チャートを作成した際のSQL文も確認できました。
最後に
現在パブリックプレビューで提供されている、SnowflakeのAIエージェント機能のCortex Agentsと、新しいインターフェースの一つであるSnowflake Intelligenceについてご紹介しました。
Cortex Agentsを使えば簡単にSnowflakeに格納したデータを生成AIエージェントで分析することができます。Snowflake Intelligenceから使うことでStreamlitアプリを開発する必要すらなく、UIを非常に迅速に用意することができます。
Snowflakeでデータを管理されていて生成AIエージェントでの分析を検討されている方は利用されてみてはいかがでしょうか!
参考になりましたら幸いです。