Maxkb如何实现权限控制,针对不同的用户访问特定的应用?!

Maxkb如何实权限控制?!目前有没有好的案例或者教程?!

目前我的设计思路:(示例)

设计想法及最终达成的目的:通过隐藏的全局变量,实现类似于HTTP请求中的session存储,首次加载对话窗口或者用户刷新网页,代表对话人员缓存清空,用户直接输入问题,默认调用外部API大模型,不走内部知识库应用,如果通过引导性访问(如开场白的“员工入口”问题标签),进入收集表单,将收集信息赋值到全局变量,值作为权限判断条件。用户开始提问,判断如全局变量uid&&uname全部默认值不为Null,从本地知识库应用去访问(本地私有大模型),否则直接走外部知识库。

  1. 首次应用对话窗口打开,提供隐藏的默认全局变量uid,uname。并赋值为Null。
  2. 通过一个关键词问题(例如开场白question标签:员工入口),进入表单收集(表单设计为2个文本框,文本框变量为uid、uname)。
  3. 收集表单后,进行下一步知识库查询(或者函数直接查询数据库),将表单数据与工号+姓名知识库匹,匹配度0.8,返回top1。
  4. 判断匹配有数据,代表员工信息合法,输出欢迎回家提示语。并将uid和uname赋值到全局变量中。否则让用户重新输入,或者直接中断收集。
  5. 正式开始:用户输入问题,同时判断uid和uname不为Null,则调用内部应用。

目前遇到的问题的困难和难点:

  1. 无法声明隐藏的全局变量
  2. 应用编排-基本信息-接口传参:设置了接口参数,但是在用户交互页面,成了显示的文本框或者其他控件。
  3. 全局变量无法重新赋值。
  4. 思维感觉有点乱,可能我的方式并不是最好的实现权限控制的方法,希望老师能给个案例或者解决全局变量问题。

以下是我的设置的应用流:


可以参考下这个帖子。

我现在的设计是

  • 全局变量赋值两个参数 uid uname urolse 然后默认为空
  • 通过用户提问 或question> 标签或form控件,判定用户是否要求进入特殊通道(即特定小助手)
  • 通过用户信息form获取用户输入工号 密码
  • 根据python函数,查询erp的用户api接口,获取用户名和角色
  • 最后赋值给全局变量。
  1. 如果用户提问非预设开场白,并且全局变量为空,即为访客,使用硅基流动API,进行联网推理。
  2. 如果全局变量被赋值,且urolse属于特定用户组,访问特定小助手。

例如经理(副总) 访问A级加密知识库小助手,店长(店员) 访问C级加密知识库小助手,总经理访问S级加密知识库小助手。

这个可以达到100%的权限控制,而且是根据外部系统人员账号密码,去决定下一步走哪个助手。
目前无法试下,就差最后一步全局变量赋值,或者普通组件可以随时声明全局变量。我已经反馈给官方了,他们说下个版本可能会开放,希望尽快能自定义全局变量。

1 个赞

现在全局变量赋值也是做不到,用变量赋值组件赋值,追问对话还是照样没用

变量赋值后,再次提问变量会继续保持基本信息里的默认值。