Snowflake Copilot をインラインで使用

Snowflake Copilot インラインは既存の Snowflake Copilot を拡張したもので、 SQL のコード内から Snowflake Copilot にクエリを実行することができます。 Snowflake Copilot については、 Snowflake Copilot の使用 をご参照ください。

Snowflake Copilot インライン はワークスペースでのみサポートされています。ワークスペースの情報については、 ワークスペース を参照してください。

注釈

Snowflake Copilot インライン は以下のリージョンでネイティブにサポートされています:

  • AWS US 西部2(オレゴン州)

  • AWS US 東部1(北部バージニア)

他のリージョンで Snowflake Copilot を使用するには、 CORTEX_ENABLED_CROSS_REGION パラメーターをセットします。このパラメーターでは、以下のいずれかを実行できます:

  • サポートされているリージョンの少なくとも1つを含む値のリストを提供します。

  • ANY_REGION にセットしてください。

CORTEX_ENABLED_CROSS_REGION パラメーターの使用方法については、 クロスリージョン推論パラメーターの使い方 をご参照ください。

アクセス制御の要件

SNOWFLAKE データベースの COPILOT_USER データベースロールには、ユーザーが Snowflake Copilot の機能を使用できるようにする権限が含まれています。デフォルトでは、COPILOT_USERロールはPUBLICロールに付与されます。PUBLIC ロールはすべてのユーザーとロールに自動的に付与されるため、アカウント内のすべてのユーザーが Snowflake Copilot の機能を使用できるようになります。

COPILOT_USER の要件に加え、ユーザーは CORTEX_USER のロールを持っている必要があります。SNOWFLAKE データベースの CORTEX_USER データベースロールには、ユーザーが Snowflake AISQL 関数を呼び出すための権限が含まれています。デフォルトでは、CORTEX_USERロールはPUBLICロールに付与されます。PUBLIC ロールは、すべてのユーザーおよびロールに自動的に付与されるため、アカウント内のすべてのユーザーが Snowflake AISQL の関数を使用できるようになります。

Snowflake Copilot インライン を使用するには、ユーザーが claude-3.5-sonnet モデルにアクセスできる必要があります。すべてのユーザーがこのモデルにアクセスできるようにするには、 claude-3.5-sonnet がモデルの許可リストに含まれており、ロールベースのアクセス制御 (RBAC) によって制限されていないことを確認してください。モデルのアクセス制御に関する情報は、 モデルアクセスの制御 を参照してください。

ユーザーが正しい権限を持っている場合、ワークスペースに Snowflake Copilot インラインスパークルアイコンが表示されます。インライン・インターフェイスを使って、 Snowflake Copilot と対話します。

インラインCopilotへのアクセスを取り消すには、 CORTEX_USER または COPILOT_USER へのアクセスを取り消す必要があります。すべてのユーザーにこの権限を持たせたくない場合は、 PUBLIC ロールのアクセス権を取り消し、特定のロールにアクセス権を与えることができます。例えば、 PUBLIC ロールからのアクセスを取り消すには、以下のクエリを使用します。

USE ROLE ACCOUNTADMIN;

REVOKE DATABASE ROLE SNOWFLAKE.COPILOT_USER
  FROM ROLE PUBLIC;

REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER
  FROM ROLE PUBLIC;
Copy

必要に応じてアクセスを付与することができます。 Snowflake Copilot へのアクセス制限に関する情報については、 Copilotへのアクセスを制限する をご参照ください。

サポートされているユースケース

  • 新しいデータセットの構造やニュアンスを知るために、自由形式の質問をすることで、 データを探索します

  • 自然言語による質問で SQLクエリを生成 します。

  • クエリの効率を評価したり、最適化を見つけたり、クエリが何をするのかを説明したりするために、 Snowflake Copilot に質問して、 クエリを改善します

  • クエリの修正を Snowflake Copilot に質問して 構文エラーを修正 します。

制限事項

Snowflake Copilot インラインには以下の制限があります。

  • 以下の言語をサポート:

    • 英語

    • フランス語

    • ドイツ語

    • スペイン語

    • イタリア語

    • ポルトガル語

    • アラビア語

    • ヒンディー語

    • 中国語

    • 日本語

    • 韓国語

    • SQL

データへのアクセス不可

Snowflake Copilot はテーブル内のデータにアクセスできません。列の特定の値でフィルタリングしたい場合は、その値を提供する必要があります。例えば、 Snowflake Copilot にA列の値が "X "に等しい行をすべて返すように要求する場合、リクエストに "X "という値を指定する必要があります。詳しくは、 SQLステートメントの構築と実行 の例をご参照ください。

レスポンスの遅れ

提供されたレスポンスの長さによっては、 Snowflake Copilot がレスポンスを完了するのに1秒かかる場合があります。

SQL 提案が常に機能するとは限りません

Snowflake Copilot は、無効な SQL 構文や存在しないテーブルや列を含むクエリを提案することがあります。

新しいデータベース、スキーマ、テーブルの検出の遅れ

Snowflake Copilot には、新しく作成されたデータベース、スキーマ、テーブルを認識するまでに3~4時間かかる場合があります。

考慮される表と列の数に制限あり

