admin管理员组

文章数量:1530057

在这个快节奏的数字时代

深度学习技术正逐渐成为大家的热门话题

如果你也是一名程序员或者科研工作者

那么你一定听说过GPT模型

是一种非常流行的自然语言处理模型

各大平台都已经接入了ChatGpt模型

将其应用各行对应的领域

下面介绍如何在Matlab中使用API调用chtgpt模型

以及用MATLAB的APP程序设计桌面应用

(由于目前Open AI公布生成的API需要访问其模型服务器,所以在整个调用模型过程中需要连接上ta才会有回应)

直接放.m文件的源码(感兴趣的自行试验)

%连接互联网
import matlab.*
import matlab.http.*
%提问文本输入
umesges  =input('我:','s');
mesges   = [struct('role',"system",'content',"You are a helpful assistant.");
struct('role',"user",'content',umesges)];
apiurl   = "https://api.openai/v1/chat/completions"; %API填写进入的网址
apikey   = "***"; %引号中放API码,需要注册open ai账号获取
% 定义请求消息
querymsg = struct('model',"gpt-3.5-turbo",...
    'messages',mesges, ...
    'max_tokens',1000,...
    'temperature',0.75);
% 请求头
headers  = HeaderField('Content-Type', 'application/json',...
    'Authorization', "Bearer " + apikey);
% 请求消息
request  = RequestMessage('post',headers,querymsg);
response = send(request, URI(apiurl));
% 消息获取处理并显示
if response.StatusCode == "OK" %判断是否获取回答成功
    responseText = response.Body.Data.choices(1).message; %从响应体中获取第一个选择项的消息内容,并将其赋值给变量 responseText
    responseText = string(responseText.content); %将 responseText 转换为字符串类型
    responseText = strtrim(responseText); %移除wrapped_s开头和结尾的空格和换行符
    str=['chatgpt: ',num2str(responseText)];
    disp(str) %在命令窗口显示回答
else
    responseText = "Error "; %将字符串 "Error " 赋值给变量 responseText
    responseText = responseText + response.StatusCode + newline; %将响应状态码和一个换行符添加到 responseText 的结尾
    responseText = responseText + response.StatusLine.ReasonPhrase; %将响应状态行的原因短语添加到 responseText 的结尾
    disp(str) %在命令窗口显示回答
end

以下是测试结果

↓↓↓↓↓↓

问:基于遗传算法优化bp神经网络预测城市公交系统车站客流量 

答:为了优化城市公交系统的车站客流量预测,可以采用遗传算法和BP神经网络相结合的方法。具体步骤如下:

1. 数据采集和处理:收集城市公交系统车站客流量的历史数据,对数据进行预处理,包括数据清洗、缺失值填充、异常值处理等。

2. 特征提取:从收集到的历史数据中提取相关的特征,包括时间特征、天气特征、节假日等特征。

3. 数据划分:将数据划分为训练集和测试集,通常采用70%的数据作为训练集,30%的数据作为测试集。

4. 遗传算法优化:通过遗传算法对BP神经网络进行优化,包括优化网络结构、学习率、动量因子等参数,以提高神经网络的预测性能。

5. BP神经网络训练:使用划分的训练集对BP神经网络进行训练,调整网络权重和偏置,使得网络对车站客流量的预测误差最小化。

6. 模型评估:使用划分的测试集对训练好的模型进行评估,计算预测误差、准确率、召回率等指标,评估模型的预测性能。

7. 模型应用:将训练好的模型应用于实际的城市公交系统中,对车站客流量进行实时预测,并根据预测结果调整公交车的发车时间和行驶路线,优化公交系统的运行效率。

以上是基于遗传算法优化的BP神经网络预测城市公交系统车站客流量的一般流程,具体实现还需要根据实际情况进行调整和优化。

                                                                  

效果很好

和open ai官方网页版的基本相同

接下来,说下Matlab的APP Design设计ChatGPT的桌面应用版

 打开Matlab的APP设计

 打开后选择空白App

(小白可以学习官方学习文档)

 拖动左边模块到右边白布上

(点击后可以任意调整大小,右侧可修改其中的文字、背景颜色及大小等)

然后,赋予push按钮执行的命令

 添加Buttonpushed回调

会进入到代码视图

 在Buttonpushed回调函数中写入要执行的命令代码

function ButtonPushed(app, event)
import matlab.*
import matlab.http.*
str1=['我:',app.EditField.Value];
umesges  =str1;
app.TextArea.Value=[app.TextArea.Value;umesges];
mesges   = [struct('role',"system", ...
    'content',"You are a helpful assistant."); struct('role',"user",'content',umesges)];
apiurl   = "https://api.openai/v1/chat/completions";
apikey   = "***"; %引号中输入你的API
% 定义请求消息
querymsg = struct('model',"gpt-3.5-turbo",...
    'messages',mesges, ...
    'max_tokens',1000,...
    'temperature',0.75);
% 请求头
headers  = HeaderField('Content-Type', 'application/json',...
    'Authorization', "Bearer " + apikey);
% 请求消息
request  = RequestMessage('post',headers,querymsg);
response = send(request, URI(apiurl));
% 消息获取处理并显示
if response.StatusCode == "OK"
    responseText = response.Body.Data.choices(1).message; %从响应体中获取第一个选择项的消息内容,并将其赋值给变量 responseText
    responseText = string(responseText.content); %将 responseText 转换为字符串类型
    responseText = strtrim(responseText); %移除wrapped_s开头和结尾的空格和换行符
    str=['chatgpt: ',num2str(responseText)];
    % 获取UITextArea组件的句柄
    textAreaHandle = app.TextArea;
    % 获取当前已经显示的文本
    currentText = textAreaHandle.Value;
    % 追加新文本
    newText = str;
    tit=[currentText;newText];
    updatedText = tit;
    % 将新文本设置为UITextArea组件的值
    textAreaHandle.Value = updatedText;
else
    responseText = "Error "; %将字符串 "Error " 赋值给变量 responseText
    responseText = responseText + response.StatusCode + newline; %将响应状态码和一个换行符添加到 responseText 的结尾
    responseText = responseText + response.StatusLine.ReasonPhrase; %将响应状态行的原因短语添加到 responseText 的结尾
    app.TextArea.Value=responseText;
end
end

将文本的输入和输出

分别赋予到提问文本框和显示回答的文本框中

完成好后可以点击运行测试下

测试没问题后对设计好的APP进行封包处理

 选择自己想要的封包结果形式

有MATLAB内部APP版、网页版、桌面应用程序版

 该图为封包为桌面应用程序版的效果

唯一的好处就是

不用和其他人抢

用API调用的ChatGPT模型不会卡顿

也不需要登录

打开后直接提问题

当然熟练程序设计的还可以进行更多的优化

Matlab目前的app designer

可能在做的就是将算法仿真代码程序工具化

功能没有专业的程序设计软件齐全

但对于非计算机专业的工科人来说足矣

本文标签: 模型matlabAPIchatGPT