Gpt微信小程序搭建的前后端流程 - 前端小程序部分-2.确定交互所需的后端API(二)

Gpt微信小程序搭建的前后端流程 - 前端小程序部分-2.确定交互所需的后端API(二)


参考微信小程序-小柠AI智能聊天,可自行先体验。

小程序二维码


根据上一节的小程序静态页面设计,需要从后端获取数据的主要4个点:

  1. 登录流程;
  2. 获取今日已提问次数;
  3. 获取聊天记录;
  4. 发起聊天和响应。

这样就是确定至少需要4个后端API,通过返回的数据做渲染显示。


登录流程

其中登录流程就是参考小程序官方图。

  1. 小程序先通过wx.login()获取code
  2. 请求后端登录API
  3. 后端通过appid, appsecret, code请求 https://api.weixin.qq.com/sns/jscode2session 获取用户唯一id的openid
  4. 通过openid封装token返回前端-》前端保存token,之后请求API带上,校验用。

在这里插入图片描述

登录这里会有个坑,就是在wx.login中使用异步请求后端API时候,如果这个登录逻辑放在app.js的小程序初始化加载onLaunch中,我们在index.js加载页面时候需要依赖使用登录token做一些处理,这个时候可能异步请求登录还没返回,就会导致获取到的token为空。

这里就需要使用new Promise监听异步操作成功后再处理index.js中相关依赖于token的逻辑。具体处理后续 登录实现章节 贴。


获取今日已提问次数和聊天记录

这两个则直接通过wx.request请求即可,具体实现也在后续章节。


发起gpt聊天和响应

这个就是整个小程序的核心内容了,这里会拆分两个API

第一个API: 请求验证是否可发起(次数够…),成功则追加当前发起内容到页面显示,失败则弹框提示;

第二个API: 验证通过后发起websocket连接,通过流模式响应后端返回,并将接受到的流内容做追加到页面显示。


总结,我们总共需要5个后端API,都会在之后单独的章节,实现具体的逻辑和流程

  1. 登录API
  2. 获取次数API
  3. 获取聊天记录API
  4. 请求发起聊天API
  5. 请求后端流模式响应API

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/60091.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第二课-一键安装SD-Stable Diffusion 教程

前言 看完这篇文章并跟着操作,就可以在本地开始 SD 绘图了。 理论上来说,这篇课程结束,想要画什么图都可以画了。 启动器介绍 SD 是开源的,可以在 github 上找到。但直接下载源码安装,非常费劲,而且因为国内外差异,就是我这样的秃头程序员也难以应对。 所以,我们改…

DeepSort算法简介

SORT算法 SORT(Simple Online and Realtime Tracking)算法是一种目标追踪算法,其简单有效,基于IOU来匹配,并且融入了卡尔曼滤波和匈牙利算法来降低ID Switch(可以说,追踪算法的目标只有两个:1.提高速度 2.降低ID Swit…

嵌入式开发的学习与未来展望:借助STM32 HAL库开创创新之路

引言: 嵌入式开发作为计算机科学领域的重要分支,为我们的日常生活和产业发展提供了无限的可能。STMicroelectronics的STM32系列芯片以其出色的性能和广泛的应用领域而备受关注。而STM32 HAL库作为嵌入式开发的高级库,为学习者提供了更高效、更…

在 Ubuntu 上安装 Docker 桌面

Ubuntu 22.04 (LTS) 安装 Docker 桌面 要成功安装 Docker Desktop,您必须: 满足系统要求拥有 64 位版本的 Ubuntu Jammy Jellyfish 22.04 (LTS) 或 Ubuntu Impish Indri 21.10。对于非 Gnome 桌面环境,必须安装 gnome-terminal:…

ApplicationContext在Spring Boot中是如何创建的?

一、ApplicationContext在Spring Boot中是如何创建的? 1. SpringApplication ApplicationContextFactory有三个实现类,分别是AnnotationConfigReactiveWebServerApplicationContext.Factory、AnnotationConfigServletWebServerApplicationContext.Facto…

keil显示中文代码正常,但是编译中文乱码的问题

Configuration---Editor---Encoding,ANSI或是UTF8,总之这2个,是A就改为U,是U就改为A。 MDK5中文编译乱码,不是显示乱码哦。

计蒜客T1115——字符串判等

水题不解释,考研复习压力偶尔写一道换换心情还不错~ 这里有一个比较有趣的知识点,对于同时输入多个字符串时还要允许空格的输入,那么普通的cin函数就不能满足要求了,这里采用getline函数解决,如下: string …

贪心-leetcode409最长回文串

贪心-leetcode409最长回文串 思考: 总的思路:从数字中选择个数是偶数的去union,最后如果有过奇数则多union一个作为中心;从数组中select然后feasible是如果该数字为偶数则union到两边,如果为奇数则按照偶数处理再给中…

LoRaWAN网关与网络服务器(NS)的通信LNS协议介绍

将 LoRaWAN网关连接到 LoRaWAN 网络服务器 (LNS) 是一个两步过程,该过程使用 WebSocket 作为传输协议来交换包含 JSON 编码对象的文本记录。 首先,网关向LNS查询LNS实际连接端点的URI。其次,它与该端点建立数据连接以接收设置信息。从那时起,LoRa 上行链路和下行链路帧通过…

fastadmin、vue、react图标库适用于多种框架

在二开fastadmin中,在写vue以及react时,侧边导航栏以及按钮中常常需要很多图标,那么这些图标应该去哪里得到呢,在这里给大家一个链接,这里有丰富的图标库,可以找到自己想要的进行使用。 点击下方链接&…

Redis过期键删除策略

如果一个键过期了,那么它什么时候会被删除呢? 这个问题有三种可能的答案,它们分别代表了三种不同的删除策略: 1.定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时…

NSS [UUCTF 2022 新生赛]ez_upload

NSS [UUCTF 2022 新生赛]ez_upload 考点:Apache解析漏洞 开题就是标准的上传框 起手式就是传入一个php文件,非常正常的有过滤。 .txt、.user.ini、.txxx都被过滤了,应该是白名单或者黑名单加MIME过滤,只允许.jpg、.png。 猜测二…