集成详情
本笔记本演示了如何将 Permit.io 权限集成到 LangChain 检索器中。 我们提供了两种自定义检索器:- PermitSelfQueryRetriever – 使用自查询方法解析用户的自然语言提示,从 Permit 获取用户允许的资源 ID,并自动将该过滤器应用于向量存储搜索。
- PermitEnsembleRetriever – 通过 LangChain 的 EnsembleRetriever 结合多个底层检索器(例如,BM25 + 向量),然后使用 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 管道)结合使用,请查看 examples 文件夹中的 docs/tools.ipynb。用法
在链中使用
与其它检索器一样,PermitRetriever 可以通过 链 集成到 LLM 应用程序中。 我们需要一个 LLM 或聊天模型:API 参考
有关所有 PermitRetriever 功能和配置的详细文档,请访问 存储库。以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。