个人代理助理:安全、多用户、自托管聊天机器人的实用蓝图

构建一个自托管的端到端平台,为每个用户提供一个个人的、代理的聊天机器人,该机器人可以通过用户明确允许其访问的文件进行自主矢量搜索。文章《个人代理助理:安全、多用户、自托管聊天机器人的实用蓝图》首先出现在《走向数据科学》上。

来源:走向数据科学

我如何构建一个自托管的端到端平台,为每个用户提供一个个人的、代理的聊天机器人,该机器人只能自主搜索用户明确允许其访问的文件。

换句话说:完全控制,100% 私有,LLM 的所有好处,没有隐私泄露、代币成本或外部依赖。

简介

在过去的一周里,我挑战自己去构建一些我已经想了一段时间的东西:

如何在不牺牲大型科技公司隐私的情况下,利用我的个人数据增强法学硕士的能力?

这导致了本周的挑战:

构建一个配备工具的代理聊天机器人,可以安全地访问用户的个人笔记,而不会损害隐私。

作为一个额外的挑战,我希望系统支持多个用户。不是共享助理,而是每个用户的私人代理,用户可以完全控制其代理可以读取和推理哪些文件。

我们将按照以下步骤构建系统:

  • 架构
  • 我们如何创建代理并为其提供工具?
  • 流程 1:用户文件管理:当我们提交文件时会发生什么?
  • 流程2:我们如何嵌入文档和存储文件?
  • 流程 3:当我们与代理助理聊天时会发生什么?
  • 演示
  • 1) 架构

    我定义了系统必须允许的三个主要“流程”:

    A) 用户文件管理

    用户通过前端进行身份验证,上传或删除文件,并将每个文件分配给特定组,这些组确定哪些用户的代理可以访问它。

    B) 嵌入和存储文件

    上传的文件被分块、嵌入并存储在数据库中,确保只有授权用户才能检索或搜索这些嵌入。

    C) 聊天

    用户与自己的代理聊天。该代理配备了工具,包括语义向量搜索工具,并且只能搜索用户有权访问的文档。

    为了支持这些流程,该系统由六个关键组件组成:

    应用程序 前端 Blob 存储 (矢量)数据库 奥拉玛 消息队列

    2) 使用工具箱构建代理

    3) 流程 1:提交文件

    — 迈克