Skip to main content
Open In ColabOpen on GitHub

Pebblo 安全文档加载器

Pebblo 使开发人员能够安全地加载数据,并将他们的生成式AI应用程序推广到部署阶段,而无需担心组织的合规性和安全要求。该项目识别加载数据中发现的语义主题和实体,并在UI或PDF报告中对其进行总结。

Pebblo 有两个组件。

  1. Pebblo 安全的 Langchain 文档加载器
  2. Pebblo 服务器

本文档描述了如何将现有的Langchain DocumentLoader与Pebblo Safe DocumentLoader结合使用,以深入了解注入到Gen-AI Langchain应用程序中的主题和实体类型。有关Pebblo Server的详细信息,请参阅此pebblo server文档。

Pebblo Safeloader 为 Langchain 的 DocumentLoader 提供了安全的数据加载功能。这是通过将文档加载器调用包装在 Pebblo Safe DocumentLoader 中来实现的。

注意:要在非Pebblo默认(localhost:8000)的URL上配置Pebblo服务器,请在PEBBLO_CLASSIFIER_URL环境变量中放入正确的URL。这也可以通过classifier_url关键字参数进行配置。参考:server-configurations

如何启用Pebblo文档加载?

假设一个使用CSVLoader读取CSV文档进行推理的Langchain RAG应用程序片段。

这里是使用CSVLoader加载文档的代码片段。

from langchain_community.document_loaders import CSVLoader

loader = CSVLoader("data/corp_sens_data.csv")
documents = loader.load()
print(documents)
API Reference:CSVLoader

Pebblo SafeLoader 可以通过对上述代码片段进行少量代码更改来启用。

from langchain_community.document_loaders import CSVLoader, PebbloSafeLoader

loader = PebbloSafeLoader(
CSVLoader("data/corp_sens_data.csv"),
name="acme-corp-rag-1", # App name (Mandatory)
owner="Joe Smith", # Owner (Optional)
description="Support productivity RAG application", # Description (Optional)
)
documents = loader.load()
print(documents)
API Reference:CSVLoader | PebbloSafeLoader

发送语义主题和身份到Pebblo云服务器

要向pebblo-cloud发送语义数据,请将api-key作为参数传递给PebbloSafeLoader,或者将api-key放入PEBBLO_API_KEY环境变量中。

from langchain_community.document_loaders import CSVLoader, PebbloSafeLoader

loader = PebbloSafeLoader(
CSVLoader("data/corp_sens_data.csv"),
name="acme-corp-rag-1", # App name (Mandatory)
owner="Joe Smith", # Owner (Optional)
description="Support productivity RAG application", # Description (Optional)
api_key="my-api-key", # API key (Optional, can be set in the environment variable PEBBLO_API_KEY)
)
documents = loader.load()
print(documents)
API Reference:CSVLoader | PebbloSafeLoader

将语义主题和身份添加到加载的元数据中

要为加载文档的元数据添加语义主题和语义实体,请将load_semantic设置为True作为参数,或者定义一个新的环境变量PEBBLO_LOAD_SEMANTIC,并将其设置为True。

from langchain_community.document_loaders import CSVLoader, PebbloSafeLoader

loader = PebbloSafeLoader(
CSVLoader("data/corp_sens_data.csv"),
name="acme-corp-rag-1", # App name (Mandatory)
owner="Joe Smith", # Owner (Optional)
description="Support productivity RAG application", # Description (Optional)
api_key="my-api-key", # API key (Optional, can be set in the environment variable PEBBLO_API_KEY)
load_semantic=True, # Load semantic data (Optional, default is False, can be set in the environment variable PEBBLO_LOAD_SEMANTIC)
)
documents = loader.load()
print(documents[0].metadata)
API Reference:CSVLoader | PebbloSafeLoader

匿名化代码片段以删除所有PII详细信息

anonymize_snippets 设置为 True,以匿名化进入 VectorDB 和生成报告中的所有个人身份信息 (PII)。

注意:Pebblo Entity Classifier 能够有效识别个人身份信息(PII),并且正在不断进化。虽然其召回率尚未达到100%,但正在稳步提升。 更多详情,请参阅 Pebblo Entity Classifier 文档

from langchain_community.document_loaders import CSVLoader, PebbloSafeLoader

loader = PebbloSafeLoader(
CSVLoader("data/corp_sens_data.csv"),
name="acme-corp-rag-1", # App name (Mandatory)
owner="Joe Smith", # Owner (Optional)
description="Support productivity RAG application", # Description (Optional)
anonymize_snippets=True, # Whether to anonymize entities in the PDF Report (Optional, default=False)
)
documents = loader.load()
print(documents[0].metadata)
API Reference:CSVLoader | PebbloSafeLoader

这个页面有帮助吗?