一个开源项目同时实现了 ChatGPT 和 ChatPDF 功能。可用于快速搭建私有 AI 聊天和文档分析系统。
每个人都能使用的私密且安全的 AI 工具。
与 AI 聊天:允许你与 AI 模型(如 ChatGPT)进行对话。
与文档聊天:允许你与文档进行对话(目前支持 PDF)。下面有演示视频。
本地推理:在本地运行 AI 模型。通过 Ollama 支持 100+ 开源(和半开源)AI 模型。
内置身份验证:简单的邮箱/密码认证,可以在互联网上开放使用,从任何地方访问。
内置用户管理:家庭成员或同事也可以使用(如有需要)。
自托管优化:提供必要的脚本和 docker-compose 文件,5 分钟内即可开始使用。
mkdir secure-ai-tools && cd secure-ai-tools
该脚本下载 docker-compose.yml 并生成一个 .env 文件,配置合理的默认值。
curl -sL https://github.com/SecureAI-Tools/SecureAI-Tools/releases/latest/download/set-up.sh | sh
根据需要自定义上一步生成的 .env 文件。如果要使用 OpenAI LLM,请按照此处列出的步骤操作。
为了在 Linux 机器上加速推理,你需要启用 GPU。虽然不是严格要求,推理服务也能在纯 CPU 模式下运行,但在 CPU 上会很慢。因此,如果你的机器有 Nvidia GPU,推荐执行此步骤。
如果未安装 Nvidia 容器工具包,请先安装。
在 docker-compose.yml 文件中取消注释 deploy: 块。它使推理服务可以访问 Nvidia GPU。
docker compose up -d
使用下面的初始凭证登录 http://localhost:28669/log-in,并修改密码。邮箱 bruce@wayne-enterprises.com 密码 SecureAIToolsFTW!
使用下面的初始凭证登录 http://localhost:28669/log-in,并修改密码。
邮箱
bruce@wayne-enterprises.com
密码
SecureAIToolsFTW!
通过访问 http://localhost:28669/-/settings?tab=ai 来设置 AI 模型。
通过访问 http://localhost:28669/-/settings?tab=ai 来设置 AI 模型。
访问 http://localhost:28669/- 并开始使用 AI 工具。
访问 http://localhost:28669/- 并开始使用 AI 工具。
要升级,请在 docker-compose.yml 文件所在的目录运行以下命令(应该在安装第 1 步的 secure-ai-tools 目录中)。
docker compose pull && docker compose up -d
在本地运行 AI 模型(LLM)
内存:AI 模型所需的内存。大多数模型都有在 8GB 内存上运行效果很好的变体。
GPU:推荐使用 GPU 但不是必需的。也可以在纯 CPU 模式下运行,但在 Linux、Windows 和 Mac-Intel 上会更慢。在 M1/M2/M3 Mac 上,推理速度非常好。
使用远程 OpenAI 兼容 API
SecureAI Tools 允许使用远程 OpenAI 兼容 API。如果仅使用远程 OpenAI 兼容 API 服务器进行 LLM 推理,硬件要求会更低。你只需要足够的资源来运行几个 docker 容器:一个小型 web 服务器、postgresql 服务器、rabbit-mq。
下面是我们待办清单中的一些功能(没有特定顺序)。
✅ 与文档聊天
✅ 支持 OpenAI、Claude 等 API
✅ 可重用的文档集合
✅ 离线文档处理
✅ 与 Paperless-ngx 集成
✅ 与 Google Drive 集成
支持更多文件类型(Google Doc、Docx、Markdown 等)
支持 markdown 渲染
在聊天创建时指定 AI 模型
Prompt 模板库
SecureAI Tools 可以与 OpenAI API 和任何提供 OpenAI 兼容 API 的其他供应商一起使用。以下是为你的实例启用该功能的步骤:
在 .env 文件中设置 MODEL_PROVIDER_CONFIGS,如下所示。如果你使用的其他供应商不需要 apiKey,则可以指定任何虚拟 apiKey 值。根据你的 API 供应商使用适当的 apiBaseUrl。
# For OpenAI
MODEL_PROVIDER_CONFIGS='[{"type":"OPENAI","apiBaseUrl":"https://api.openai.com/v1","apiKey":"sk-...","embeddingsModel":"text-embedding-3-large"}]'
# For OpenAI-compatible other provider
MODEL_PROVIDER_CONFIGS='[{"type":"OPENAI","apiBaseUrl":"...URL of API provider here ...","apiKey":"sk-...","embeddingsModel":"text-embedding-3-large"}]'
进入组织设置页面,选择 OpenAI 模型类型,并提供适当的模型名称,如 gpt-4o。
进入组织设置页面,选择 OpenAI 模型类型,并提供适当的模型名称,如 gpt-4o。
你可以自定义 LLM 供应商特定的选项,例如要卸载到 GPU 的层数或停止词等。在 MODEL_PROVIDER_CONFIGS 环境变量中指定这些选项。例如,下面是如何在 Ollama 中将 30 层卸载到 GPU:
MODEL_PROVIDER_CONFIGS='[{"type":"OLLAMA","apiBaseUrl":"http://inference:11434/","apiKey":"","options":{"numGpu":30}}]'
请在此处查看更多信息,了解哪些供应商可用哪些选项。