如果你是 ChatGPT 工作空间管理员或 ChatGPT Plus、Pro 用户,并且要使用内置 OAuth 或组织自己的 OAuth 客户端设置 Databricks Genie 连接器,请使用本指南。
内置 OAuth:如果 ChatGPT 提供此选项,且你的 Databricks 工作空间已启用此功能,请使用预配置的连接。你无需创建 OAuth 应用,也无需输入客户端 ID 或客户端密钥。请按照下方“内置 OAuth”部分的步骤操作。
自定义 OAuth 客户端:如果内置 OAuth 不可用,或你的组织要求使用自己的 OAuth 客户端,请使用此方式。请按照下方“自定义 OAuth 客户端”部分的步骤操作。
你将设置什么
你将为自己的 ChatGPT 账户或工作空间创建 Databricks 应用连接。两种方式都需要提供 ChatGPT 要求的 Databricks 服务提供方信息,并具备对计划使用的资源的访问权限。如果使用自定义 OAuth 客户端,还需准备:
在 Databricks 账户控制台中创建的 Databricks OAuth 应用连接。
Databricks OAuth 客户端 ID 和客户端密钥。
从 ChatGPT 原样复制的回调 URL。
与你要启用的连接器功能相匹配的 Databricks 权限范围。
ChatGPT 设置流程要求的各项 Databricks 服务提供方信息,例如工作空间主机、账户主机、账户 ID 或仓库。
开始之前
你需要:
ChatGPT 工作空间管理员或所有者权限,或者 ChatGPT Plus 或 Pro 账户。
如果使用自定义 OAuth 客户端,需要 Databricks 账户管理员权限。工作空间管理员权限可能足以完成某些任务,但自定义应用连接需要在 Databricks 账户控制台中配置。如果使用内置 OAuth,需要 Databricks 管理员确认 ChatGPT 应用可用,且已为你的工作空间启用。
如果使用自定义 OAuth 客户端,需要在单独的标签页中打开 Databricks 账户控制台。
如果使用自定义 OAuth 客户端,需要在 ChatGPT 中打开 Databricks Genie 连接界面,以便原样复制回调 URL。
确定应用需要通用 Databricks API 访问权限,还是仅需 Databricks SQL 访问权限。
如果使用自定义 OAuth 客户端,需要有安全的环境来处理 Databricks 客户端密钥。
如果你的 Databricks 账户或工作空间通过 IP 访问列表、基于上下文的入站控制、防火墙或其他网络策略限制访问,需要请 Databricks 管理员协助放行当前的 ChatGPT 连接器出站 IP 范围。
如果使用自定义 OAuth 客户端,请原样复制 ChatGPT 中显示的回调 URL。
需要准备的值
如果使用自定义 OAuth 客户端,需要准备回调 URL:从 ChatGPT 连接器设置流程中复制。
如果使用自定义 OAuth 客户端,需要准备 Databricks OAuth 客户端 ID。
如果使用自定义 OAuth 客户端,需要准备 Databricks OAuth 客户端密钥。
如果使用自定义 OAuth 客户端,需要准备与应用功能相匹配的 Databricks 访问权限范围,例如所有 API 或 SQL。
ChatGPT 设置流程要求的 Databricks 工作空间或账户字段。
内置 OAuth
请先完成上述准备工作。仅当 ChatGPT 提供内置 OAuth,且你的 Databricks 工作空间已启用此功能时,才可使用此方式。
请让 Databricks 管理员确认 ChatGPT 应用在账户控制台的应用集成设置中可用,且已为你的工作空间启用。如果你的 Databricks 账户控制台中未列出 ChatGPT 应用,请联系你的 Databricks 客户代表,询问你的账户是否可以使用此功能。
在 ChatGPT 中,切换到需要使用该应用的账户或工作空间。如果为个人设置,请前往设置 > 插件;如果为工作空间设置,请以工作空间管理员或所有者身份前往工作空间设置 > 插件。
选择 Databricks Genie,然后选择添加应用连接。
输入工作空间主机名(必填),不要包含
https://或 URL 路径。选择继续,然后登录 Databricks 并检查授权请求。
继续完成下方“连接并测试”和“管理访问权限”部分的步骤,包括获准成员的测试和工作空间访问权限检查。
自定义 OAuth 客户端
请先完成上述准备工作。如果内置 OAuth 不可用,或你的组织要求使用自己的 OAuth 客户端,请使用此方式。设置后,请完成下方“连接并测试”和“管理访问权限”部分的步骤。
在 ChatGPT 中开始设置自定义 OAuth
在 ChatGPT 中,切换到需要使用该应用的账户或工作空间。
如果为个人设置,请前往设置 > 插件;如果为工作空间设置,请以工作空间管理员或所有者身份前往工作空间设置 > 插件。
在目录中选择 Databricks Genie。
选择添加应用连接。
在连接 Databricks Genie 对话框中,找到 OAuth 客户端部分。
从 ChatGPT 复制回调 URL。保持此对话框打开。

