Ollama + Docker + AnythingLLM 搭建本地多用户AI知识库

剑客的茶馆 2024-08-16 13:37:01 阅读 91

整个过程需要准备三个工具:

Ollama: 用于运行本地大模型的管理:llama3, qwen2等

Docker:用于运行AnythingLLM

AnythingLLM:知识库运行平台,提供知识库构建及运行的功能。

Ollama, Docker

这二个安装不再重复,参考上个贴子:

https://blog.csdn.net/qq_28171389/article/details/140068915

AnythingLLM

安装AnythingLLM

一定要装Web版, 功能比Desktop版多

参考官网: https://github.com/Mintplex-Labs/anything-llm

网上很多介绍AnythingLLM的, 但搜了很少关于docker无脑的安装, 有的根关看不懂人家在写什么, 后面找到这个链接:

https://github.com/Mintplex-Labs/anything-llm/blob/master/docker/HOW_TO_USE_DOCKER.md

先拉取:

<code>docker pull mintplexlabs/anythingllm

由于我的是windows, 在powerShell运行:

$env:STORAGE_LOCATION="$HOME\Documents\anythingllm"; `code>

If(!(Test-Path $env:STORAGE_LOCATION)) { New-Item $env:STORAGE_LOCATION -ItemType Directory}; `

If(!(Test-Path "$env:STORAGE_LOCATION\.env")) { New-Item "$env:STORAGE_LOCATION\.env" -ItemType File}; `

docker run -d -p 3101:3001 `

--cap-add SYS_ADMIN `

-v "$env:STORAGE_LOCATION`:/app/server/storage" `

-v "$env:STORAGE_LOCATION\.env:/app/server/.env" `

-e STORAGE_DIR="/app/server/storage" `code>

mintplexlabs/anythingllm;

anythingllm在powerShell里运行

STORAGE_LOCATION 缓存设为D盘路径

3101 自定义端口

还可用Docker Compose方式, 这里我没有去试用

配置 AnythingLLM

关联Ollama,从它调取模型,这里我用了qwen:7b

在这里插入图片描述

创建管理员,一定要先My team, 用于团队/公司

在这里插入图片描述

总的大概是这样设置:

在这里插入图片描述

上传文档让模型训练:

在这里插入图片描述

可以集成google搜索

在这里插入图片描述

使用 AnythingLLM

AnythingLLM有个优势,它可以按不同业务逻辑分别上传文档,再按不同的用户去登陆使用

在这里插入图片描述

还可以集成到你的内部OA系统里去

在这里插入图片描述

在这里插入图片描述

以下是 AnythingLLM 的一些功能总结:

支持多用户实例和权限新的自定义可嵌入式聊天小部件,可以嵌入到你的网站支持多种文件类型(PDF,TXT,DOCX等)通过简单的用户界面管理你的向量数据库中管理文件提供两种聊天模式:对话和查询。对话保留先前的问题和修订。查询是针对文档的简单QA聊天过程中的引用100%适合云部署。“自带LLM”模型处理大文件时极有效的节约成本措施。你永远不必为将大型文件或记录输送到聊天机器人中支付费用,比其他的文件聊天机器人解决方案节省90%的费用。提供全面的开发者API用于自定义集成!

同类开源项目大多基于Python语言开发。AnythingLLM采用了Javascript,前端用React,后端用Node,对于全栈工程师非常友好。

前端: React和ViteJS,实现创建和管理大模型用到的知识库

后端: Node.js Express框架,实现向量数据库的管理和所有与大模型的交互

采集器: Node.js Express框架,实现对文档的处理解析

多用户模式

这一点对于企业级应用特别关键,AnythingLLM支持多用户模式,3种角色的权限管理。

系统会默认创建一个管理员(Admin)账号,拥有全部的管理权限。

第二种角色是Manager账号,可管理所有工作区和文档,但是不能管理大模型、嵌入模型和向量数据库。

普通用户账号,则只能基于已授权的工作区与大模型对话,不能对工作区和系统配置做任何更改。

交流q:

<code>link : 316853809



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。