前端用 vue 实现(前端菜鸡,写的能用就行)通过前端页面的账号管理页面进行账号的管理和账号权限的配置,同时前端也会展示系统的使用详情,数据统计。通过 ip+默认端口 9002 访问前端页面(用域名不行,至于为什么我也没来及看)。
后端由 springboot 项目,用 redis 存储。默认监听 9001 端口(必须保证防火墙打开)
账号分为 plus 账号和 free 账号。前端页面中支持对任何一个账号设置权限,例如通过设置账号的创建人,同时默认账号的 plus 模型和 free 模型对飞书企业中所有用户开放,当然也支持配置 plus 能力或者 free 能力对某些用户开放
服务方式分为fast模式和keep模式
优先保证具有上下文的能力下响应你的提问
优先响应提问,因为该项目基于 accesstoken 方式,所以同一账号只能回复一个提问,所以如果你提问的时候有其它用户同时也在使用该机器人,则此时该账号已经无法提供服务,系统策略是更换其它可用账号进行服务。在基于可用的情况下,保证你的上下文能力。 由于有些用户使用的共享 plus 账号,所以 fast 模式也对这些用户做了兼容,也能保证自动切换账号。
fast 模式可以通过机器人回复的消息 title 里的数字编号是否连续来判断会话是否保持上下文。
fast模式和keep模式通过向机器人发送/fast或者/keep指令进行切换,默认 fast 模式
机器人回复消息卡片格式消息分为三个部分,最上方为标题部分,中间为gpt响应的内容,选择框是对模型的切换
构成由 模型 + 账号 + (账号类型) + (服务模式) + 序号
其中账号类型只有在plus账号服务时才会显示plus标识
服务模式为fast或者keep模式,默认 fast 模式不显示
序号用于用户判断对话是否保持上下文能力,第一次会话序号为 1,第二次会话序号➕1,如果 fast 模式导致切换账号服务,则序号重置为 1
下拉框的选项由账号池里账号类型自动配置,账号池里有plus账号,则自动加入plus账号支持的模型
- 通过下拉框选择模型进行模型的切换,同时会从账号池里随机一个账号来进行服务,所以有概率会切换服务账号
- 通过选择 使用当前上下文,进行会话的选择,例如你切换了会话的模型或者账号后,你又想得到之前某次对话的上下文,通过选择该选项,使得你与机器人的会话重新恢复到之前对话的上下文环境。
对于 ChatGPT 付费模型的支持尚不完善,由于官网对付费模型的某些限制,GPT4 模型并不稳定,会导致很多时候不可用。对于插件等模型,本系统尚未设计支持。