当前位置:首页 > 技术分析 > 正文内容

智能私有知识库RAG企业级解决方案:开源工具AnythingLLM实操指南

ruisui882个月前 (02-28)技术分析26

点击上方“顶层架构领域”,关注精彩与你分享

在数据安全和隐私保护日益受到重视的背景下,私有化部署大模型的需求日益增长。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/

关注公众号|顶层架构领域|精彩与您分享

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2353.html

标签: docker plex
分享给朋友:

“智能私有知识库RAG企业级解决方案:开源工具AnythingLLM实操指南” 的相关文章

【幼儿园收费管理系统】——中小型幼儿园收费管理的好帮手!

为了让幼儿园收费管理更加高效、便捷,我们推出了《幼儿园收费管理系统》!这款软件专为中小型幼儿园设计,集基础信息、幼儿管理、收费管理、车辆管理、生日提醒、报表统计等功能于一身,是您管理幼儿园的得力助手!一、基础设置:一款好的软件,首先要让您轻松上手。我们的系统提供了幼儿园信息、年级设置、班级设置、餐...

迁移GIT仓库并带有历史提交记录

迁移git仓库开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。我们可以这样做:使用--mirror模式会把本地的分支都克隆。// 先用--bare克隆裸仓库 git clone git@gitee.com:xxx/testApp...

再来一波黑科技工具,低调使用

静读天下静读天下是一个特别优秀的电子书阅读器。它上面有多个在线书库,像古登堡计划,很多种优秀的书杂志,都可以下载来阅读。它还能智能识别章节功能,还支持外置的语音阅读功能。它支持多种文本格式,比如说txt,pdf,epub,mobi等等。为了便于阅读它还有10 种配色方式,还有夜间模式。不过免费版有广...

佳能 EOS R8 深度评测

佳能 EOS R8 的定位是入门级全画幅无反光镜可换镜头相机。尽管在产品阵容中处于这一位置,R8 仍然是一个强大的相机,配备了先进的 R6 II 同款成像传感器、快速处理器和令人难以置信的自动对焦系统,体积小、重量轻、价格低。这款相机是发烧友、旅行者、家庭以及任何想要全画幅传感器相机的人的绝佳选择。...

微信外H5跳转小程序——组件(vue项目)

场景有个H5(vue项目),需要实现点击商品item跳转到小程序,微信内和微信外都要支持,这里我们只介绍一下H5在微信外的跳转。如图所示,红框内是一个商品,就是点击这里,要跳转小程序:配置微信小程序云开发(云函数)1、开通云开发然后选择免费额度2、云开发权限设置找到权限设置,把这里的「未登录用户访问...

SpringBoot2.X+Vue+UniAPP,全栈开发医疗小程序

//xia仔のke:chaoxingit.com/208/全栈开发医疗小程序:利用Spring Boot 2.X、Vue和UniApp在当今数字化时代,医疗行业也在不断地迈向信息化和智能化的方向。开发一款医疗小程序,能够为用户提供便捷的医疗服务和信息查询,为医疗机构提供高效的管理和服务渠道。本文将介...