OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  PEBBLO — 面向企业私有数据的 LLM 安全与治理工具

PEBBLO — 面向企业私有数据的 LLM 安全与治理工具

 
  cookie ·  2026-05-07 11:00:20 · 1 次点击  · 0 条评论  


GitHub
MIT license
Documentation

PyPI
PyPI - Downloads
PyPI - Python Version

LinkedIn
Discord
Twitter Follow


Pebblo 帮助开发者安全加载数据,并在无需担心组织合规与安全要求的情况下,将生成式AI应用顺利部署上线。该工具可识别加载数据中的语义主题和实体,并在UI或PDF报告中汇总展示。

Pebblo 包含以下组件:

  1. Pebblo Server:REST API 应用,提供主题分类、实体分类及报告生成功能。
  2. Pebblo SafeLoader:针对生成式AI框架数据加载器的轻量封装。
  3. Pebblo SafeRetriever:检索问答链,在LLM推理前对向量数据库检索施加身份与语义规则限制。

Pebblo Server

安装

使用 pip

pip install pebblo --extra-index-url https://packages.daxa.ai/simple/

下载 Python 包

或者,从以下 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 Server

pebblo

Pebblo Server 现在会在 localhost:8000 上监听,接收生成式AI应用的数据片段以进行检查和报告。

Pebblo 可选参数
  • --config <file>:指定一个 YAML 格式的配置文件。

更多控制 Pebblo Server 行为的配置项(如启用片段匿名化、选择特定报告渲染器)请参阅 配置指南

使用 Docker

docker run -p 8000:8000 docker.daxa.ai/daxaai/pebblo

在浏览器中访问 https://localhost:8000 即可使用本地 UI。

有关如何传递自定义 config.yaml 以及在宿主机上访问 PDF 报告的详细信息,请参阅 安装指南

故障排除

请参考 故障排除指南

Pebblo SafeLoader

Langchain

Pebblo SafeLoader 原生集成于 Langchain 框架,适用于 Langchain 版本 >=0.1.7

在 Langchain 应用中启用 Pebblo

在 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 应用示例请见 此处,详细文档请参考 此链接

Pebblo SafeRetriever

Langchain

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 许可证发布。

1 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 15 ms
Developed with Cursor