在Matlab上用API调用chatgpt模型

文章介绍了如何在MATLAB中使用API调用ChatGPT模型进行自然语言处理,并展示了创建MATLABAPP设计桌面应用的过程。此外,还讨论了遗传算法优化BP神经网络在预测城市公交系统车站客流量中的应用。
摘要由CSDN通过智能技术生成

在这个快节奏的数字时代

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

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

那么你一定听说过GPT模型

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

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

将其应用各行对应的领域

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

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

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

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

%连接互联网
import matlab.net.*
import matlab.net.http.*
%提问文本输入
umesges  =input('我:','s');
mesges   = [struct('role',"system",'content',"You are a helpful assistant.");
struct('role',"user",'content',umesges)];
apiurl   = "https://api.openai.com/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神经网络预测城市公交系统车站客流量 

509862367fc24061a4846554ee8dfda1.png

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

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

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

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

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

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

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

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

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

                                                                  

效果很好

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

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

f652ac960cd8418c98b81f1c22f83684.png

 打开Matlab的APP设计

13729f32a15e46f688c19083cded9cf0.png

 打开后选择空白App

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

aab6bcc904b24c01be96feaa4ea7fe96.png

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

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

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

f0ce0e9a1cd849b3bf3782d80f0b3e1a.png

 添加Buttonpushed回调

会进入到代码视图

a07a4a0bdf374f94ba16c2c27a697cd0.png

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

function ButtonPushed(app, event)
import matlab.net.*
import matlab.net.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.com/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

3c61872dd68040e2a3aab5522545372e.png

将文本的输入和输出

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

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

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

cb58558ce6f54837a61e703f9bf49765.png

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

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

7fa04042e4ba48bd90f23ab72d67b7c6.png

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

唯一的好处就是

不用和其他人抢

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

也不需要登录

打开后直接提问题

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

Matlab目前的app designer

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

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

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

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴糖气泡Meanler

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值