本地源码方式部署启动MaxKB知识库问答系统,一篇文章搞定!

MaxKB 是一款基于 LLM 大语言模型的知识库问答系统。MaxKB = Max Knowledge Base,旨在成为企业的最强大脑。

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

项目的官方地址
源码方式部署的官方文件指导

获取官方的源码

首先需要获取一下官方的源代码,这里建议直接就使用官方的最新发行版就可以。
在这里插入图片描述

Pycharm中的个性化配置

这里需要注意的一点是你的本地python环境需要是3.11.x的版本,这里我使用的是python3.11.9

在这里插入图片描述

pycharm集成开发环境中配置python环境地址

这里使用虚拟环境便于后期的依赖包管理,这里按照这样子配置就可以。

在这里插入图片描述
在这里插入图片描述

根目录下执行安装poetry包管理器

pip install poetry

配置连接数据库文件信息

准备配置文件

在这里插入图片描述

# 文件名:config_example.yml
# 数据库配置
DB_NAME: maxkb
DB_HOST: localhost
DB_PORT: 5433
DB_USER: root
DB_PASSWORD: shuyixiao
DB_ENGINE: django.db.backends.postgresql_psycopg2

# 模型相关配置
# 模型路径 如果EMBEDDING_MODEL_NAME是绝对路径则无效,反之则会从https://huggingface.co/下载模型到当前目录
EMBEDDING_MODEL_PATH: /opt/maxkb/model/
# 模型名称 如果模型名称是绝对路径 则会加载目录下的模型,如果是模型名称,则会在https://huggingface.co/下载模型 模型的下载位置为EMBEDDING_MODEL_PATH
EMBEDDING_MODEL_NAME: /opt/maxkb/model/shibing624_text2vec-base-chinese

配置数据库

这里是重点一定要注意,由于数据库使用的是postgresql,这里真心不建议使用安装包安装,踩坑踩了很久,最后还是使用Docker的方式进行安装的,所以也希望大家别白嫖我给我点个关注,可以欢迎大家加入我的社区与我进行交流

编写postgresql打包文件

在这里插入图片描述

# Use the official PostgreSQL 15 image as a base
FROM postgres:15

# Install necessary packages and clone the pgvector repository
RUN apt-get update && \
    apt-get install -y \
        postgresql-server-dev-15 \
        build-essential \
        git && \
    git clone https://github.com/pgvector/pgvector.git

# Build and install the pgvector extension
RUN cd pgvector && \
    make && \
    make install

# Clean up
RUN apt-get remove --purge -y \
        build-essential \
        git && \
    apt-get autoremove -y && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* /pgvector

# Set the default command to run when starting the container
CMD ["postgres"]

执行打包命令打包

一定要在文件所在目录下执行不然会报错

docker build --no-cache -t postgres-with-vector .

运行容器

由于我本地已经使用安装包的方式装了postgresql,所以这里使用5433端口

docker run --name my-postgres -e POSTGRES_USER=root -e POSTGRES_PASSWORD=shuyixiao -e POSTGRES_DB=maxkb -p 5433:5432 -d postgres-with-vector

验证安装:检查 pgvector 扩展文件是否安装正确

此命令应列出所有可用的扩展。专门查找 pgvector.control .

docker exec -it my-postgres ls /usr/share/postgresql/15/extension/

在这里插入图片描述

创建扩展:

docker exec -it my-postgres psql -U root -d maxkb -c "CREATE EXTENSION vector;"

验证扩展:

docker exec -it my-postgres psql -U root -d maxkb -c "\dx"

在这里插入图片描述

配置数据库信息

CREATE DATABASE "maxkb";
\c "maxkb";
CREATE EXTENSION "vector";

在这里插入图片描述

启动后端项目

需要注意一点就是要在跟目录下面执行

创建venv

这一步要是上面配置过pycharm的环境就不需要走这一步了

#win
python -m venv venv

#linux/mac
python3 -m venv venv

激活venv

#win  
.\venv\Scripts\activate

#linux/mac
source venv/bin/activate

安装后端需要的依赖

poetry install

这里由于之前安装过,所以执行起来就很快
在这里插入图片描述

启动项目

python main.py start

