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

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

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

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

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

「 VUE3 + TS + Vite 」父子组件间如何通信?

组件之间传值,大家都很熟悉,涉及到 VUE3 +TS 好多同学就无从下手了,所以分享这篇文章,希望看完后提起 VUE3+TS 能够不慌不忙。平时使用的函数如:ref、reactive、watch、computed 等需要先引入才能使用,但是本篇文章介绍的 defineProps、withDefaul...

Git 分支管理策略与工作流程

(预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。看完这篇文章后,涉及GIT的工作中就会减少因为规范问题导致工作出错,当然如果你现在暂时还未有合...

博信股份新战略后再推新品 TOPPERS E2耳机售价199元

中新网6月21日电 20日,博信股份在北京正式推出新品TOPPERS主动降噪耳机E2,这是博信股份继2月战略暨新品发布会后的第二次新品亮相。价格方面,TOPPERS主动降噪耳机E2零售价199元,并于6月20日下午4点在京东商城公开销售。据介绍,TOPPERS主动降噪耳机E2采用AMS(奥地利微电子...

「云原生」Containerd ctr,crictl 和 nerdctl 命令介绍与实战操作

一、概述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockershim。在V1.24起的版本的kubelet就彻底移除了dockershim,改为默认使用Conta...

佳能 EOS R8 深度评测

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

Vue中的路由配置常用属性

router:路由页面跳转的核心库;引入路由:import VueRouter from 'vue-router'; 注册路由:const router = new VueRouter({ })mode:模式路由有hash history两种模式:hash模式URL中包含#,#后边是...