Pebblo 帮助开发者安全加载数据,并在无需担心组织合规与安全要求的情况下,将生成式AI应用顺利部署上线。该工具可识别加载数据中的语义主题和实体,并在UI或PDF报告中汇总展示。
Pebblo 包含以下组件:
pippip install pebblo --extra-index-url https://packages.daxa.ai/simple/
或者,从以下 URL 下载并安装最新的 Pebblo Python .whl 包:
https://packages.daxa.ai/pebblo/0.1.13/pebblo-0.1.13-py3-none-any.whl
示例:
curl -LO "https://packages.daxa.ai/pebblo/0.1.13/pebblo-0.1.13-py3-none-any.whl"
pip install pebblo-0.1.13-py3-none-any.whl
pebblo
Pebblo Server 现在会在 localhost:8000 上监听,接收生成式AI应用的数据片段以进行检查和报告。
--config <file>:指定一个 YAML 格式的配置文件。更多控制 Pebblo Server 行为的配置项(如启用片段匿名化、选择特定报告渲染器)请参阅 配置指南。
docker run -p 8000:8000 docker.daxa.ai/daxaai/pebblo
在浏览器中访问 https://localhost:8000 即可使用本地 UI。
有关如何传递自定义 config.yaml 以及在宿主机上访问 PDF 报告的详细信息,请参阅 安装指南。
请参考 故障排除指南。
Pebblo SafeLoader 原生集成于 Langchain 框架,适用于 Langchain 版本 >=0.1.7。
在 RAG 应用中现有的 Langchain 文档加载器外层添加 PebbloSafeLoader 封装。PebbloSafeLoader 与 Langchain 的 BaseLoader 接口兼容,应用可以继续使用 load() 和 lazy_load() 方法,就像直接使用 Langchain 文档加载器一样。
以下是启用 PebbloSafeLoader 之前,使用 CSVLoader 的 Langchain RAG 应用代码片段:
from langchain_community.document_loaders import CSVLoader
loader = CSVLoader(file_path)
documents = loader.load()
vectordb = Chroma.from_documents(documents, OpenAIEmbeddings())
只需少量代码修改即可启用 Pebblo SafeLoader:
from langchain_community.document_loaders import CSVLoader
from langchain_community.document_loaders.pebblo import PebbloSafeLoader
loader = PebbloSafeLoader(
CSVLoader(file_path),
name="acme-corp-rag-1", # 应用名称(必填)
owner="Joe Smith", # 所有者(可选)
description="支持生产力的RAG应用", # 描述(可选)
)
documents = loader.load()
vectordb = Chroma.from_documents(documents, OpenAIEmbeddings())
更多启用了 Pebblo SafeLoader 的 RAG 应用示例请见 此处,详细文档请参考 此链接。
PebbloRetrievalQA 链使用 SafeRetrieval 来确保用于上下文检索的片段仅来自用户授权的文档,并且语义上符合生成式AI应用的限制。
以下是通过 auth_context 传递用户 authorized_identities 的 PebbloRetrievalQA 示例代码:
from langchain_community.chains import PebbloRetrievalQA
from langchain_community.chains.pebblo_retrieval.models import AuthContext, ChainInput
safe_rag_chain = PebbloRetrievalQA.from_chain_type(
llm=llm,
app_name="pebblo-safe-retriever-demo",
owner="Joe Smith",
description="使用Pebblo的安全RAG演示",
chain_type="stuff",
retriever=vectordb.as_retriever(),
verbose=True,
)
def ask(question: str, auth_context: dict):
auth_context_obj = AuthContext(**auth_context)
chain_input_obj = ChainInput(query=question, auth_context=auth_context_obj)
return safe_rag_chain.invoke(chain_input_obj.dict())
更多启用了 Pebblo SafeRetriever 的 RAG 应用示例请见 此处,详细文档请参考 此链接。
Pebblo 是一个开源社区项目。如需贡献,请参阅 贡献者指南 了解更多详情。
Pebblo 基于 MIT 许可证发布。