在这里插入图片描述
在这里插入图片描述

启动前端项目

这里启动前端项目就比较简单,由于这个项目是使用vue3开发的,所以就是本地的node.js版本不能太低不然会报错

要是大家不知道如何动态切换本机的node版本可以查看我的另外一篇文章 如何使用 nvm-windows 这个工具来管理你电脑上的Node.js版本

先在ui执行安装前端需要的依赖

npm install

在这里插入图片描述

启动项目

在这里插入图片描述

最后就是效果的展示

初始的账号admin 密码 MaxKB@123… 登录之后会提示你修改密码
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

踩坑与总结

  1. 首先部署时候一定要看官网的配置要求,数据库和python版本一定要对应上,不要太高或者太低。
  2. 数据库这块真心推荐使用docker的方式运行不然真的有的依赖真心难装。下面这个截图就是我之前本地部署时候总是出现的报错,
    好在最后通过docker方式部署数据库解决了
    在这里插入图片描述
    最后说一句(求关注,别白嫖我)
    如果这篇文章对您有所帮助,或者有所启发的话,帮忙扫描下发二维码关注一下,您的支持是我坚持写作最大的动力。
    求一键三连:点赞、转发、在看。
    关注公众号:【舒一笑的架构笔记】,在公众号中回复:面试、代码神器、开发手册、时间管理有超赞的粉丝福利,另外回复:加群,可以跟很多BAT大厂的前辈交流和学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/653629.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

补天计划 | 多款产品免费试用!

HVV时期网络安全攻防对抗的不对称性特别明显,红方会准备极为丰富的武器库与全方位的攻击手段。对蓝方而言,只要防线中存在任意盲区或短板便可能导致整条防线被绕过,顷刻间自己的工作成果化为安全对抗领域“马奇诺防线”。 攻防对抗中是长时间…

VSCode自动生成代码片段

1. 代码片段配置入口 输入:snipp 选择 Configure User Snippets 然后再选择 New Global Snippets file 输入 新建文件名称,然后按回车键。 2. 编辑代码模板 文件头和函数头模板: {"FileHeader":{"scope": "…

OrangePi AIpro 性能测试以及使用体验

OrangePi AIpro 性能测试以及使用体验 1. 介绍 OrangePi AIpro(8T)采用昇腾AI技术路线。 具体为4核64位处理器AI处理器,集成图形处理器,支持8TOPS AI算力拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4…

如果一个开发初学者从今天开始,他们应该学习什么?

What should a beginner developer learn if they were to start today? by Scott Hanselman 如果从今天才开始学习,新手开发者要学习什么? 新的开发人员今天应该从哪里开始? 他们应该学习什么来为自己的职业生涯做好准备?Sco…

PWN入坑指南

CTF的PWN题想必是很多小伙伴心里的痛,大多小伙伴不知道PWN该如何入门,不知道该如何系统性学习 0x01开篇介绍 PWN 是一个黑客语法的俚语词 ,是指攻破设备或者系统 。发音类似"砰",对黑客而言,这就是成功实施黑…

从多站点到多活,XEOS 对象数据容灾能力再提升

近日, XSKY SDS V6.4 新版本发布,其中 XEOS V6.4 全新升级并完善了统一命名空间功能,更进一步增强和完善了异地容灾方案,配合强一致代理读,可以实现异地多活;同时大幅降低管理复杂度,有效降低容…

K8S认证|CKA题库+答案| 13. sidecar 代理容器日志

目录 13、使用 sidecar 代理容器日志 CKA v1.29.0模拟系统 下载试用 题目: 开始操作: 1)、切换集群 2)、生成yaml文件 3)、官网找模板 4)、编辑yaml文件 5)、应用yaml文件 ​6&…

CyberDAO全国行第三站·西安圆满落幕

CyberDAO全国行第三站于2024年5月27日在西安顺利召开。以聚势启新,聚焦Web3新机遇,开启Web3财富密码为本次会议的思想路线,汇聚了大批Web3爱好者齐聚古城西安。CyberDAO致力于帮助更多Web3爱好者捕获行业价值。 以圆桌论坛《机遇拥抱Web3》拉…