回调 URL 示例:
https://chatgpt.com/connector/oauth/<callback_id>
不要删除回调 ID、在末尾添加斜杠,或将其替换为通用的 ChatGPT URL。在 Databricks 中注册的 URL 必须与 ChatGPT 中显示的回调 URL 完全一致。
在 Databricks 中创建自定义 OAuth 应用连接
打开你的 Databricks 账户对应的 Databricks 账户控制台。
在左侧边栏中打开设置。
打开应用连接标签页。
选择添加连接。

输入应用名称,例如 ChatGPT Databricks 连接器。
在重定向 URL 中,原样粘贴从 ChatGPT 复制的回调 URL。
在访问权限范围下,选择应用所需的权限范围。
对于需要使用 SQL 以外的 Databricks API 的通用 Databricks 应用,请选择所有 API。
对于仅使用 Databricks SQL API 的应用,请仅选择 SQL。
确保后续在 ChatGPT 中列出的每个权限范围都已在此 Databricks OAuth 应用中启用。对于通过用户界面创建的应用,Databricks 会自动允许 openid、email、profile 和 offline_access 权限范围。
除非你的组织有特定策略,否则请将令牌有效期(TTL)保留为 Databricks 默认值:访问令牌为 60 分钟,刷新令牌为 10080 分钟。
开启生成客户端密钥。ChatGPT 在此流程中需要使用机密 OAuth 客户端。
创建连接。

从 Databricks 复制凭证
在连接已创建对话框中,复制客户端 ID。
立即复制客户端密钥并妥善保存。
如果尚未复制密钥就关闭了对话框,请创建或轮换 OAuth 应用凭证,并使用新密钥。
Databricks 只会显示一次密钥。请将其作为凭证妥善保管,不要将其放入截图、工单、评论或聊天中。
在 ChatGPT 中完成自定义 OAuth 设置
返回连接 Databricks Genie 对话框。
在 OAuth 客户端 ID 中输入 Databricks 客户端 ID。
在 OAuth 客户端密钥中输入 Databricks 客户端密钥。
在权限范围(可选)中,输入应用的 Databricks 端点和功能所需的权限范围。确保这些权限范围与 Databricks OAuth 应用中启用的权限范围相匹配。
每行输入一个权限范围,或用逗号分隔多个权限范围。ChatGPT 中列出的每个权限范围都必须在 Databricks OAuth 应用中启用。
输入工作空间主机名(必填),不要包含 https:// 或 URL 路径。填写设置流程中显示的其他必填 Databricks 服务提供方字段。
选择继续。
ChatGPT 只会请求你在权限范围(可选)中输入的权限范围。它不会自动添加模板中更宽泛的权限范围。

连接并测试
无论使用哪种 OAuth 方式,都请完成以下连接测试和访问权限检查。
检查连接器的详细信息、操作和身份验证设置。
如果你是工作空间管理员,请为工作空间启用连接器,并根据工作空间策略配置哪些用户可以使用它。
以获准使用连接器的测试用户身份,从 ChatGPT 发起连接流程,然后登录 Databricks。
确认浏览器打开的是预期的 Databricks 账户或工作空间。
检查请求的权限范围,然后选择授权。

