集成详情
本 notebook 展示如何将 Permit.io 的权限控制集成到 LangChain 检索器中。 我们提供两个自定义检索器:- PermitSelfQueryRetriever – 使用自查询方式解析用户的自然语言提示,从 Permit 获取用户被允许访问的资源 ID,并在向量存储搜索中自动应用该过滤器。
- PermitEnsembleRetriever – 通过 LangChain 的 EnsembleRetriever 组合多个底层检索器(例如 BM25 + Vector),然后用 Permit.io 对合并结果进行过滤。
设置
使用以下命令安装包:安装
环境变量
- 需要运行中的 Permit PDP。有关策略和容器配置的详细信息,请参阅 Permit 文档。
- 需要可供封装的向量存储或多个检索器。
实例化
PermitSelfQueryRetriever
基本说明
- 从 Permit 检索被允许访问的文档 ID。
- 使用 LLM 解析查询并构建“结构化过滤器”,确保只考虑具有被允许 ID 的文档。
基本用法
PermitEnsembleRetriever
基本说明
- 使用 LangChain 的 EnsembleRetriever 从多个子检索器(例如基于向量、BM25 等)中收集文档。
- 检索文档后,调用 Permit 的 filter_objects 方法,过滤掉用户无权访问的文档。
基本用法
演示脚本
如需更完整的演示,请查看/langchain_permit/examples/demo_scripts 文件夹:
- demo_self_query.py – 演示 PermitSelfQueryRetriever。
- demo_ensemble.py – 演示 PermitEnsembleRetriever。
总结
通过这些自定义检索器,您可以将 Permit.io 的权限检查无缝集成到 LangChain 的检索工作流中。在保留应用程序向量搜索逻辑的同时,确保只返回用户有权访问的文档。 有关 Permit 策略设置的更多详细信息,请参阅官方 Permit 文档。如果您希望将这些功能与其他工具(如 JWT 验证或更广泛的 RAG 流水线)结合使用,请查看示例文件夹中的 docs/tools.ipynb。用法
在链中使用
与其他检索器一样,PermitRetriever 可以通过链集成到 LLM 应用程序中。 我们需要一个 LLM 或聊天模型:API 参考
有关 PermitRetriever 所有功能和配置的详细文档,请访问 代码仓库。将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时解答。

