微服务gptapi开发记录(二)网络环境搭建

在本地用一台机器++netapp内网穿透已经实现了微信公众号和gptapi对接了,但是这台机器网络存在问题就是网络问题,就是要开连gptapi,同时要用netapp连接微信公众号,+netapp就会变成公众号访问要要绕到VPN海外的入口去了?(其实我还不是很确定是不是这样,但是我开了VPN再开NETAPP,netapp初始化就会慢。

所以今天为了解决两个通道的冲突

1.通道一到Netapp服务器进行本地网络穿透

2.通道二到flow服务器进行API访问

而且本地用的flow在进行隧道的时候经常会卡。所以我搞了台新加坡的服务器。

整体组网

一共三台设备,两个隧道,四段连接

我的设备,一台本地服务器设备A,一台新加坡服务器B,netapp有一台设备C。

1.所有微信公众号到设备C交互信息,不走隧道。

2.C到A用netapp穿透技术,应该用了隧道。

3.A上建了代理,将对gpt的请求转发到代理,本地应用接受到公众号信息后,直接向gpt原地址发起请求,只是在用okhttp建立连接的时候设置代理方式。

这里用了腾讯的新加坡服务器带公网IP和一定流量一年200块钱,vess隧道软件,netapp本地服务器穿透软件。两个软件配置都相对很简单。

公众号超时三次重试技术解决GPT请求时间过长

在调用的gpt的过程中会存在时间过长,超过微信接口请求的时间,所以要处理。

微信消息原理

  1. 5秒关闭连接。服务器5秒内没有返回公众号信息就会关闭连接。公众号收到用户消息后给服务器发送普通消息,服务端收到消息后要在该连接内返回消息,直接返回具体内容就行。
  2. 会重试3次。公众号收到服务器错误异常等消息、或者5秒超时,会进行两次重试,所以一共3次连接,都是一样原理,每次等待5秒关闭连接。
  3. 主动消息有次数限制,不适用。服务器端想主动给公众号发消息有次数限制。

所以综合上面的内容解决gpt请求时间长就可以

  1. 利用三次重试的15秒,在这15秒内只要收到gpt消息就给客户在当前这次会话中返回消息。一般都能在15秒内回复。
  2. 如果三次重试15秒内都没有收到GPT消息,给用户返回"微信公众号超时请重新输入{XXXXXX}"这里的XXXXXX是之前的内容

GPT的API会话不是上下文连贯的

这个问题在不考虑token花钱的情况下很好解决,直接把之前的所有内容加在这次请求中就行了。但是如果考虑token花钱不想重复发很多token,{这个情况还没解决}

你可能感兴趣的:(网络)