我尝试了新的 OpenAI 连接器,真太棒了!

news2025/1/17 15:54:02

我们上个月发布的新连接器将 Open AI 集成简化为仅需几步操作。我实现了聊天完成 API(有和没有上下文),并想编写一个关于其工作原理的快速教程。

先决条件

与往常一样,在进入主要构建之前我们需要做一些准备工作。你会需要:

  • 带有 API 密钥的 OpenAI 开发者帐户

  • 为 OpenAI 配置的计费。(预付信用卡可以正常使用。请参阅 OpenAI 定价页面。https://openai.com/pricing)

  • 社区共享(Community Commons | Mendix Documentation)和加密模块 (Encryption | Mendix Documentation)

获取 API 密钥并配置计费

获取您的 API 密钥很简单。使用注册的 OpenAI 账户登录 OpenAI 开发者门户,导航到 API 密钥页面(https://platform.openai.com/account/api-keys)来创建一个新的密钥。确保将其保存在安全的地方,因为创建后将无法查看它。(但如果需要,您可以创建新的密钥。)

配置计费非常简单,只需按照 OpenAI 编写的指南进行操作即可。

完成 OpenAI 配置后,请确保下载社区共享模块以及加密模块。

开始构建

打好基础后,您就可以开始正式的构建了。您的第一步是从 Mendix 市场下载并配置 OpenAI 连接器。
(https://marketplace.mendix.com/link/component/220472)

将模块导入项目后,您需要启用应用程序管理员来配置连接器。这非常简单。模块中有一个名为“Configuration_Overview”的预建页面,您可以将其包含在导航中。

或者 您可以创建自己设计的新页面,并简单包含代码片段“Snippet_Configurations”。无论您选择哪种方法,您的管理员角色都需要所需的模块角色才能访问。

要为应用程序管理员分配所需的权限,请打开安全概览,导航到用户角色选项卡,然后打开管理员角色。确保分配权限 OpenAIConnector.Administrator 模块角色。

这也是确保授予应用程序用户 OpenAIConnector.User 角色的好时机。

图片 1.png

接下来,运行您的应用程序,以管理员用户身份登录(MxAdmin 适用于本地环境),然后导航到 OpenAI 的配置概述。到达那里后,单击“新建”按钮创建一个新的 OpenAI 配置。

给你的配置命名。我将我的命名为“TestConfig”。接下来,选择您的 API 类型,Azure 或 OpenAI。对于本教程,请选择“OpenAI”。端点只是 OpenAI 端点或 URL。我的设置为“https://api.openai.com/v1/”,按照表单中的示例建议。

最后,在 Token 字段中输入您的 API 密钥。对输入的详细信息满意后,请单击“保存”按钮关闭表单。

图片 2.png

保存配置后,最好测试一下连接。打开“测试配置”页面,输入提示以及您尝试使用的 GPT 模型。就我而言,我使用的模型是 gpt-4-turbo。但您可以根据用例需要使用其他内容。如果所有配置正确并且正常运行,您将收到以下形式的绿色成功消息:

图片 3.png

实现聊天完成(无历史记录)

验证连接正常且您可以对提示生成响应后,您需要将模型集成到微流中。

在我的主页“Home_Web”上,我有一个简单的聊天窗口供用户输入他们的消息。有一个“发送”按钮,无论聊天是否记住历史记录,它都会调用相同的微流程。

图片 4.png

当用户点击“发送”按钮时,它会调用微流“ACT_SendMessageToModel”。该微流在决策“UseChatHistory”上分支。默认情况下,此布尔值为假,但用户可以在页面中启用此功能。

图片 5.png

如果“UseChatHistory”为假,则会触发微流“SUB_SendMessage_NoHistory”。此流程在“$ChatHistory”实体中创建用户提供的提示的内部副本。然后,它使用提供的操作调用连接器并创建模型响应的副本:

图片 6.png

下面详细介绍了如何配置操作:

图片 7.png

如果您已正确完成所有操作,您可以运行您的应用程序并测试此功能。接下来,我们整合更高级的“带历史记录”选项。

实现聊天完成(带历史记录)

这种方法与第一种方法略有不同,需要做一些额外的工作来设置。它有三个主要步骤:

1. 为聊天创建一个会话。这是 OpenAI Connectors 域模型中的非持久性对象。每次发送消息时都需要创建一个新会话。它仅仅是请求的持有者。您需要为每个新提示重新创建它。

2. 接下来,我们需要填充聊天历史记录。这涉及检索聊天中的所有消息、循环遍历每条消息并将其附加到聊天历史记录中。您可以使用连接器中提供的名为“ChatCompletionsSession_AddMessage”的微流来执行此操作。

图片 8.png

如果您想向模型提供系统提示,您可以在此处进行。添加到历史记录中的每条消息都被分配了一个角色。用户被分配“用户”,模型被分配“助手”,任何系统提示都被分配“系统”。您可以使用系统提示来微调特定风格、格式或语气的回应 它还告知模型其目的,使其能够提供更有针对性的响应。

3. 最后,我们就可以真正调用该模型了。您可以使用提供的操作“聊天完成(带历史记录)”执行此操作。此操作需要我们之前手动创建的“$ChatCompletionsSession”实体,以及配置、模型和预期响应格式。

图片 9.png

图片 10.png

是时候测试一下了!

如果一切顺利,您可以最后一次运行您的应用程序并测试这两个功能。下面是我使用该机器人的一个版本的屏幕截图,其中该机器人被告知它是 Mendix 开发方面的专家,它应该可以帮助那些学习该平台的人:

图片 11.png

我遇到的主要问题是弄清楚需要为每条消息重新创建的 ChatSession 实体。一旦我弄清楚了这一点,只需将聊天内容存储在数据库中,然后在发送最新的回复之前重新提交每条消息即可。还要记得将模型自己的反应附加到这个历史记录中,因为如果没有这个,它就不会记住自己的反应。

最后,系统提示选项比它看上去的更强大。这使得您只需提供几句话就可以非常轻松地完全定制您的机器人。您可以创建与您的目标完全一致的机器人。

如果您想了解有关此集成如何运作的更多信息,请务必访问我们的文档页面(https://docs.mendix.com/appstore/modules/openai-connector/)。您还可以在 OpenAI 平台(https://platform.openai.com/docs/introduction)上信息,或从 Mendix 市场下载 OpenAI 展示应用程序(https://marketplace.mendix.com/link/component/220475)。

关于Mendix

作为西门子Xcelerator平台的低代码引擎,Mendix正在迅速成为推动企业数字化发展的首选应用程序开发平台。Mendix让企业能够以前所未有的速度构建应用程序、促进IT团队与业务专家之间开展有意义的协作,并帮助IT团队保持对整个应用程序环境的控制。作为一直被领先的行业分析师视为“领军者和远见者”的低代码平台,Mendix是云原生的、开放的、可扩展的、敏捷的,并且经过实践验证。从人工智能和增强现实,到智能自动化和原生移动,Mendix和西门子Xcelerator已成为“数字优先”企业的中坚力量。Mendix已被46个国家的4,000多家企业采用,并建立了由30多万名开发人员组成的活跃社区,这些开发人员使用该平台创建了20多万款应用程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1895022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FFT 简单基础(matlab

使用 fs 进行采样,进行 N点FFT 选择显示0~N/21点的幅值 横坐标对应频率计算公式: fs * n / N 举个梨子: 频率2kHz采样1s,得到2000个点的序列y(n) 对序列y(n)做4096点的FFT 幅值响应对应的横坐标频率…

隐私信息管理体系认证:守护个人信息,筑牢隐私防线

在数字化浪潮汹涌的当下,个人信息安全问题愈发凸显其重要性。随着互联网技术的飞速发展,我们的隐私信息如同裸露在阳光下的沙滩,稍有不慎就可能被不法分子窃取或滥用。因此,构建一个完善的隐私信息管理体系,成为了保障…

实现第一个神经网络

PyTorch 包含创建和实现神经网络的特殊功能。在本节实验中,将创建一个简单的神经网络,其中一个隐藏层开发一个输出单元。 通过以下步骤使用 PyTorch 实现第一个神经网络。 第1步 首先,需要使用以下命令导入 PyTorch 库。 In [1]: import…

免费通配符/泛域名SSL证书快速申请攻略

在互联网时代,网站安全的重要性日益凸显,而SSL证书作为保障网站安全的关键工具,其重要性不言而喻。对于拥有多个子域名的网站来说,通配符/泛域名SSL证书更是必不可少的安全保障。下面将介绍如何申请免费的通配符/泛域名SSL证书。 …

EXTI寄存器,AFIO的简洁,EXTI配置的流程

一,AFIO简介 AFIO是Alternate Function Input/Output 的缩写,表示复用功能IO,主要用于实现IO端口的复用功能以及外部中断的控制 STM32外设有很多I/O以及内置外设(如12C,ADC,ISP,USART等)。为节省引出管脚的…

案例分享:数据集市搭建方案中集成SQLFlow数据血缘分析工具

本文中描述的数据集市搭建方案是一家跨国公司在AWS平台上的具体实践案例。我公司参与其中的数据血缘部分的建设,SQLFlow数据血缘分析工具在该方案中帮助用户实现了数据血缘分析。 用户使用Redshift 数据库仓库进行数据集市开发。从各种数据源提取数据,并…

【电路笔记】-B类放大器

B类放大器 文章目录 B类放大器1、概述2、B类放大器介绍3、推挽式配置4、限制交叉失真5、B类放大器效率6、总结1、概述 我们在之前的文章中已经知道,A 类放大器的特点是导通角为 360,理论最大效率为 50%。 在本文中,我们将详细介绍另一类放大器,称为B类放大器,它是为解决A…

CAN总线Bus-off机制介绍及恢复策略说明

CAN总线Bus-off机制介绍及恢复策略说明 Bus-off产生机制 CAN通信Bus-off即总线关闭态,一个CAN节点有三种状态,主动错误状态、被动错误状态以及总线关闭态。如下图可知进入Bus-off的原因是因为发送错误大于255,在此状态节点不能收发报文。 以上三种错误状态标识发生故障的严…

让GNSSRTK不再难【第17讲 RTK定位技术原理-站间单差浮点解--第1部分】

第17讲 RTK定位技术原理-站间单差浮点解 RTK技术其实就是在RTD技术的基础上增加载波观测值的使用。由于伪距的误差在分米量级,即使我们通过站间单差消除掉绝大部分的伪距误差,但受限于伪距的精度,我们也只能达到分米量级的定位水平。 但载波…

【Vue】使用html、css实现鱼骨组件

文章目录 组件测试案例预览图 组件 <template><div class"context"><div class"top"><div class"label-context"><div class"label" v-for"(item, index) in value" :key"index">…

启动Nuxt-hub-starter: Failed to initialize wrangler bindings proxy write EOF

重新安装 node.js 这样做可以确保下载到了适合的 Windows 框架、Chocolatey&#xff08;一款Windows包管理工具&#xff09;、Python 等资源。 这个错误与Node版本、pnpm/yarn 的版本无关&#xff01; Node.js — Download Node.js (nodejs.org)

实证分析影响关系研究40+回归模型汇总整理

研究自变量X与因变量Y的影响关系时&#xff0c;回归模型是常用的方法。但是不同的回归模型其适用条件不同、种类繁多。SPSSAU目前提供了40多种不同的回归模型&#xff0c;如何选择适合的模型成为关键问题&#xff1b;此外&#xff0c;如何有效分析回归模型的结果也是研究中的重…

智能座舱相关问答

一、基本概念与理解 智能座舱的定义 回答&#xff1a;智能座舱是指在现代交通工具中&#xff0c;通过应用智能技术&#xff0c;实现对乘客座舱环境和服务进行智能化管理和优化的系统。它不仅提供更加舒适的乘坐体验&#xff0c;还能通过精确的数据分析和实时监控&#xff0c;提…

在Stimulsoft 报告中连接来自 MySQL 的数据

Stimulsoft Ultimate &#xff08;原Stimulsoft Reports.Ultimate&#xff09;是用于创建报表和仪表板的通用工具集。该产品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他环境的完整工具集。无需比较产品功能&#xff0c;Stimulsoft Ultimate包含了…

软件测试最全面试题及答案整理(2024最新版)

1、你的测试职业发展是什么? 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&#xff0c;不断…

【Python机器学习】算法链与管道——通用的管道接口

Pipeline类补单可以用于预处理和分类&#xff0c;实际上还可以将任意数量的估计器连接在一起。例如&#xff0c;我们可以构建一个包含特征提取、特征选择、缩放和分类的管道&#xff0c;总共有4个步骤。同样的&#xff0c;最后一步可以用聚类或回归代替。 对于管道中估计器的唯…

Python学习笔记28:进阶篇(十七)常见标准库使用之质量控制中的代码质量与风格第二部分

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 教程链接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 质量控制…

旅游系统(附管理端+前台)PHP源码

一. 前言 今天小编给大家带来了一款可学习&#xff0c;可商用的&#xff0c;旅游系统 源码&#xff0c;支持二开&#xff0c;无加密。支持景点管理&#xff0c;登录&#xff0c;景点预定&#xff0c;意见反馈&#xff0c;统计等功能。详细界面和功能见下面视频演示。 二. 视频…

spdlog一个非常好用的C++日志库(四): 源码分析之logger类

目录 1.简介 2.类图关系 3.logger数据成员 4.logger函数成员 4.1.构造与析构 4.1.1.构造函数 4.1.2.拷贝构造、移动构造 4.2.交换操作 4.3.log()记录日志消息 4.3.1.格式串 4.3.2.普通字符串 4.3.3.日志级别 4.3.4.宽字符支持 4.4.sink_it_&#xff1a;将log消息…

android应用的持续构建CI(二)-- jenkins集成

一、背景 接着上一篇文章&#xff0c;本文我们将使用jenkins把所有的流程串起来。 略去了对android应用的加固流程&#xff0c;重点是jenkins的job该如何配置。 二、配置jenkins job 0、新建job 选择一个自由风格的软件项目 1、参数赋值 你可以增加许多参数&#xff0c;这…