Skip to main content
Pebblo 使开发者能够安全地加载数据,并将生成式 AI 应用推进到生产部署,无需担忧组织的合规性和安全要求。该项目会识别已加载数据中的语义主题和实体,并在 UI 或 PDF 报告中进行汇总展示。
Pebblo 由两个组件组成:
  1. 适用于 LangChain 的 Pebblo 安全文档加载器
  2. Pebblo 服务器
本文档介绍如何使用 Pebblo 安全文档加载器来增强现有的 LangChain 文档加载器,以深度了解加载到生成式 AI LangChain 应用中的主题和实体类型。有关 Pebblo Server 的详细信息,请参阅此 pebblo server 文档。 Pebblo 安全加载器为 LangChain 的 DocumentLoader 提供安全的数据摄取功能,通过使用 Pebblo Safe DocumentLoader 包装文档加载器调用来实现。 注意:如需将 Pebblo 服务器配置到除默认(localhost:8000)以外的 URL,请在 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)
只需修改少量代码即可启用 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 云,可将 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)

将语义主题和身份信息添加到已加载文档的元数据中

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