品牌 资讯 搭配 材料 时尚 热点 行业 首饰 玉石 行情

热点在线丨3小时!开发ChatGPT微信小程序

2022-12-20 14:17:11 来源:

导读 |上周OpenAI发布了对话语言模型 ChatGPT,相关讨论引爆全网。你是否也迫不及待体验一番?本文特邀作者腾讯云开发者社区作者戴传友从开发环境准备、开发过程、服务器接口、腾讯API网关接入到部署,详细教你如何动手开发一个chatGPT微信小程序。

在《ChatGPT-地表最强AI模型!要消灭人类?》、《算法工程师深度解构ChatGPT技术》两篇文章中,我们分别囊举了ChatGPT的丰富玩法并解析其工作原理。如果你对相关内容感兴趣,欢迎回溯围观~公众号的粉丝朋友们在评论区畅想了更多ChatGP应用实践,也有粉丝表示想要亲自体验下其奇妙之处。此次,我们邀请腾讯云开发者社区开发者由浅入深带你动手开发一个ChatGPT微信小程序,其中会详细介绍开发环境准备、项目实现、服务接口搭建、腾讯API网关接入、部署等环节。
准备工作1)小程序申请在微信中搜索 "ChatGPT"相关的小程序,检查有哪些名字未被占用。选好名字并记录准备144px*144px尺寸的logo,并在微信公众平台官网首页申请微信小程序。一般来说,大概3个小时左右就可以通过审核。2)openai 账号申请OpenAI( https://openai.com/)目前不在中国区域开展业务,国内不能正常的体验到openai提供的服务。账号的申请和注册具体教程,各位阅读者可以自行搜索。申请到账号之后,为了在代码中实对OpenAI 提供的 api ,我们还需要申请一个apiKey。这是通过代码访问ChatGPT的关键所在。账号申请成功后,访问https://beta.openai.com/account/api-keys页面生成apiKey。其中尤其注意保存好key(不能再次查看,如果丢失只能重新生成)。
至此,基本准备工作已全部完成,接下来将为各位开发者讲述核心代码的开发流程。开发环境1)新建小程序首先,根据自己的实际情况下载对应版本的微信开发者工具。下载地址如下:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html其次,我个人建议新建小程序时选择最简单的基础模版,并勾选使用微信云开发环境。去除繁杂的配置以便你能更快速的对微信小程序的代码结构有初步了解。我成文时,因为申请的小程序还没有审核通过,所以选择下述测试号用来进行开发。2)环境介绍导出初始化项目之后,你会看到比较清晰的文件结构。小程序开发跟普通的html、css、js 三剑客用来开发网页没有本质的区别。在微信体系内,wxml、wxss、js 都是 html、css、js的子集。页面的结构在wxml 中写,用到的样式在 wxss中定义;变量和函数以及网络请求 等在 js 中执行。简单说来,小程序包含一个描述整体程序的 app 和多个描述各自页面的 page。这里的 app 是指放在根目录的 app.js、app.json、app.wxss 这三个文件,他们主要负责全局性的逻辑、配置及样式。pages 则是你即将编写的多个页面。多个 pages 之间可以通过官方提供的导航功能进行跳转。每个 page 页面由 page.js、page.json、page.wxml、page.wxss 四个文件组成。其中 WXML 页面类似 HTML 文件,主要负责页面的结构。相比于HTML而言,WXML 更加简单。开发过程中,布局基本上是在使用view和text签,以及其它官方文档上说明的其他标签。但是各位在开发过程中,需要尤其关注官方文档中有关组件的内容。
开发过程1)如何引入 weui 组件
有两种组件接入方式可供选择:通过 useExtendedLib 扩展库 的方式引入。这种方式引入的组件将不会计入代码包大小。通过npm (opens new window)方式下载构建。npm包名为weui-miniprogram。如果你在开发过程中不想花大量时间研究npm且期望快速实现看到效果,又或者受困于小程序商店上架会限制到代码包大小(但是useExtendedLib 扩展库不计入代码包大小),个人建议选择了第一种方式。weui 官方参考文档如下:https://wechat-miniprogram.github.io/weui/docs/quickstart.html2)定义tabbar如果你觉得一个页面展示的信息过于单调,可以在小程序中使用tabbar。按照微信官方提供的自定义tabbar指引,你可以轻松把代码复制到项目工程中。本文把核心步骤代码公示出,更多细节有兴趣可以访问微信官方指引页,地址如下:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html
主要步骤:在app.json 中新增 tabbar 配置信息

