用AnythingLLM构建专属知识库
什么是 AnythingLLM ?
AnythingLLM
是Mintplex Labs Inc.
开发的一款可以与任何内容聊天的私人ChatGPT
,是高效、可定制、开源的企业级文档聊天机器人解决方案。它能够将任何文档、资源或内容片段转化为大语言模型(LLM
)在聊天中可以利用的相关上下文。
软件特点:
- 多用户实例支持和权限管理
- 全新的可嵌入式聊天小部件,适用于您的网站
- 支持多种文档类型(
PDF
、TXT
、DOCX
等) - 通过简单的用户界面管理您的向量数据库中的文档
- 两种聊天模式:对话模式和查询模式。对话模式保留之前的问题和修改记录。查询模式用于对您的文档进行简单的问答。
- 聊天中的引用文献功能
- 完全适用于云部署。
- “自带
LLM
“模型。 - 极其高效的成本节约措施,用于管理非常大的文档。您将永远不会为嵌入的大型文档或转录付费超过一次。比其他文档聊天机器人解决方案更省成本,降低
90%
。 - 提供完整的开发者
API
,用于自定义集成!
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 anythingllm
,选择第一个 mintplexlabs/anythingllm
,版本选择 latest
。
权限
勾选 使用高权限执行容器
卷
在 docker
文件夹中,创建一个新文件夹 anythingllm
,并在其中建一个子文件夹 data
在本机上新建一个 env.txt
文件,上传到 data
目录中,在文件中写入下面的内容
1 | SERVER_PORT=3001 |
现在的目录结构
默认 data
目录,Everyone
只有读权限
要给 data
目录赋予 Everyone
读写权限
对于 env.txt
文件
同样也要给予 Everyone
读写权限
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/anythingllm/data |
/app/server/storage |
存放数据库等 |
docker/anythingllm/env.txt |
/app/server/.env |
环境变量文件 |
前一项是通过
添加文件夹
,后一项通过添加文件
进行挂载
端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
本地端口 | 容器端口 |
---|---|
3014 |
3001 |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
1 | # 新建文件夹 anythingllm 和 子目录 |
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 anythingllm 和 子目录 |
运行
启动过程有点长,要稍等一会儿,当日志中显示 Primary server in HTTP mode listening on port 3001
时
在浏览器中输入 http://群晖IP:3014
就能看到主界面
设置向导
点中间的 Get started
开始设置向导
LLM Preference
如果你有 OpenAI
的 key
,可以选这个试试。不过老苏没有,正好前一段装了 Ollama
还没删,所以 LLM
就选择了 Ollama
Embedding Preference
选择了默认的 AnythingLLM Embedder
,这是 AnythingLLM
自带的
Vector Database Connection
选择了默认的 LanceDB
,这同样是 AnythingLLM
自带的
接下来是设置 logo
和用户
这是我们选择的数据处理和隐私
创建工作空间
设置完成后的主界面
这个时候你再打开 env.txt
文件,已经根据你的设置做了改变
所以是完全可以通过设置来跳过向导的;
上传文档
点上传按钮
打开上传界面,可以上传文档,也可以指定网站
网上下了一份 华为投资控股有限公司2022年年度报告
下载地址:https://www-file.huawei.com/minisite/media/annual_report/annual_report_2022_cn.pdf
选中上传完成的文件,点 Move 1 file to workspace
将文件移入工作空间
点 Save and Embed
开始处理文档,等待处理完成
开始提问
进入工作空间
开始提问
答案感觉上都跟文档对不上,老苏切换 Chat Model
为 gemma:2b
时,又总是超时,可能原因还是机器太弱了吧
参考文档
Mintplex-Labs/anything-llm: A multi-user ChatGPT for any LLMs and vector database. Unlimited documents, messages, and storage in one privacy-focused app. Now available as a desktop application!
地址:https://github.com/Mintplex-Labs/anything-llmOllama - AnythingLLM by Mintplex Labs
地址:https://docs.useanything.com/feature-overview/llm-selection/ollama