人工智能(AI)最近受到广泛关注,因为它可以改变我们生活的许多领域。更好的计算机能力和更多数据帮助人工智能完成了许多惊人的事情,例如改进医学测试和制造自动驾驶汽车。人工智能还可以帮助企业做出更好的决策,提高工作效率,这也是人工智能越来越流行和广泛应用的原因。如何将 OpenAI API 调用集成到现有的 IRIS 互操作性应用程序中?
前提条件
在本教程中,我们假设您已经拥有一个现有的互操作性产品和一组 OpenAI 凭证来调用 OpenAI API。您可以从以下 GitHub 项目分支下载我们在本教程中使用的代码: https://github.com/banksiaglobal/bg-openai/tree/test-app-original
要了解如何获取 OpenAI 凭证,请按照本教程https://allthings.how/how-to-get-your-open-ai-api-key/或打开 OpenAI API 密钥页面并创建一个https://platform .openai.com/api-keys
原始申请
我们的应用程序 AppExchange 可模拟 InterSystems OpenExchange 的发布功能:它可获取包含项目描述、项目徽标和 GitHub URL 的请求,并将其发布到 AppExchange 存储库中。
加入人工智能元素
现在,我们假设管理我们存储库的人注意到一些应用程序开发人员很懒,没有为他们正在发布的应用程序提供简短的摘要或徽标。这就是我们的人工智能朋友可以来救援的地方!
理想的工作流程如下所示:
- 应用程序接收存储库的 URL、摘要和徽标的 URL 作为输入。
- 如果摘要为空,则 URL 会被发送到基于 GPT 的模型,该模型解析存储库内容并生成项目的描述性摘要。这一过程可能涉及解析存储库中的README 文件、代码注释和资源库中的其他相关文档,以提取有关项目目的、功能和用途的关键信息。
- 然后,生成的项目摘要将用作另一个基于 GPT 的模型的输入,该模型的任务是为项目创建徽标。该模型使用描述来理解项目的主题,然后设计一个标志,来直观地代表项目的本质和特征。
- 应用程序输出的响应包括原始 URL、生成的项目摘要和新创建的徽标。此响应提供了项目的全面概述,以及可用于品牌和营销工作的视觉标识符。
为了实现这种集成,我们将使用业务流程设计器对应用程序的工作流程进行可视化设计。
第1步:安装
首先,我们将使用 ZPM 软件包管理器从 Open Exchange 下载 bg-openai 包:
zpm "install bg-openai"
ObjectScriptObjectScript
您可以在此处查看此软件包https://openexchange.intersystems.com/package/bg-openai-1并在此处查看其源代码https://github.com/banksiaglobal/bg-openai
这个包基于 @Francisco Lopez 的伟大工作,可在此处https://github.com/KurroLopez/iris-openai进行,有四个小更改:我们更改了类名,以使其更符合标准 IRIS 命名规则;我们添加了新的 SimplePrompt 请求,允许用户非常轻松地发送简单的 AI 文本提示;我们将 Api Key 更改为凭证而不是设置;我们将顶级包名称更改为“Banksia”,以符合公司标准。
第 2 步:设置 OpenAI 运行
为了进一步工作和配置产品,如果您在我们的原始应用程序中使用 Docker 映像,请转到位于以下链接的管理门户:
http://localhost:42773/csp/sys/UtilHome.csp
导航到互操作性->[命名空间]->配置->生产并确保我们的原始生产正在运行。
添加一个基于类Banksia.OpenAi.Operation 的新操作,并将其命名为OpenAiOut。使其启用。此操作将与 OpenAI API 服务器进行通信。
- 操作类:Banksia.OpenAi.Operation
- 操作名称:OpenAiOut
现在,让我们进行在生产中使用新操作所需的最基本设置:添加 API 密钥和 SSL 配置。
导航至OpenAiOut->设置->基本设置->凭据,然后单击放大镜图标以配置凭证。
填写表单数据并在密码字段中添加 apiKey 。单击“保存”保存数据。您可以根据需要填写ID和用户名字段。
在“凭证”字段中,选择我们之前保存的凭证的ID 。
设置 SSL 配置:创建新的客户端 SSL 配置OpenAiSSL并在下拉列表中选择它。
步骤 3 - 使用业务流程设计器为业务流程添加摘要生成
导航到互操作性 > 业务流程设计器并打开AppExchange.Process
商业 单击“打开”进行处理。
根据我们上面描述的算法构建该过程的流程图。
下图显示了一个示例实现。
检查是否提供了存储库 URL,如果没有输入描述,我们需要查询 ChatGPT 以创建描述。
(request.Summary= "" ) & (request.GitHubUrl '= "" )
ObjectScriptObjectScript
然后,添加 <Сall> 块并创建一个目标OpenAiOut ,该目标将根据请求的类型调用 OpenAi api。
- 名称:生成摘要
自定义请求的类型和收到的响应,以及分配操作变量。
- 请求消息类:Banksia.OpenAi.Msg.SimplePrompt.Request
set callrequest.Prompt =“访问下一步将为您提供的网站。在一个段落中描述该项目的主要思想、目标和主要功能。”
设置 callrequest.UserInput = request.GitHubUrl
设置callrequest.Model =“gpt-4”
- 响应消息类:Banksia.OpenAi.Msg.SimplePrompt.Response
设置 context.summary = callresponse.Content
添加一个 <sync> 步骤来等待响应,在 Calls 字段中添加上一个 <call> 的名称
- 调用:生成摘要
第 4 步 - 将徽标生成添加到业务流程中
获得存储库描述后,让我们继续下一个逻辑部分 - 徽标生成。让我们检查是否有生成图像的描述,并检查是否没有提供图像 URL。让我们设置以下条件:
(request.LogoUrl= "" ) & (request.Summary'= "" )
ObjectScriptObjectScript
配置下一个 <call> 元素,同时将OpenAiOut操作作为目标。
- 名称:生成徽标
自定义请求的类型和收到的响应。
- 请求消息类:Banksia.OpenAi.Msg.Images.Request
设置 callrequest.ResponseFormat = "url"
设置 callrequest.Operation = "世代"
set callrequest.Prompt = "为以下移动应用程序创建一个简单的应用程序图标:"_request.Summary
设置 callrequest.Size = "256x256"
- 响应消息类:Banksia.OpenAi.Msg.Images.Response
设置 request.LogoURL = callresponse.Data.GetAt(1).Url
完成我们业务流程的修改后,点击编译按钮。
您可以从以下 GitHub 项目分支下载完成的 OpenAI 集成示例: https://github.com/banksiaglobal/bg-openai/tree/test-app
第 5 步:在生产中测试我们的新业务流程
转到互操作性->配置->生产部分
首先,我们需要重新启动流程以应用所有最新更改,导航到AppProcess->Actions->Restart 。
要测试该流程,请转至AppProcess->Actions->Test。
使用 OpenAI API 的 GitHub URL 创建测试消息并通过生产发送:
验证应用程序是否正确接收并处理来自 OpenAI API 的响应。转到Visual Trace查看完整的应用程序周期,并确保在每个流程元素中传输正确的数据。
这是人工智能对我们应用程序徽标的看法:
结论
通过执行以下步骤,您可以使用 InterSystems IRIS 中的业务流程将 OpenAI API 集成到互操作性生产中。 bg-openai 模块对于希望将人工智能融入应用程序的开发人员来说是一个很好的资源。通过简化集成过程,它为利用人工智能的力量增强应用程序开辟了新的可能性。
关于作者
Mariia Nesterenko是 Banksia Global 的认证 IRIS 开发人员,专门从事应用程序开发、数据结构、互操作性和地理空间数据。
关于班克西亚全球
Banksia Global是一家国际精品咨询公司,总部位于澳大利亚悉尼,专门为 InterSystems 技术提供专业服务。我们拥有一支由敬业且经验丰富的专业人士组成的团队,我们很自豪能够成为 InterSystems 的官方首要合作伙伴,并获得授权在全球范围内提供服务。我们对卓越和创新的热情促使我们提供高质量的解决方案,满足客户的独特需求。