{    "pages": [        "pages/chat/index",        "pages/index/index",        "pages/logs/logs"    ],    "window": {        "backgroundTextStyle": "light",        "navigationBarBackgroundColor": "#fff",        "navigationBarTitleText": "ChatGPT",        "navigationBarTextStyle": "black"    },    "style": "v2",    "sitemapLocation": "sitemap.json",    "useExtendedLib": {        "weui": true    },    "tabBar": {        "color": "#1485EE",        "selectedColor": "#FF514E",        "list": [            {                "pagePath": "pages/chat/index",                "text": "ChatGPT概览"            },            {                "pagePath": "pages/index/index",                "text": "我的创作"            }        ]    }}

值得注意的是,tabBar-list-pagePath的路径需要存在,否则编译器会报错。此处我把项目的工程目录截图公开,各位对比上下文配置信息更容易理解。3) 编写主界面规划的界面中只需要一个输入框及一个询问按钮。当用户点击询问按钮的时候,获取输入框中的值,去请求服务器的/ask接口获取结果。获取数据之后,再展示到页面中的结果展示中。确定了这个基本流程,接下来只要知道这些基本组件在微信小程序里面使用什么标签就好了。更多的细节可以访问 微信小程序的开发文档。

请输入你想要解决的问题:
0/50
回复: {{result}}
{{message}}


【资料图】

4)绑定点击事件在form表单上绑定事件:

然后在对应的js文件里面定义submitForm方法。
5)请求服务器接口

submitForm: function (e) {    //一般前置检查代码    ...        const that = this    wx.request({        url: "http://youdomain.com/api/xxxx",        method: "post",        header: {"content-type": "application/x-www-form-urlencoded"},        data: data,        success(rsp) {            console.log("ask result-----",rsp.data)            that.setData({                result: rsp.data.data.rsp,                disabled: false,                loading: false,            })        },        complete(d) {            console.log(d)        }    })    console.info("form.submited")        ....其他相关代码},

值得注意的是,上面用到的url需要在小程序中进行域名白名单注册,否则无法被访问到。同时进行注册的域名,需要进行备案。配置地址:登录微信小程序管理后台,在开发管理-服务器域名中进行配置。如下图。
到此,小程序部分配置完成。开发者可以用手机进行预览,或者真机调试。如果此时没有配置域名,也可以通过忽略掉域名强制检查。当然,如果是正式上线审核的话,必须有一个经过备案的域名,且该域名在小程序后台中完成了配置。
服务器接口
上述内容搭建完成后,下一步是配置服务器。本着快速开发的原则,可以借用“现成的轮子”,保障效率第一。各位可以参考现有的api-server脚手架(https://github.com/wytxer/template-node-egg)。之后配置接口名字以及对应的handle。我定义了一个名字叫做 /ask 的接口名字,同时定义了处理ask接口的 handle函数如下。

async ask() {  const { request, helper, axios, logger } = this.ctx  const { message } = request.body  logger.info("requset body===", request.body)  logger.info("message===",message)  ...其余相关代码  这里的token就是前面提到的在openai上申请到的token   const config = {    headers: { Authorization: `Bearer ${token}` }  }  const req = {    model: "text-curie-001",    prompt: message,    max_tokens: 2000,    temperature: 0.5  }  console.log("req===",req)  let text = ""  const result = await axios.post("https://api.openai.com/v1/completions", req, {    timeout: 300000,    headers: { Authorization: "Bearer ${token}" }  })    .then(rsp => {      console.log("pdf file result", rsp)      if (rsp.choices) {        text = rsp.choices[0].text      }    })    .catch(err => {      console.log("pdf file error", err)    })  const data = {    rsp: text  }  helper.success(data, "success")}

这里的token就是前面提到的在openai上申请到的token ,注意不要泄漏。腾讯api网关接入及部署1)网关接入考虑到并发能力,频率限制,自动扩容等能力的接入,我选择了腾讯云api网关。如何把api通过腾讯云暴露到外网呢?首先,访问https://console.cloud.tencent.com/apigateway/service?rid=1。其次,新建一个service,并且选择https协议【微信要求https协议】。最后,新建接口ask并且映射到我们自己的服务器。
更多腾讯云api 介绍:https://cloud.tencent.com/developer/article/1877519
2)部署过程在微信开发者工具里面进行代码上传,然后在微信小程序后台里面就能看到上传的版本。建议各位开发者提交审核之前用真机扫描体验一下,有bug及时修复。
确认无误后就可以提交审核了,系统提示1-7个工作日内完成。审核完成后,手动进行 “全量” 或者 “灰度” 发布,你的Chatgpt小程序就能在微信内被搜索到。腾讯工程师技术干货直达:

1、算法工程师深度解构ChatGPT技术

2、耗时减半?腾讯云OCR只做了3件事