レスポンスを生成するために、 Snowflake Copilot は、まずリクエストに最も関連するテーブルと列を検索します。検索結果は、関連性によってランク付けされ、結果の上位10テーブルと各テーブルの上位10列のみが、回答を生成する際に考慮されます。

Snowflake Copilot インライン フィードバックをサポートしていません。

Snowflake Copilot インラインが提供する提案にアップボーテやダウンボーテをつけることはできません。

Snowflake Copilot インラインの使い方

Snowflake Copilot インラインでは追加の設定は必要ありません。 Snowflake Copilot を使用する際は、以下の点に注意してください:

  • Snowflake Copilot がインラインで表示されている各セッションは、ワークスペース内の特定のファイルに関連付けられています。

  • Snowflake Copilot をインラインで使用するために、セッション中にデータベースとスキーマを使用する必要はありません。

  • Snowflake Copilot は、データベース、スキーマ、テーブル、列の名前と、列のデータ型を使用して、クエリに使用できるデータを決定します。

  • 最適なパフォーマンスを得るためには、データベース、スキーマ、テーブル、および列に意味のある名前を使用し、列に適切なデータ型が割り当てられていることを確認します。

  • Snowflake Copilot インライン は以下のソースを考慮しますが、それらからのデータは保存しません。

    • SQL クエリとコードを含む、現在のファイルの内容。

    • データベース、スキーマ、ロールを含む、現在のファイルのコンテキスト。

    • ユーザー入力。

    • Snowflakeドキュメントまたは一般的な SQL ナレッジ。

    • アカウントのデータ。

Snowflake Copilot をインラインで使い始めるには:

  1. ワークスペースを開きます。ワークスペースの情報については、 ワークスペース を参照してください。

  2. CMD+I ショートカットを入力します。

  3. メッセージダイアログにリクエストを入力します。次に送信アイコンをクリックして送信します。 Snowflake Copilot インラインでレスポンスが表示され、既存のコードとの差分が表示されます。

  4. 以下のいずれかをお選びください。

    • Accept を選択して、提案された変更を受け入れます。

    • 提案された変更を拒否するには、 Reject を選択します。

    • セッションを終了するには、 Close を選択します。

カスタム指示を追加する

Snowflake Copilot インラインは、応答方法をカスタマイズするためのカスタム命令は受け付けません。

以下のセクションでは、その方法を示す例を示します。

これらの例では、 Snowflake Marketplace のサンプルデータセットを使用しています。

前提条件

このセクションの例では、 Snowflake Marketplace の Cybersyn Github Archiveデータセット を使用します。

  1. Cybersyn Github Archiveデータセット をアカウントにインストールしてください。

  2. ワークスペースを開きます。ワークスペースの情報については、 ワークスペース を参照してください。

  3. Cybersyn Github Archiveデータベースとスキーマを選択します。

SQLステートメントの構築と実行

次の例は、 SQL クエリを生成するために Snowflake Copilot をインラインで使用する方法を示しています。

  1. Snowflake Copilot のインラインメッセージボックスに以下の質問を入力し、送信アイコンを選択して送信します。 Snowflake Copilot から、質問に回答する SQL クエリが返信されます。

    How many stars were given in the past year?
    
    Copy
  2. 変更点を見直してください。赤でハイライトされた線は削除され、緑でハイライトされた線は追加されます。

  3. Accept を選択して、提案された変更を受け入れます。

Snowflake Copilot はテーブル内のデータにアクセスできません。列の特定の値に基づいてフィルタリングする SQL ステートメントを Snowflake Copilot に構築させたい場合は、フィルタリングする値を指定する必要があります。

  1. メッセージボックスに以下の質問を入力し、送信アイコンを選択します。 Snowflake Copilot インラインは、指定したフィルター値を使用する SQL クエリで応答します。

    What are all of the repo names that start with 'snowflake'?
    
    Copy
  2. 変更点を見直してください。赤でハイライトされた線は削除され、緑でハイライトされた線は追加されます。

  3. Accept を選択して、提案された変更を受け入れます。

SQL ステートメントへのコメント追加

次の例は、 Snowflake Copilot を使用して、作業中の SQL ステートメントにコメントを追加する方法を示しています。

  • Snowflake Copilot インラインメッセージボックスに、以下の質問をタイプしてください。

    Can you add comments to this query?
    
    Copy

Snowflake Copilot は、提供されたクエリの各行の目的を説明するコメントを追加することで応答します。

SQL ステートメントの修正

次の例は、ワークスペースから Snowflake Copilot インラインを使用して SQL ステートメントを修正する方法を示しています。

  1. 構文エラーのあるターゲットクエリにカーソルを合わせます。

  2. CMD+I ショートカットを入力すると、 Snowflake Copilot インラインウィンドウが表示されます。

  3. Snowflake Copilot にクエリの修正を依頼してください。

  4. 変更点を見直してください。赤でハイライトされた線は削除され、緑でハイライトされた線は追加されます。

  5. Accept を選択して、提案された変更を受け入れます。

Snowflake Copilot の使用上の注意

Snowflake Copilot の使用に関するヒントについては、 Snowflake Copilot の使用上の注意 を参照してください。

コスト

Snowflake Copilot は現在無料で使用できます。価格と請求の詳細については計画中ですが、この機能に課金が適用される前にお知らせします。