使用 Snowflake Copilot 内联

Snowflake Copilot 内联是对现有 Snowflake Copilot 体验的扩展,使您能够从 SQL 代码中查询 Snowflake Copilot。有关 Snowflake Copilot 的信息,请参阅 使用 Snowflake Copilot

仅工作区支持 Snowflake Copilot 内联。有关工作区的信息,请参阅 工作区

备注

Snowflake Copilot 内联在以下区域原生支持:

  • AWS US 西部 2(俄勒冈州)

  • AWS US 东部 1(弗吉尼亚北部)

  • Azure US 东部 2(弗吉尼亚)

要在其他区域使用 Snowflake Copilot,请设置 CORTEX_ENABLED_CROSS_REGION 参数。在此参数中,您可以执行以下任一操作:

  • 提供至少包含一个支持区域的值列表。

  • 将其设置为 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 Cortex 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 可能需要几秒钟才能完成响应,具体取决于所提供响应的长度。

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 语句

以下示例演示如何使用 Snowflake Copilot 内联生成 SQL 查询。

  1. 在 Snowflake Copilot 内联消息框中输入以下问题,然后选择发送图标提交问题。Snowflake Copilot 会回复一个可以回答该问题的 SQL 查询。

    How many stars were given in the past year?
    
    Copy
  2. 查看更改内容。红线高亮部分表示被移除的内容,绿线高亮部分表示新增内容。

  3. 选择 Accept 接受更改建议。

Snowflake Copilot 无权访问表内的数据。如果希望 Snowflake Copilot 构造基于列的特定值筛选的 SQL 语句,则必须提供要筛选的值。

  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 目前可以免费使用。有关定价和计费的详细信息已计划好,但在对此功能收取任何费用之前,您将会收到通知。

语言: 中文