构建本地大语言模型知识库问答系统

发布于:2024-05-06 ⋅ 阅读:(32) ⋅ 点赞:(0)

MaxKB

2024 年 4 月 12 日,1Panel 开源项目组正式对外介绍了其官方出品的开源子项目 ——MaxKB(github.com/1Panel-dev/MaxKB)。MaxKB 是一款基于 LLM(Large Language Model)大语言模型的知识库问答系统。MaxKB 的产品命名内涵为 “Max Knowledge Base”,为用户提供强大的学习能力和问答响应速度,致力于成为企业的最强大脑。

2024 年 4 月 16 日,MaxKB 成功登顶 GitHub Trending 主榜单,自项目发布后快速收获超过 1.8k Stars 和超过 5,000 次下载。

2024 年 4 月 25 日 已有 3.5k Stars 。

在这里插入图片描述

MaxKB 的优点:

  • 多模型支持:支持对接主流的大模型,包括本地私有大模型(如 Llama 2)、OpenAI、通义千问、Kimi、Azure OpenAI 和百度千帆大模型等;
  • 开箱即用:支持直接上传文档、自动爬取在线文档,支持文本自动拆分、向量化,智能问答交互体验好;
  • 无缝嵌入:支持零编码快速嵌入到第三方业务系统。

除了基于 OpenAI、百度千帆大模型等在线大模型快速搭建知识库问答系统外,MaxKB 还支持与以 Ollama 为代表的本地私有大模型相结合,快速部署本地的知识库问答系统。

下面介绍 快速部署 MaxKB 和 Ollama,并在 MaxKB 中接入 Ollama 的 LLM 模型,搭建基于大语言模型的本地知识库问答系统。

MaxKB 安装部署

部署方式一:通过 1Panel 应用商店,快速安装 MaxKB 应用。
在这里插入图片描述

部署方式二:Docker 安装。(Docker 部署不再赘述。)

docker run -d --name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data 1panel/maxkb
# 用户名: admin
# 密码: MaxKB@123..

选择使用 Docker 部署方式。注意设置挂载目录。

部署之后,界面如下:
在这里插入图片描述
使用教程:MaxKB 文档

MaxKB 支持嵌入到第三方系统中

在这里插入图片描述

Ollama

Ollama 是一个基于 Go 语言开发的简单易用的本地大语言模型运行框架。专为在本地运行大型语言模型而设计。该框架将模型权重、配置和数据整合到一个包中,优化了设置和配置细节,包括 GPU 使用情况,从而简化了在本地运行大型模型的过程。

可以将其类比为 docker(具有实现命令行交互中的 list,pull,push,run 等命令),事实上它也的确制定了类 docker 的一种模型应用标准,

官方提供了类似 GitHub,DockerHub 一般的,可类比理解为 ModelHub,用于存放大语言模型的仓库(有 llama 2,mistral,qwen 等模型,同时你也可以自定义模型上传到仓库里来给别人使用)。

在管理模型的同时,它还基于 Go 语言中的 Gin 框架提供了一些 Api 接口,让你能够像跟 OpenAI 提供的接口那样进行交互。

Ollama 安装

下载链接:https://ollama.com/download
在这里插入图片描述

  • macOS:https://ollama.com/download/Ollama-darwin.zip
  • Windows:https://ollama.com/download/OllamaSetup.exe
  • Linux:curl -fsSL https://ollama.com/install.sh | sh
  • Docker:https://hub.docker.com/r/ollama/ollama

模型管理

ollama 安装之后,与模型交互就是通过命令来进行的。

  • ollama list:显示模型列表
  • ollama show:显示模型的信息
  • ollama pull:拉取模型
  • ollama push:推送模型
  • ollama cp:拷贝一个模型
  • ollama rm:删除一个模型
  • ollama run:运行一个模型

运行大模型

ollama 安装之后,可以在本地一键启动大模型(模型仓库见: https://ollama.com/library):

ollama run qwen:1.8b  //这里使用千问1.8b https://ollama.com/library/qwen

启动之后可以直接在终端交互:
在这里插入图片描述
也可以使用 API 调用:

curl http://localhost:11434/api/generate -d '{
  "model": "qwen:1.8b",
  "prompt": "你好",
  "stream": false
}'

MaxKB + Ollama

http://host.docker.internal:11434/
在这里插入图片描述