这个仓库 open-webui
是一个开源的项目,提供了一个可扩展、功能丰富且用户友好的自托管 AI 平台。以下是对该仓库的详细介绍:
项目概述
Open WebUI 是一个设计为完全离线运行的自托管 AI 平台,支持多种大型语言模型(LLM)运行器,如 Ollama 和 OpenAI 兼容的 API,还内置了用于检索增强生成(RAG)的推理引擎,是一个强大的 AI 部署解决方案。
主要特性
- 轻松设置:可以使用 Docker 或 Kubernetes(kubectl、kustomize 或 helm)无缝安装,支持
:ollama
和:cuda
标记的镜像。 - Ollama/OpenAI API 集成:能够轻松集成 OpenAI 兼容的 API,实现与 Ollama 模型的多功能对话。可以自定义 OpenAI API URL,连接到 LMStudio、GroqCloud、Mistral、OpenRouter 等。
- 精细权限和用户组:管理员可以创建详细的用户角色和权限,确保安全的用户环境,同时提供定制化的用户体验。
- 响应式设计:在桌面 PC、笔记本电脑和移动设备上都能提供无缝的使用体验。
- 移动渐进式 Web 应用(PWA):在移动设备上提供类似原生应用的体验,支持在本地主机上离线访问和无缝的用户界面。
- 完整的 Markdown 和 LaTeX 支持:提供全面的 Markdown 和 LaTeX 功能,提升与大语言模型的交互体验。
- 免提语音/视频通话:集成了免提语音和视频通话功能,实现更动态和交互式的聊天环境。
- 模型构建器:通过 Web UI 轻松创建 Ollama 模型,创建和添加自定义角色/代理,自定义聊天元素,并通过 Open WebUI Community 集成轻松导入模型。
- 原生 Python 函数调用工具:在工具工作区中提供内置的代码编辑器支持,通过添加纯 Python 函数实现与大语言模型的无缝集成。
- 本地 RAG 集成:支持检索增强生成(RAG),可以将文档交互无缝集成到聊天体验中,直接在聊天中加载文档或添加文件到文档库,并使用
#
命令访问。 - RAG 网络搜索:使用
SearXNG
、Google PSE
、Brave Search
等多种搜索引擎进行网络搜索,并将结果直接注入聊天体验。 - 网页浏览功能:使用
#
命令后跟 URL 可以将网站无缝集成到聊天体验中,丰富对话内容。 - 图像生成集成:支持使用 AUTOMATIC1111 API、ComfyUI(本地)和 OpenAI 的 DALL - E(外部)等选项进行图像生成,为聊天体验增添动态视觉内容。
- 多模型对话:可以同时与多种模型进行交互,利用它们的独特优势获得最佳响应。
- 基于角色的访问控制(RBAC):确保安全访问,只有授权人员可以访问 Ollama,并且只有管理员具有创建/拉取模型的专属权限。
- 多语言支持:通过国际化(i18n)支持,用户可以使用自己喜欢的语言使用 Open WebUI,并且项目正在积极寻求贡献者以扩展支持的语言。
- 管道和插件支持:使用 Pipelines Plugin Framework 可以将自定义逻辑和 Python 库无缝集成到 Open WebUI 中,例如函数调用、用户速率限制、使用监控、实时翻译和有毒消息过滤等。
- 持续更新:项目团队致力于定期更新、修复问题和添加新功能,不断改进 Open WebUI。
项目结构
仓库包含多个目录和文件,以下是一些主要的目录和文件及其作用: - backend:后端相关文件,包括数据库和文档等文件的 Docker 目录。 - cypress:可能包含用于测试的 Cypress 配置和测试脚本。 - .github:包含 GitHub 相关的配置文件,如工作流、问题模板等。 - package-lock.json:记录项目依赖的精确版本信息,确保在不同环境中安装相同版本的依赖。 - README.md:项目的介绍文档,包含项目概述、特性、安装说明等信息。
依赖信息
从 package-lock.json
文件中可以看出,项目依赖了许多第三方库,例如 estree-walker
、codemirror
、d3-delaunay
等,这些库为项目提供了各种功能支持。
赞助信息
项目有一些赞助商,如 n8n、Warp 和 Tailscale,这些赞助商为项目的发展提供了支持。
文档和社区
项目提供了详细的文档,可访问 Open WebUI Documentation 了解更多信息。同时,项目还提供了 Discord 社区,方便用户交流和获取帮助。
如果你对该项目感兴趣,可以参考项目的 README 文件和文档进行安装和使用。