ChatGPT — 用例
ChatGPT API,由OpenAI提供支持,为开发人员提供了先进的自然语言处理和生成功能的访问权限。它能够将ChatGPT的对话型人工智能集成到各种应用程序、网站和数字产品中,同时保持HTML的结构不变。
在本文中,我们可以在几种使用情况下集成ChatGPT。
配置:
前往https://platform.openai.com/api-keys创建一个用于集成的API密钥。这与https://chat.openai.com/不同,我们将在Mendix中构建类似的东西。
在某些 API 中,我们需要使用组织 ID,您可以通过 https://platform.openai.com/account/organization 找到它。
在Mendix中,创建一个用于存储令牌(token)的实体。为了使文章易于理解,我将不验证令牌是否存在。我们也不会在每次使用时进行加密和解密。
右键点击配置实体,然后选择“生成概览页面”。它会快速生成概览和新建编辑表单。
将此概述表单放置在导航中。
然后你将会拥有一个像这样的页面。
案例1:用户消息提示与聊天会话历史。
在 Mendix 中创建这些实体来处理聊天会话。
在主页中,我们可以设计访问多个页面,这些页面可以为ChatGPT提供不同的场景。
对于聊天和响应,我们可以通过REST API集成Mendix应用程序。
ChatGPT获取答案的终端URL是:
https://api.openai.com/v1/chat/completions
标题的认证已包含在其中:
主体JSON可以在JSON映射中设置。
{ "model": "gpt-3.5-turbo", "messages": [{ "role": "assistant", "content": "让 x 等于 2 ,让 y 等于 3。计算 x + y x 和 y 的和是多少。计算 x * y。将 y 除以 x。" }], "temperature": 0.7 }
导出映射 json:
并且返回将是这种JSON格式:
{ "id": "chatcmpl-8rFnMiZVBYTMJXlYZrg2sPIXEyU3z", "object": "chat.completion", "created": 1707702792, "model": "gpt-3.5-turbo-0613", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "x和y的和是5。\n\n要计算x * y,我们将2和3相乘,得到6。\n\n要将y除以x,我们将3除以2,得到1.5。" }, "logprobs": null, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 42, "completion_tokens": 52, "total_tokens": 94 }, "system_fingerprint": null}
导入映射json:
在ChatSession_Overview中,按照以下所示的设计页面:
1- 可以创建一个新的聊天会话。
2- 聊天会话列表。点击删除图标可以删除每个项目。
3- 用户与ChatGPT之间的历史记录。
4- 用户创建的提示消息。发送按钮将触发一个微流程,调用Post方法发送到ChatGPT。
我们将在发送操作上进行更多讨论。保留历史记录的概念是将整个问题和答案发送给ChatGPT以及一条新消息。这样做可以让ChatGPT继续从之前的问题和答案中学习,否则信息将无法相关联。
1- 检索配置。
2- 检查消息内容不为空。
3-创建一个新的字符串变量,以收集本次会话中的所有问题和答案。
4-检索属于此聊天会话的历史记录。
5- 检查历史记录列表是否为空。
6-循环遍历列表,将问题和答案添加在一起。
7- 定义一个端点URL。
8- 通过POST方法创建导出映射数据与JSON主体匹配。
最重要的就是在页面内容上:整个历史记录+新消息内容。
9- 发起POST方法
终端点URL:'https://api.openai.com/v1/chat/completions'
帖子标题
提交请求
帖子回应
10- 提取结果。
11- 创建角色值字符串。
12- 创建 ChatGPT 值字符串。
13- 循环获取回复角色和内容(ChatGPT回答)。
14- 将向聊天记录中添加新的消息内容。这个新的聊天记录不会有一个角色。
15- POST方法的响应消息将添加到聊天记录中,并以“助手”的身份显示。
16-最后一步是清除消息内容。
演示1:数学专家
Demo 2: 生成产品描述
示例3:简化文本
https://youtu.be/tGEAF1WxDI8 的中文字幕如下: "大家好,欢迎来到这个教程。今天我将向您展示如何翻译英文文本为简体中文。让我们开始吧!"
案例2:生成图像。
这个服务的终点 URL 是 https://api.openai.com/v1/images/generations。
在Mendix应用程序中创建两个实体。一个用于输入字符串,另一个用于生成图片。
设计一个类似下面图像的页面。
1- InputContent将是一个字符串,您希望dall-e-3为您生成一张图片。
2- 生成图像按钮将将输入的字符串作为提示用于POST生成服务。
3-删除全部按钮只是清理所有生成的图像。
4- 一个生成图像的列表。
在POST方法上的Json请求体。
导出映射。
成功执行POST方法后的JSON响应。
导入映射结果。
现在我们继续构建生成图像的微流程。
1- 检索配置。
2- 检查输入字符串不是空的。
3- 创建一个端点URL。
4- 创建输入映射对象。
5- 调用POST方法。
帖子标题
发出请求
发帖回复
6- 提取响应对象的第一层。
7- 从步骤6中提取数据列表。
8- 创建图像URL字符串。
9- 循环获取URL字符串并将值更新到步骤8的变量中。
10- 创建对象图像生成
11- 使用社区Java动作将图像URL转换为Mendix对象图像。
12- 清空输入字符串。
13- 刷新生成图像对象。
14- 显示成功消息。
演示:图像生成。
资源:
请访问以下链接以查看英文文本的简体中文译文: https://github.com/tonytbn/TBN-ChatGPT