Pebblo Safe DocumentLoader
Pebblo 使开发人员能够安全地加载数据并将他们的 Gen AI 应用程序进行部署,而无需担心组织的合规性和安全性要求。该项目识别在加载的数据中找到的语义主题和实体,并在 UI 或 PDF 报表上汇总它们。
Pebblo 有两个组件。
- 用于 Langchain 的 Pebblo Safe DocumentLoader
- Pebblo 服务器
本文档介绍了如何使用 Pebblo Safe DocumentLoader 来增强您现有的 Langchain DocumentLoader,以深入了解摄取到 Gen-AI Langchain 应用程序中的主题和实体类型的数据。有关详细信息Pebblo Server请参阅此 Pebblo 服务器文档。
Pebblo Safeloader 为 Langchain 实现安全的数据摄取DocumentLoader.这是通过将文档加载器调用包装成Pebblo Safe DocumentLoader.
注意: 要在 pebblo 的默认 (localhost:8000) url 以外的某个 url 上配置 pebblo 服务器,请将正确的 URL 放入PEBBLO_CLASSIFIER_URLenv 变量。这可以使用classifier_urlkeyword 参数。参考:server-configurations
如何让 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)
只需对上述代码段进行几行代码更改即可启用 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-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)