三、Ollama导入大模型(.Net8+SemanticKernel+Ollama)本地运行自己的大模型

Ollama导入大模型 一、导入Ollama大模型1、使用run命令2、使用Modelfile方式 二、导入自定义大模型(Ollama官网以外的大模型)三、使用OpenWebUI导入大模型 Ollama可以导入官方提供的大模型,也可以导入huggingface上的自定义大模型&#xff08…

深入Java:JSON解析与操作的艺术

哈喽,大家好,我是木头左! 一、初识JSON:数据格式的优雅舞者 在现代Web开发中,JSON(JavaScript Object Notation)以其轻量级和易于阅读的特点成为了数据交换的首选格式。它基于JavaScript的一个…

长安链使用Golang编写智能合约教程(二)

本篇说的是长安链2.3.的版本的智能合约,虽然不知道两者有什么区别,但是编译器区分。 教程三会写一些,其他比较常用SDK方法的解释和使用方法 编写前的注意事项: 1、运行一条带有Doker_GoVM的链 2、建议直接用官方的在线IDE去写合…

2024-2030数据集成成熟度曲线(一)

作者 | 郭炜 导读:最新发布的《技术成熟度曲线2024》全面评估数据集成技术架构的7个维度,包括技术成熟度、技术难度、业务价值、技术成熟周期、管理协作难度、大模型结合等评估维度,报告篇幅较长,我们将报告分为3篇系列文章&#…

企业微信H5授权登录

在企业中如果需要在打开的网页里面携带用户的身份信息,第一步需要获取code参数 如何实现企业微信H5获取当前用户信息即accessToken? 1.在应用管理--》创建应用 2.创建好应用,点击应用主页-》设置-》网页-》将授权链接填上去 官方文档可以看…

配餐中的红酒温度控制与口感体验

在红酒配餐中,温度控制是影响口感体验的重要因素之一。合适的温度可以释放红酒的香气和风味,使酒体更加圆润和丰富。云仓酒庄雷盛红酒以其卓着的品质和与众不同的口感,成为了红酒爱好者们的首要选择品牌。下面将介绍如何通过温度控制提升红酒…

哈夫曼树,哈夫曼编码和线索二叉树

前言 在数据压缩中,如电脑中的压缩软件,哈夫曼编码应用比较广泛,因此被称作最优二叉树。下面时哈夫曼树的一些定义。 哈夫曼树 定义 代码 下面时哈夫曼树的初始化和创建: #include "stdio.h"#define MAXSIZE 5 typedef struct {int weigth;int parent, lchi…

2024年最新实景无人自动直播软件揭秘:降低成本,提升效率

在信息技术迅猛发展的时代,实景无人自动直播软件成为了各行各业的关注焦点。随着2024年的到来,最新的实景无人自动直播软件将以其降低成本、提升效率的特点引领行业。本文将揭秘这一创新软件的工作原理,并探讨其在各个领域的应用,…

常用图像分类预训练模型大小及准确度比较

近年来,深度学习技术的发展使得图像分类任务变得越来越容易。预训练模型的出现更是使得图像分类任务变得更加简单和高效。然而,随着预训练模型的数量和大小的增加,我们需要了解每个模型的特点和优缺点,以便更好地选择和使用它们。…

国内半导体龙头企业的自动化转型之旅

在当今高速发展的科技时代,半导体行业正迎来前所未有的挑战与机遇。位于此浪潮前端的,是国内一家领先的半导体集成电路封装测试企业。凭借其规模和创新实力,该公司不仅在国内市场名列前茅,更是在全球半导体行业中占据了一席之地。…

.DFS.

DFS 全称为Depth First Search,中文称为深度优先搜索。 这是一种用于遍历或搜索树或图的算法,其思想是: 沿着每一条可能的路径一个节点一个节点地往下搜索, 直到路径的终点,然后再回溯,直到所有路径搜索完为止。 DFS俗…

排序算法——上

一、冒泡排序: 1、冒泡排序算法的思想 我们从左边开始把相邻的两个数两两做比较,当一个元素大于右侧与它相邻的元素时,交换它们之间位置;反之,它们之间的位置不发生变化。冒泡排序是一种稳定的排序算法。 2、代码实现…