Dify设计:如何控制知识库的访问权限

一、背景

在Dify 的设计中,知识库在管理端是有权限的,但是在用户调用接口的时候是没有权限控制的,作为LLMOps确实也不需要控制知识库的权限,因为上层还有应用服务可以控制,但应用层控制也略显麻烦,所以我们也可以尝试自己在Dify中来实现怎么对知识库的访问控制。

 二、方案

2.1 按照角色进行权限分配

在这个案例中用户只有一种角色,一种角色只能访问一个知识库,在接口中传入对应的角色名称就可以进行过滤。 在这个方案中我采用了条件判断的方式,进行依次对比,同时我们可以使用迭代的方式进行轮训。效果都是一样的

步骤: 1输入角色

     输入问题

流程展示:

2.2 按照多个角色进行权限分配

在这个方案中,用户可能包含多个角色,例如一名员工可以同时是HR和开发者,也可以同时是产品经理。

在这个方案中,我采用了并发与条件节点帮我完成,我们也可以使用数组结合迭代来进行流程设计。

步骤:

  1. 输入多个角色名称
  1. 进行回答
  2. 流程展示:

2.3 按照用户名进行权限分配

在这个场景下,我采用用户名的方式,每一个流程前设置一个判断用户名的节点,只有符合用户名的节点才能将流程进行下下去

步骤:

  1. 输入你的用户名
  2. 进行提问
  3. 获得答案

 

流程图:

2.4按照外部接口进行权限分配

有时候我们可以依赖一个外部接口或者一个算法进行用户权限的验证,在这里我们可以采用调用第三方接口的方式,也可以采用代码执行器的方式。

步骤

  1. 输入用户名
  2. 进行提问
  3. 调用认真接口
  4. 获得答案

 

2.5 按照口令进行权限分配

我们使用过类似百度网盘的提取码,我们可以直接分配一个提取码,只要用户提供符合的口令,就可以获得相应的权限

步骤

  1. 输入口令
  2. 口令校验
  3. 获得知识库
  4. 答案生成

 

错误口令状态

 

口令正确

流程图

Dify丰富的条件语句为我们提供了非常方便进行权限控制的能力。我们只需要拖动下流程,就能完成我们基础的权限控制需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值