文章目录
大家也可以浏览我其他的博客:
注意⚠️:因为微信公众号接口有回复时间限制🚫,所以作者试了一下使用 openai 的接口,发现如果问一些复杂的问题肯定会超过限制,然后就会在微信窗口提示:
该公众号提供的服务出现故障,请稍后再试
所以作者找了一下国内的 AI 接口,详细可以看这里,当然肯定还要很多,然后找了一个免费的接口:青云客智能聊天机器人,大家可以尝试其他的。
想要部署到微信公众号非常简单,只要以下四步,所以大家要看到最后啊:
config.js 文件如果是新的服务器,那么需要安装 node,npm,pm2,具体命令如下:
curl -sL https://deb.nodesource.com/setup_19.x | sudo -E bash -
sudo apt-get install -y nodejs
# 安装后
node -v
npm -v
npm i pm2 -g
如果你之前克隆过作者那个微信机器人的项目,那么可以按照如下操作克隆这个项目,作者已经将项目同步至 Gitee 了,这样服务器就能快速下载:
# []内的地址换成你之前克隆微信机器人的根目录,比如作者把那个ChatGPT项目放在了/usr/karl下
mkdir [/usr/karl]/Wechat-Official-Account
cd [/usr/karl]/Wechat-Official-Account
git clone -b wechat https://gitee.com/karl_fang/ChatGPT.git
cp -r ./ChatGPT/. ./
rm -rf ChatGPT/
npm i
克隆完成后,/usr/karl 下就有 ChatGPT 和 **Wechat-Official-Account ** 两个项目,一个是微信机器人的,一个是微信公众号的。
创建好后这是作者的目录结构
.
├── usr
├── karl
├── ChatGPT
└── Wechat-Official-Account
如果你没使用过微信机器人项目的话,克隆该项目是不会有冲突的,所以只要进入你想克隆的目录下运行如下命令即可:
git clone -b wechat https://gitee.com/karl_fang/ChatGPT.git
config.js 配置文件如下:
module.exports = {
TOKEN: "", // token,自己填的
APPID: "", // 注册好公众号后会给你
SECRET: "", // 注册好公众号后会给你
PORT: 80, // 端口号,http -> 80, https -> 443
}
首先是 TOKEN,需要选择 接本配置->服务器配置->提交 ,如果你的接口服务验证通过会自动保存,否则会提示配置失败,配置成功后将令牌填入即可,过程如下:
图中可以看到要填服务器地址,加解密的密钥点击随机生成就行了,因为这使用的明文模式,所以密钥就没啥用了,加密模式我还没研究,感觉也没啥用,你问机器人总不能把你信息给泄漏出来吧🤔️?
如果你不需要使用微信提供的服务接口,那么就不需要填写 APPID 和 SECRET,大家可以自己在作者代码的基础上进行更改,添加自己的功能,同时作者提供了获取 access token 的类,方便以后想使用微信服务时可快速获取 access token ,直接调用 fetchAccessToken 方法即可。
最后,如果你的地址是 http 协议,那么填写 80,否则就 443,微信公众号的接口只能选这两个端口号,其他的都不行。
在本项目的根目录运行如下命令:pm2 start index.js,然后就好啦🎉,是不是很简单?下面是接入后的效果:
对了,如果想更改关注自己公众号时的内容,可以在 wechat/auth.js 中的第 45 行进行更改,也就是如下示例:
if (message.Event === 'subscribe') {
options.msg = `关注时显示你自己的文字`; // 第 45 行
}
这里放上我自己公众号,大家喜欢的可以关注一下哈😄,也可以搜索同名小程序,但是是专门给作者女朋友私人订制的,可能大部分功能对大家没什么用,但是感兴趣也可以看看:
如果你想更换自己的机器人接口,可以在 wechat/request.js 中进行更改,原内容如下:
const request = require('request');
// 机器人接口的API,此处使用的青云客机器人,也可以使用其他的API
const URL = "换成你自己想要的接口 URL 地址";
module.exports = payload => {
// payload 是一个对象,按照接口的需求自己加参数吧
return new Promise((resolve, reject) => {
request.get(`${URL}${encodeURI(payload.msg)}`, function (error, response, body) {
if (error) reject('request failed: ' + error);
// 处理收到的 body 内容,比如处理换行,字符串转对象等等,只要将处理结果返回即可
const result = ...;
resolve(result);
});
})
}
其余的就不需要更改了,这样增加了可维护性😊。
如果喜欢的话可以收藏这个专栏,或者可以点赞➕收藏➕关注🎉
目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里编辑 3.解析依赖到项目中
这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
我正在开发一个Rails应用程序,我需要在其中找到给定特定偏移量或时区的夏令时开始和结束日期。我基本上在我的数据库中保存了从用户浏览器接收到的时区偏移量(“+3”,“-5”),我想在它出现时修改它由于夏令时的变化。我知道Time实例变量有dst?和isdst方法,如果存储在它们中的日期在夏令时与否。>Time.new.isdst=>true但是使用它来查找夏令时的开始和结束日期会占用太多资源,而且我还必须为我拥有的每个时区偏移量执行此操作。我想知道更好的方法。 最佳答案 好的,基于你所说的和@dhouty'sanswer:您希望能够
我有一台生产机器和一台开发机器,都运行ubuntu8.10并且都运行最新的phusionpassenger。当我在osx上的本地开发机器上使用ruby1.9.1时,我想知道外面的人是否已经在使用带有ruby1.9.1甚至1.9.2的phusionpassenger?如果是这样,请告诉我们您的设置!此外,有没有办法在apache上使用phusionpassenger同时运行ruby1.8.7(ree)和1.9.1?感谢您的指点,我在任何地方都找不到任何提示... 最佳答案 是的,从某些2.2.x版本开始就正式支持它,我不记
date_select方法只能设置:start_year,但我想设置开始日期(例如3个月前的日期)(但没有这样的选项)。那么,我可以将开始日期设置为date_select方法吗?或者,要制作这样的选择框,我应该使用select_tag和options_for_select吗?或者,有什么解决办法吗?谢谢, 最佳答案 有可能……例如:start_year–设置年份选择的开始年份。默认为Time.now.year-5参见thisresource. 关于ruby-Rails3-我可以将开始日期
我想从特定索引开始遍历数组。我该怎么做?myj.eachdo|temp|...end 最佳答案 执行以下操作:your_array[your_index..-1].eachdo|temp|###end 关于ruby-从特定索引开始迭代数组,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/44151758/