Skip to main content
Open In ColabOpen on GitHub

Pebblo 安全文档加载器

Pebblo 使开发者能够在不担心组织的合规性和安全性要求的情况下,安全地加载数据并推动其Gen AI应用部署。该项目会在UI或PDF报告中识别出所加载数据中的语义主题和实体,并对其进行总结。

Pebblo 有两个组件。

  1. Pebblo Safe DocumentLoader for Langchain
  2. Pebblo Server

这文档描述了如何通过与Pebblo Safe DocumentLoader结合来增强您现有的Langchain DocumentLoader,从而在Gen-AI Langchain应用程序中获取对所摄入主题和实体类型的深入数据可见性。有关Pebblo Server的详细信息,请参见此pebblo服务器文档。

Pebblo Safeloader 为 Langchain DocumentLoader 安全地导入数据。这通过将文档加载调用包裹在 Pebblo Safe DocumentLoader 中来实现。

Note: 若要在某些URL(不同于pebblo默认的localhost:8000 URL)上配置pebblo服务器,请将正确的URL放入PEBBLO_CLASSIFIER_URL环境变量中。此外,也可以使用classifier_url关键字参数进行配置。参考:服务器配置

如何启用Pebblo文档加载?

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

这里是如何使用CSVLoader加载文档的示例。

from langchain_community.document_loaders import CSVLoader

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

The 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)

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

要将语义数据发送到pebblel-cloud,请在PebbloSafeLoader参数中传递api-key,或者将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)

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

要将语义主题和语义实体添加到加载文档的元数据中,请将 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)

将代码片段脱敏以屏蔽所有个人识别信息

将参数anonymize_snippets设置为True可以匿名化所有进入向量数据库(VectorDB)和生成报告中的个人身份信息(PII)。

Note: The Pebblo Entity Classifier effectively identifies personally identifiable information (PII) and is continuously evolving. While its recall is not yet 100%, it is steadily improving. For more details, please refer to the Pebblo Entity Classifier docs

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)