智能私有知识库RAG企业级解决方案:开源工具AnythingLLM实操指南
zhezhongyun 2025-05-02 14:51 5 浏览
点击上方“顶层架构领域”,关注精彩与你分享
在数据安全和隐私保护日益受到重视的背景下,私有化部署大模型的需求日益增长。Mintplex Labs Inc. 推出的开源项目 AnythingLLM,为个人和企业提供了一种安全、高效且可定制的解决方案。该工具基于RAG(Retrieval-Augmented Generation)模型,允许用户将本地文档转换为可由大型语言模型(LLM)引用的格式,实现对话式问答和知识管理。
一、AnythingLLM的主要功能
- 多用户支持与权限管理:支持多用户同时访问,并可设置不同权限。
- 文档管理:支持PDF、TXT、DOCX等多种文档类型,并通过简易界面管理。
- 聊天模式:提供对话和查询两种模式,保留历史记录,支持引用标注。
- 技术栈简单:便于快速迭代和云部署。
- 成本效益:对大型文档一次性嵌入,显著节约成本。
- 开发者API:提供完整API支持自定义集成。
- LLM:包括任何开源的 llama.cpp 兼容模型、OpenAI、Azure OpenAI、Anthropic ClaudeV2、LM Studio 和 LocalAi。
- 嵌入模型:AnythingLLM 原生嵌入器、OpenAI、Azure OpenAI、LM Studio 和 LocalAi。
- 向量数据库:LanceDB(默认)、Pinecone、Chroma、Weaviate 和 QDrant。
二、AnythingLLM 部署实战
1. 安装Chroma Vectorstore:通过Docker容器部署,创建集合并验证设置。
git clone https://github.com/chroma-core/chroma.git
cd chroma
docker compose up -d --build
访问向量存储API文档: http://localhost:8000/docs
2. LocalAI部署:使用CLI应用程序启动API服务器,与开源模型交互。
git clone https://github.com/go-skynet/LocalAI
cd LocalAI
docker compose up -d --pull always
容器运行后,我们需要下载、安装模型以供测试使用
增加Bert 的转换器嵌入模型:MiniLM L6
# 增加 Bert 的转换器嵌入模型
curl http://localhost:8080/models/apply
-H "Content-Type: application/json"
-d '{ "id": "model-gallery@bert-embeddings" }'
# 测试嵌入模型
curl http://localhost:8080/v1/embeddings
-H "Content-Type: application/json"
-d '{ "input": "The food was delicious and the waiter...",
"model": "bert-embeddings" }'
{
"created": 1702050873,
"object": "list",
"id": "b11eba4b-d65f-46e1-8b50-38d3251e3b52",
"model": "bert-embeddings",
"data": [
{
"embedding": [
-0.043848168,
0.067443006,
...
0.03223838,
0.013112408,
0.06982294,
-0.017132297,
-0.05828256
],
"index": 0,
"object": "embedding"
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0
}
}
增加大模型LLM:Zephyr-7B-β
# 增加 Zephyr-7B-β 的模型
curl http://localhost:8080/models/apply
-H "Content-Type: application/json"
-d '{ "id": "huggingface@thebloke__zephyr-7b-beta-gguf__zephyr-7b-beta.q4_k_s.gguf",
"name": "zephyr-7b-beta" }'
# 开始 Zephyr-7B-β 对话
curl http://localhost:8080/v1/chat/completions
-H "Content-Type: application/json"
-d '{ "model": "zephyr-7b-beta",
"messages": [{
"role": "user",
"content": "Why is the Earth round?"}],
"temperature": 0.9 }'
{
"created": 1702050808,
"object": "chat.completion",
"id": "67620f7e-0bc0-4402-9a21-878e4c4035ce",
"model": "thebloke__zephyr-7b-beta-gguf__zephyr-7b-beta.q4_k_s.gguf",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "\nThe Earth appears round because it is
actually a spherical body. This shape is a result of the
gravitational forces acting upon it from all directions. The force
of gravity pulls matter towards the center of the Earth, causing
it to become more compact and round in shape. Additionally, the
Earth's rotation causes it to bulge slightly at the equator,
further contributing to its roundness. While the Earth may appear
flat from a distance, up close it is clear that our planet is
indeed round."
}
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0
}
}
3. 部署AnythingLLM:利用Mintplex Labs官方Docker镜像安装,然后配置LocalAI后端和嵌入模型。
docker pull mintplexlabs/anythingllm:master
export STORAGE_LOCATION="/var/lib/anythingllm" && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d -p 3001:3001 \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
mintplexlabs/anythingllm:master
访问:http://localhost:3001,我们可以在其中使用直观的 GUI 开始配置。
在配置中,我们选择 LocalAI 后端配置:通过 http://172.17.0.1:8080/v1 URL 访问
嵌入模型配置与相同的 LocalAI 后端保持一致。
接下来,配置 Chroma 向量数据库,使用URL http://172.17.0.1:8000
AnythingLLM 还有自定义选项和安全配置。为了本教程的简单起见,这里跳过这一步配置。
创建一个工作区,命名为“Playground”。
在“Playground”工作区,我们可以上传文档,进一步扩展本地知识库。
至此我们能够与文档开始进行交互式对话。
总结:
AnythingLLM是Mintplex Labs提供的创新开源工具,它们极大地简化了私有知识库的构建和管理。通过高效的RAG模型实现和直观的用户界面,这些工具不仅保障了数据的安全性,同时也提供了强大的交互式文档处理能力。随着技术的不断进步,这些工具将为企业和个人用户提供更多的可能性和价值。
了解更多详情:
AnythingLLM GitHub: https://github.com/Mintplex-Labs/anything-llm
LocalAI Docs: https://localai.io/
AnythingLLM: https://useanything.com/
关注公众号|顶层架构领域|精彩与您分享
相关推荐
- 「魔兽世界怀旧服」精简界面,简化操作,简单实用的宏分享
-
前言大家好,我是涵叔,期待内涵。今天给大家带来一些比较实用的入门级宏分享及简单讲解。宏是什么呢,简单理解就是可以通过一些代码将多个技能通过某种逻辑或者附加按键的方式绑定到一个按键之上,以此来简化操作,...
- 微信小程序学习笔记:Page()(微信小程序page中的data)
-
Page()用来注册小程序中的一个页面,接受一个Object类型参数,其指定页面的初始数据、生命周期回调、事件处理函数等。Page方法的object参数主要构成如下:属性说明datadata是页面渲染...
- iOS开发之--监听事件全攻略(一)协议代理
-
2016年才开始没几天,IT业界大事件快播庭审,最近两天看了快播庭审,真是精彩,王欣辩护人金嘴真是绝了,话说快播辩护人的金嘴,句句金腔,我很赞同辩护人道出当今互联网业界的一些不合规矩或者不合法律的...
- 软网推荐:数据安全清除 要快还要狠
-
数据安全不仅是要保护数据不被窃取或删除,另一方面还包括清理掉的数据不能被恢复。因此,简单地删除文件或格式化磁盘的做法是不安全的。借助于两款小软件,便可做到快速而安全地清除任意文件、文件夹或磁盘分区、整...
- Axure高保真教程:通过文本框维护下拉列表选项
-
常见的用户界面元素之一是下拉列表(DropdownList),提供一组可选项供用户选择。该元素通常显示为展开的列表形式,用户可以通过单击或选择列表中的选项。对于下拉列表的选项,一般由系统代码组成,因...
- IT技工专用装备:ORICO奥睿科SATA3.0高速双硬盘底座开箱
-
作为一句长期战斗在电脑维修第一线的艺术家,来几件很Bigger的装备是非常必要的!比如这一样,就非常上档次:我买的时候259,强哥为了双12,把价格调成358了?说说奥睿科的产品,个人用过一些,感觉...
- 用markdown语法制作一个好看的网址导航页面(markdown-web-nav)
-
之前为了让谷歌浏览器里的书签放到博客markdown文件下,写过一个书签和markdown互转的小工具parse-bookmark,当初也是为了能直接在博客中生成一个网址导航的页面,方便随时...
- Apple Watch应用开发:从再造墨迹天气谈起
-
编者按:本文作者刘超在2012年加入墨迹天气,主要负责iOS平台软件开发工作。在今年年初,墨迹天气团队针对AppleWatch的硬件与交互特点,对应用做了重新设计与开发。作者从软件开发角度,分享了墨...
- WXML开发指南及最佳实践(wxml技术)
-
以下是关于WXML(WeiXinMarkupLanguage)的开发指南,涵盖基础语法、核心功能及最佳实践,帮助开发者高效构建微信小程序界面。一、WXML基础什么是WXML?OWXML...
- 「杰控软件」A045. 倍福_TCADSDLL
-
A045.倍福_TCADSDLL□支持倍福CX1000通讯,可读写变量(%Var)、%I、%Q、%M;□计算机中需先安装TwinCAT软件;□确认或修改CX1000的IP地址:...
- WPF使用基础教程(wpf教程入门系列)
-
一、WPF简介WPF:WPF即WindowsPresentationFoundation,翻译为中文“Windows呈现基础”,是微软推出的基于WindowsVista的用户界面框架,属于.NE...
- 源码推荐(01.05):自适应边界的散开按钮,Swift仿斗鱼TV
-
自适应边界的散开按钮(上传者:SnowCheng)无聊写的,接口已经留好,主要方法也注释了,大家有用就拿去。Swift仿斗鱼TV(上传者:静听雨落)感谢chenqi777提供的源码和接口在学习Swi...
- HTML DOM Form 对象(html对象方法)
-
Form对象Form对象代表一个HTML表单。在HTML文档中<form>每出现一次,Form对象就会被创建。表单用户通常用于收集用户数据,包含了input元素如:...
- 金山文档全新升级-界面篇(金山文档更新后如何恢复)
-
产品背景ProductStory云服务时代的到来万物上云、智慧互联,百万级服务器组成的云端计算时代已经到来,过去困扰个人电脑的效率、安全及规模化问题已不复存在。链接各端数据的金山文档万物皆可上云,...
- iOS开发中两个常见问题的处理(ios开发案例)
-
一、“UnknownclassXXViewControllerinInterfaceBuilderfile.”问题处理最近在静态库中写了一个XXViewController类,然后在主工程...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- HTML 参考手册 (28)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML常用标签 (29)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- HTML button formtarget 属性 (30)