3、探秘微信业务优化:DDD从入门到实践

4、10分钟!从架构视角读懂K8s

粉丝福利,后台回复“ChatGPT”获得本篇作者推荐相关学习材料

标签:

相关文章

世界热点评!尖锐性湿疹疣女性怎么得的?4大因素引发尖锐湿疣

​尖锐湿疣是人类乳头瘤病毒感染引起的常见传播疾病之一。HPV一般主要侵染上皮细胞,一般表现为生殖器官上的红色丘疹,数量逐渐增加。尖锐湿疣以

2022-12-28 15:55:37

今日热文:友好集团:公司主业为商业零售业 无预制菜制作业务

​每经AI快讯,有投资者在投资者互动平台提问:请问公司在预制菜制作或销售方面有什么业务,产品或应用?友好集团(600778 SH)12月28日在投资者互

2022-12-28 12:04:07

焦点信息:仍在调整中的中国葡萄酒市场,2023或将迎来“逆转”

​尽管面临能源危机和成本通胀加剧等问题,意大利葡萄酒出口在今年前8个月蓬勃发展。不过,面对广阔的亚洲市场,意大利葡萄酒却遭遇了挫折,对中

2022-12-28 09:07:19

全球关注:长安汽车发布全新用户品牌

​长安汽车日前在其举办第七届长安汽车粉丝盛典上发布了全新用户品牌,致力于为用户带来“新服务、新体验、新关系”三大核心价值,并重新定义...

2022-12-27 21:16:19

热点!四类个人养老金产品在渝落地 覆盖城乡居民

​12月27日,重庆银保监局发布消息,目前,商业养老保险、公募基金、理财产品、储蓄存款四大类个人养老金投资产品正有序在渝落地。11月25日,个

2022-12-27 16:52:58

焦点信息:自制热红酒需要哪些原料和步骤?

​红酒可真是个好东西,红酒不仅好喝,还对身体有着独特的调理功效,葡萄酒有预防心脏疾病、预防心脏疾病、改善睡眠、缓解便秘、延缓衰老共五大

2022-12-27 13:20:37

世界即时:冀东油田4项成果获国家发明专利授权

​中国石油网消息(记者杨军通讯员净新苗)12月22日,由冀东油田勘探开发研究院自主研发的《品质因子的确定方法及装置》等4项成果获国家发明专利

2022-12-27 07:56:01

焦点精选!资中县组建366支家庭医生健康服务团队

​四川经济网内江讯(记者毛春燕李弘)12月26日,记者从资中县获悉,为充分发挥家庭医生对群众健康“守门人”作用,实现家庭医生签约全覆盖,...

2022-12-26 18:49:31

天天快资讯:ACCA考试成绩什么时候出?考试多少分算通过?

​ACCA考试的随时机考(F1-F4)成绩是当场出,分季机考成绩在考试结束后6周后出,ACCA官方会在官网公布考试成绩,主观题部分由考官判分。具体考

2022-12-26 14:10:46

天天精选!恩威医药:12月23日获融资买入251.05万元,占当日流入资金比例4.62%

​同花顺数据中心显示,恩威医药12月23日获融资买入251 05万元,占当日买入金额的4 62%,当前融资余额3908 76万元,占流通市值的5 09%,超过历史

2022-12-26 08:37:14

资讯:冲煞生肖查询 2023年9月20日属什么冲什么生肖

​我们在万年历当中看到的冲煞,是指两个概念,一个是冲属相,煞是指的是方位,比如说冲猪煞东指的是属猪的人在当天犯冲,煞东就是指他的方位,

2022-12-25 16:14:26

快讯:玻尿酸隆鼻可以永久打吗

​关于玻尿酸隆鼻可以永久打吗的内容,包含玻尿酸隆鼻是永久的吗?玻尿酸隆鼻几次后可以永久?玻尿酸隆鼻是不是永久的呢打玻尿酸隆鼻是永久的吗?

2022-12-24 03:19:44

世界最资讯丨恒基达鑫: 第五届董事会第二十次会议决议公告

​证券代码:002492     证券简称:恒基达鑫     公告编号:2022-037      珠海恒基达鑫国际化工仓储股份有限公司  本公司及

2022-12-23 16:55:37

天天快资讯:【手慢无】歌词里的艺术家,HiFi音质悬浮歌词高颜值蓝牙音箱跌至3299元

​文|黄晶总编|唐迪MORRORART悬浮歌词透明HiFi音质蓝牙音箱正在京东热销,入选2000-10000元高端音响热卖榜第14名。可作为创意纪念礼物,拥有HiFi

2022-12-23 10:58:58

每日头条!支持开票 | Python实证指标构建与文本分析

