跳到主要内容
Open In ColabOpen on GitHub

Pebblo 安全文档加载器

Pebblo 帮助开发者安全地加载数据,并将其生成式 AI 应用推向部署,无需担心组织合规性和安全要求。该项目识别加载数据中的语义主题和实体,并在用户界面或 PDF 报告中进行汇总。

Pebblo 包含两个组件。

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

本文介绍了如何通过 Pebblo 安全文档加载器增强现有的 Langchain DocumentLoader,以深入了解摄入到生成式 AI Langchain 应用程序中的主题和实体类型。有关 `Pebblo Server` 的详细信息,请参阅此Pebblo 服务器文档。

Pebblo Safeloader 支持 Langchain `DocumentLoader` 的安全数据摄入。这通过使用 `Pebblo Safe DocumentLoader` 包装文档加载器调用来实现。

注意:要将 Pebblo 服务器配置到除 Pebblo 默认(localhost:8000)URL 之外的其他 URL,请将正确的 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

只需对上述代码片段进行少量更改,即可启用 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 云服务器

要将语义数据发送到 pebblo-cloud,请将 API 密钥作为参数传递给 PebbloSafeLoader,或者将 API 密钥放入 `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)

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

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

注意:*Pebblo 实体分类器*能有效识别个人身份信息 (PII),并且正在持续发展中。虽然其召回率尚未达到 100%,但正在稳步提高。欲了解更多详情,请参阅*Pebblo 实体分类器文档*

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)