一、流程图
业务方如果没有chatId,则需要调用创建聊天室,保存chatId至业务表。
后面有chatId,反查会话详情,按权重值依次展示会话明细列表。
进入聊天室后, 就可以发起问AI,因为接口协议不一样,问AI的接口是采用sse方式,返回SseEmitter对象;而上面的其他接口则是普通的http接口。
如果用户要追问AI,则需要先新增会话明细,把提问的内容保存至本地会话明细表,再调用问AI接口。
如果用户要重问AI,则是修改会话明细,当然,要看提问的内容是否有变更。当有变更的时候,需要同步更新本地会话明细表,再也是调用问AI接口。
调用三方接口前,总是要先操作本地表。
比如对接微信支付的时候,先保存支付订单,再向微信发起支付请求。
这里,必须是两步走的,就因为后者是三方接口。
本地表的数据持久化的好处是,记录用户的操作日志,解决事务不一致的问题。
因为本地表的操作和调用http接口是没办法保证事务一致性。