​LovelyPlots库|格式化科学论文、论文和演示文稿的可视化图形付费课程|支持开票|购前咨询微信372335839概览为何要学Python?在科学研

2022-12-23 04:13:39

当前滚动:美国枪手在地铁扔烟雾弹开枪扫射

​据美国全国广播公司22日报导,一名被控在纽约布鲁克林地铁上发射烟雾弹,并开数十枪扫射人群的嫌犯,将承认犯有恐怖主义罪行的指控。  嫌犯

2022-12-22 17:00:37

世界播报:属相相冲一览 2023年9月6日冲什么属什么生肖

​我们生肖除了有相合相冲的概念,还有冲煞的概念。世间也有很多人认为这是不科学,虽然我们从小到大书里都没有提到冲犯煞,也没有提到这些无形

2022-12-22 10:42:39

天天观速讯丨龙蟠科技: 江苏龙蟠科技股份有限公司关于向控股子公司增加借款额度暨关联交易的更正公告

​证券代码:603906     证券简称:龙蟠科技     公告编号:2022-148              江苏龙蟠科技股份有限公司   关

2022-12-21 23:58:57

热点评!2023年ACCA准考证打印截止时间,附准考证打印方法

​2023年ACCA准考证一般在考试前2个小时将截止打印,所以ACCA考生一定要提前打印!而且最好是提前核对信息,有错误及时联系官方,进行信息修改。

2022-12-21 15:55:55

【世界聚看点】各地抓商机 促内需 激活力

​央视网消息(新闻联播):连日来,多地加大助企纾困力度,加快生产进度,抢抓年末商机,进一步激发市场活力。各地针对当地实际,加快推动企业

2022-12-21 09:46:37

【天天热闻】澳门特区政府公布2022年度授勋名单

​新华社澳门12月19日电(记者李寒芳刘刚)澳门特区政府19日根据勋章、奖章和奖状提名委员会的建议,公布2022年度授勋名单,表彰相关人士、实体

2022-12-20 21:42:12

热点在线丨3小时!开发ChatGPT微信小程序

​导读|上周OpenAI发布了对话语言模型ChatGPT,相关讨论引爆全网。你是否也迫不及待体验一番?本文特邀作者腾讯云开发者社区作者戴传友从开发环

2022-12-20 14:17:11

焦点资讯:中金公司:2023年基建、制造业投资有望延续高景气,看好四类投资机会

​中金公司12月20日研报认为,展望2023年,基建、制造业投资有望延续高景气,房建需求有望边际向上。看好建筑央企、地产链子板块、钢结构、粤港

2022-12-20 08:27:08

当前热讯:Polkadot 能否达到与 L2 解决方案相当的出块时间?| W3F 12 月 AMA

​加入PolkaWorld社区,共建Web3 0!Web3基金会技术教育和Grant负责人Bill在Reddit上举办了2022年最后一

2022-12-19 19:38:27

环球消息!异动快报:ST通葡(600365)12月19日14点33分触及跌停板

​12月19日盘中消息,14点33分ST通葡(600365)触及跌停板。目前价格4 25,下跌4 92%。其所属行业互联网电商目前下跌。领涨股为若羽臣。该股为葡萄

2022-12-19 14:44:24

天天快看点丨弥蒙高铁通车:“三线交汇”折射西南新变

​弥蒙高铁通车:“三线交汇”折射西南新变2022年12月19日08:31人民网新华社昆明电(记者李银、吉哲鹏、丁怡全)12月16日上午,一列白色“子弹头”停

2022-12-19 08:50:39

天天讯息:南靖县领导深入一线督导检查疫情防控工作

​南靖县领导深入一线督导检查疫情防控工作

2022-12-18 22:39:09

速看:金针菇可以放微波炉煮吗 金针菇能不能放微波炉煮呢

​1、金针菇可以放微波炉煮。2、原料:金针菇、酱油、辣椒面、蚝油、香油、孜然粉、蒜泥、小葱、香菜、小米椒。3、做法步骤:将金针菇根部切掉,

2022-12-18 05:47:16

天天热议:今日桉油的价格是多少「今天油价95」

​虽然国际油价有所回落,但仅供参考。七连涨之后,油价终于要降了。。点击上方蓝字关注本号。今天的油价数据来自各地网友提供的中石油、中石化

2022-12-17 11:11:43

快讯:感染后不到一周就“复阳”?专家:不排除没痊愈或抗原检测假阳性

​健康时报刘颖琪“非常魔幻,转阴三天后又复阳了!”“不到一周的时间,抗原转阴后又阳了,难道是没好彻底?”健康时报注意到,近期多位网友...

2022-12-16 19:37:07