OpenAI 分析连接器 - 交互式示例
此示例允许您将预先配置的应用程序导入 Qlik Cloud,在其中您可以学习如何创建图表表达式来控制 OpenAI 数据的使用,并在用户选择应用程序时生成响应。
在本例中,假设您对 Qlik Cloud 中的分析连接器有基本了解。有关任何关键概念的说明,请参阅前面的教程示例和剩余的 OpenAI 连接器文档。
此示例使用连接器的 'OpenAI Chat Completions API (GPT-3.5, GPT-4) - Rows' 配置。
在您开始之前
注意事项
OpenAI 对其 API 的使用应用速率限制。这意味着,根据您使用的连接器配置和 OpenAI 模型,您可能会在特定的时间间隔内(例如,一分钟)发出的请求数量上受到限制。因此,在需要使用之前,每个图表表达式都已被注释掉,并且一次只能评估一个图表表达式。有关更多信息,请参阅 OpenAI 关于速率限制的文档。
准备工作
在完成此示例之前,您需要完成以下步骤:
-
创建一个 OpenAI 平台帐户
-
获取 OpenAI API 密钥
-
启用分析连接功能于 Qlik Cloud
-
为此示例 (Interactive_Chat_Completions_GPT_3.5_4_Rows) 创建一个单独的连接
有关完整详细信息,请参阅:开始使用 OpenAI 平台 和 创建连接。
下载并上传应用程序
在此处下载示例应用程序:
将应用程序上传到 Analytics 活动中心。
应用程序有什么内容?
该应用程序包含一个小型内联数据集,其中包含一家提供各种产品的公司的网站上的客户评论。我们将使用 OpenAI 根据我们在应用程序中选择的客户评论生成样本响应和严重性分析。
图表表达式练习
上传应用程序后,打开它,并在需要时启用对其工作表的编辑。您可能需要将工作表变成私有。
示例工作表使用服务器端扩展语法在图表表达式中使用分析连接器。图表表达式引用了显示在数据模型中的名为 ComplaintText 和 ProductDescription 的字段。
这些练习的目的是展示如何在图表引用数据模型中的字段的交互式设置中使用 if 语句来控制图表的计算频率。这减少了 OpenAI 带来的成本,因为在这种情况下,只有在单个字段中进行单个选择时才能计算图表。
设置这些示例是为了一次只能评估一个图表表达式。这是由于可能适用于 OpenAI 服务的速率限制,阻止同时评估多个图表表达式。
示例 1
第一张工作表 Example 1 包含图表的基本布局,显示了一系列客户投诉的指标。源数据包括个人客户投诉,以及他们投诉的产品类型等维度,严重程度得分为 5 分。有一些图表对象可以显示表中选定的投诉,并显示 OpenAI 对客户服务部门如何帮助客户解决问题的回应。
执行以下操作:
-
打开第一个工作表,Example 1。
-
在高级选项编辑模式中,选择标题为 OpenAI Possible Starting Points 的黄色文本和图像图表。
-
在“属性”面板中的数据下,单击表达式下的 ,打开表达式编辑器。
-
从表达式开头删除 //。这将取消对表达式的注释,从而允许对表达式进行求值。现在的表达式应该是:
if( count(distinct [ComplaintText]) = 1, endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"Interactive_Chat_Completions_GPT_3.5_4_Rows","column":"choices.message.content"}}', 'draft generic starting points for ways a customer can fix an issue reported with '& [ProductDescription]))
-
退出编辑模式。
-
在标题为 Complaints - Reference Table 的表中,在 ComplaintText 列中选择一个单元格值。
OpenAI 图表现在计算对所选投诉的响应。
清除所选内容,然后尝试选择其他投诉。工作表将随着 OpenAI 对新选择的响应而刷新。
示例 2
第二张工作表 Example 2,包含与 Example 1 类似的图表。OpenAI 对象现在被配置为提供用户选择的评论的一般印象分析。这提供了投诉严重程度的一般细节,可能有助于确定如何优先考虑或开始处理反馈。
执行以下操作:
-
如果您还没有这样做,请将 // 添加回 Example 1 工作表中 OpenAI 对象的表达式中。
-
打开第二个工作表,Example 2。
-
在高级选项编辑模式中,选择标题为 OpenAI Initial Impression 的黄色文本和图像图表。
-
在“属性”面板中的数据下,单击表达式下的 ,打开表达式编辑器。
-
从表达式开头删除 //。这将取消对表达式的注释,从而允许对表达式进行求值。现在的表达式应该是:
if( count(distinct [ComplaintText]) = 1, endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"Interactive_Chat_Completions_GPT_3.5_4_Rows","column":"choices.message.content"}}', 'provide a short description of how severe the following customer complaint is: ' & [ComplaintText]))
-
退出编辑模式。
-
在标题为 Complaints - Reference Table 的表中,在 ComplaintText 列中选择一个单元格值。
OpenAI 图表现在计算对所选投诉的响应。
清除所选内容,然后尝试选择其他投诉。工作表将随着 OpenAI 对新选择的响应而刷新。