确认浏览器返回 ChatGPT,且连接器显示为已连接。
先执行低风险的读取操作,例如获取当前用户信息或查询已获批的 Databricks SQL 资源。
如果启用了写入操作,请先使用明确属于低风险的 Databricks 工作流进行测试,再推广到更大范围。
如果是为工作空间进行设置,请让一位获准使用连接器的非管理员成员进行连接,并重复低风险测试。
管理访问权限
Databricks 和 ChatGPT 共同控制访问权限。
在 ChatGPT 中,工作空间管理员管理应用是否可用,以及成员可以如何使用它。在 Business 中,管理员管理是否为整个工作空间启用应用。请在 Databricks 应用的管理员控件(工作空间设置 > 应用)中检查以下设置:
用户访问权限:在支持此功能的 Enterprise 和 Edu 工作空间中,配置哪些工作空间角色可以使用连接器。
操作控制:配置启用哪些 Databricks 操作。
应用权限:配置 ChatGPT 在哪些情况下需先询问成员,再使用连接器。
这些应用权限适用于 ChatGPT 对话。工作空间智能体使用由其创建者为各个智能体单独设置的控件,来确定哪些应用操作可用,以及何时需要请求最终用户批准。有关智能体的行为,请参阅:适用于 Enterprise 和 Business 的 ChatGPT 工作空间智能体。
在 Databricks 中,管理员管理哪些用户可以授权 OAuth 应用,以及这些用户可以访问哪些 Databricks 资源。在 ChatGPT 中启用应用后,服务提供方的权限限制仍然适用。
有关各套餐的应用控件,请参阅应用中的管理员控件、安全性和合规性。
排查 Databricks 连接器设置问题
重定向 URI 不匹配:如果使用自定义 OAuth 客户端,请确认 Databricks 中的重定向 URL 值与 ChatGPT 中显示的回调 URL 完全一致,包括路径和回调 ID。不要删除回调 ID、在末尾添加斜杠,或替换为其他 ChatGPT 重定向 URL。
密钥缺失:如果使用自定义 OAuth 客户端,请注意 Databricks 密钥只会显示一次。如果未复制密钥,请生成新的客户端密钥。
OAuth 应用未立即可用:Databricks 表示,OAuth 应用更新最多可能需要 30 分钟才能处理完成。
权限范围不足或不匹配:如果使用自定义 OAuth 客户端,请对比 ChatGPT 中的权限范围(可选)与 Databricks OAuth 应用中的访问权限范围。ChatGPT 请求的每个权限范围都必须在该应用中启用。确认权限范围支持你使用的端点和功能,并根据需要提供通用 API 访问权限或仅限 SQL 的访问权限。
SQL 操作失败:请检查 SQL 权限范围、仓库配置和 Databricks 权限。
ChatGPT 工作空间错误:请在用户将连接该连接器的同一个 ChatGPT 工作空间中创建并启用连接器。
Databricks 账户或工作空间错误:请确认工作空间主机名(必填)的值,然后重新执行登录流程,确认 Databricks 打开的是预期的账户或工作空间。
用户无法连接:请确认用户具有 Databricks 访问权限,且获准授权 OAuth 应用。在 Business 中,请确认已为整个工作空间启用该应用。在支持此功能的 Enterprise 和 Edu 工作空间中,还需确认 ChatGPT 的用户访问权限允许使用该连接器。
Databricks 网络策略阻止连接器访问:如果 Databricks 仅允许特定来源 IP,Databricks 管理员必须更新相关账户或工作空间的 IP 访问列表、基于上下文的入站控制、防火墙或其他由客户控制的网络规则。
允许来自当前 ChatGPT 连接器出站 IP 范围的入站连接。
请在 Databricks 或由客户控制的网络层中配置此允许列表。此设置与 ChatGPT 工作空间的 IP 允许列表相互独立。
公布的 IP 范围可能会变化。如条件允许,请根据该 JSON 自动更新配置。
不要通过轮换客户端密钥或更改 OAuth 权限范围来尝试绕过网络拦截。请先确认 Databricks 是否在拒绝连接器的来源 IP。
