跳到主要内容 跳到补充内容

在可视化表达式中使用 OpenAI 连接

除了使用加载脚本将 OpenAI 问答添加到应用程序的数据模型中,您还可以在应用程序中的图表中直接执行这些操作。单个字段的数据在您和 OpenAI 之间来回发送。

在许多情况下,用于加载脚本连接的代码可以重新用于图表,但存在一些差异。

如果用例是基于用户输入的,那么您可以在图表表达式中使用分析连接和相应的服务器端扩展语法来创建交互式图表,可视化从模型端点接收到的数据。

数据请求量的注意事项

建议只在一行或几行数据的图表表达式中使用 OpenAI 连接。OpenAI 不建议使用图表表达式向 OpenAI 发送大量数据。

了解每个请求发送的行数非常重要。在图表表达式中配置 Azure OpenAI 连接的错误可能会导致意外的大型请求(例如,由于图表中数据模型的使用不当,导致具有相同问题的相同行)。在与第三方平台交互之前,请确保您了解图表表达式计算中使用的字段及其在数据模型中的位置如何影响您与第三方的财务协议和计费安排。外部平台的使用率越高,所产生的成本就越高。

请遵循以下指导原则来缓和和限制您的请求大小:

  • 只能在文本和图像图表表达式中使用连接。强烈建议在OpenAI对象中使用 OpenAI 连接,尤其是当您将表达式添加到已添加一个或多个维度的表中时。OpenAI

  • 如果图表表达式链接到应用程序的数据模型,请在表达式中使用 If 语句,仅在应用程序中进行单个选择时计算图表。这大大减少了图表发送给 OpenAI 的请求中的行数。OpenAI

  • 如果您使用 OpenAI 连接发送大型请求,请在加载脚本中使用该连接,而不是在图表表达式中使用,以便将数据预加载到数据模型中。OpenAI

创建图表表达式

  1. 在编辑可视化时,单击 表达式 进入表达式编辑器。

  2. 在表达式编辑器中,在表达式字段中输入一个表达式。表达式必须使用服务器端扩展语法构造。

简单示例

在这里,您可以找到在开始使用 OpenAI 连接器时可以使用的示例表达式。请考虑以下细节:

  • 仅将表达式与文本和图像对象一起使用。

  • 考虑在表达式中添加一条 if 语句,以控制何时重新计算图表,并根据应用程序中的用户选择进行更新。

  • 为了使表达式工作,必须替换 connectionname 值和任何字段名称,以匹配您自己的连接和应用程序。

有关其他示例,请参阅教程 - 在 Qlik Cloud 中使用 OpenAI 分析连接器

OpenAI 分析连接器的图表表达式示例

连接器配置 表达式 汇总
OpenAI 补全 API (GPT-3) – 行 endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"OpenAI Connection for Rows Completions (GPT-3)","column":"choices.text"}}', 'Translate this text from english to spanish: The sun was rising over the new tomorrow with a tinge of excitement.')

此语句将返回对已输入到表达式中的单个问题的 OpenAI 响应。

警告注释

此表达式不使用 if 语句,因此在绑定到数据模型中的字段时不建议使用。它只适用于具有包含硬编码值的单个输入单元格的独立表达式。

OpenAI 补全 API (GPT-3) – 行 if(vQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Rows_3","column":"choices.text"}}',vQuestion))

这是一个可以在链接到变量输入控件文本和图像对象中使用的语句。只有在输入时才计算图表。当用户在对象中键入输入内容并按 Enter 键时,图表将显示 OpenAI 对其输入的响应。

有关演练,请参阅练习:使用变量创建文本输入框

OpenAI 聊天补全 API(GPT-3.5、GPT-4)– 行 if(GetSelectedCount(BusinessTopic)=1, endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Rows_3", "column":"choices.message.content"}}', 'What are people saying about ' & 'BusinessTopic'), 'Please select a single value for BusinessTopic.') 这是一个复杂的 if 语句,其中只有当用户为字段 BusinessTopic 选择了一个值时,才会计算图表。只有当用户在应用程序中进行了此选择时,图表才会更新,如果用户没有,图表将显示以下备用消息:Please select a single value for BusinessTopic
OpenAI 聊天补全 API(GPT-3.5、GPT-4)– 行 if(vQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Rows_3","column":"choices.message.content"}}',vQuestion))

这是一个可以在链接到变量输入控件文本和图像对象中使用的语句。只有在输入时才计算图表。当用户在对象中键入输入内容并按 Enter 键时,图表将显示 OpenAI 对其输入的响应。

有关演练,请参阅练习:使用变量创建文本输入框

OpenAI 聊天补全 API(GPT-3.5、GPT-4)– 行 if( count(distinct [IssueCategory]) = 1, endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Chat_3_5","column":"choices.message.content"}}', 'write me a sample response from a technical support department for a customer complaint about ' & [IssueCategory])) 在本例中,只有在从应用程序数据模型的字段 IssueCategory 中选择了一个不同的值时,才会计算图表。向 OpenAI 发送一个请求,要求技术支持部门提供关于一般类型问题的示例响应,IssueCategory 字段中包含一个列表。图表将根据用户选择的值进行更新。

详细示例

有关如何使用 OpenAI 连接创建可视化表达式的完整示例,请参阅教程 - 在 Qlik Cloud 中使用 OpenAI 分析连接器

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!