本地源码方式部署启动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大厂的前辈交流和学习。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI视频智能分析技术赋能营业厅:智慧化管理与效率新突破

一、方案背景 随着信息技术的快速发展,图像和视频分析技术已广泛应用于各行各业,特别是在营业厅场景中,该技术能够有效提升服务质量、优化客户体验,并提高安全保障水平。TSINGSEE青犀智慧营业厅视频管理方案旨在探讨视频监控和视…

七人拼购新模式:革新购物体验,共创价值

在数字时代,消费者的购物体验正经历着前所未有的变革。七人拼购模式作为一种新兴的购物方式,通过汇集消费者的力量,实现商品价格的最优化,让消费者享受到前所未有的实惠与便利。以下,我们将以一款标价499元的商品为例&…

消防体验馆升级,互动媒体点亮安全之路!

在当下这个科技日新月异的时代,多媒体互动技术已深深融入现代化消防体验馆的设计之中,它们不仅为这些场馆注入了前所未有的创意与活力,更通过其互动性、趣味性等独特优势,彻底革新了消防宣传教育的传统模式。如今,这种…

联想打印APP添加打印机方法

联想打印APP添加打印机操作方法: 1、在手机上下载“联想打印”APP; 2、打开“联想打印”APP,然后在软件内右下角找到“我的”图标并选择; 3、点击“请登录/注册”; 4、勾选“我已阅读并同意”然后在上面填写手机号码后&#xff0…

Ansys Speos|微光学结构尾灯设计

附件下载 联系工作人员获取附件 汽车照明行业在过去几年中有了很大的发展,对复杂光学结构的需求需要先进的设计能力。Speos 3D Texture是一个独特的功能,允许在给定的身体表面以图案的形式设计和模拟微纹理。它的优点依赖于图案(网格)的光学模拟模型&a…

Java—二分查找

介绍 二分查找(Binary Search)是一种在有序数组中查找特定元素的搜索算法。其基本思想是将目标值与数组中间的元素进行比较: 如果目标值等于中间元素,则查找成功。如果目标值小于中间元素,则在数组左半部分继续进行二…

点赋科技:闪耀荆州科技活动周,引领创新未来

在荆州 2024 科技活动周的舞台上,点赋科技以其卓越的科技实力和创新精神,成为了众人瞩目的焦点。 点赋科技,作为一家引领科技潮流的企业,一直致力于推动科技创新的发展。此次参加荆州科技活动周,更是展示了其在科技领域…

网络——多区域OSPF配置(OSPF系列第1篇)

简介 路由协议OSPF全称为Open Shortest Path First,也就开放是的最短路径优先协议,使用链路状态路由算法,isis协议也是使用链路状态路由算法。而RIP协议使用距离矢量路由算法。 区域 为了能够降低OSPF计算的复杂程度,OSPF采用分…

【NumPy】全面解析NumPy随机数生成器:使用numpy.random的实用技巧

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

产线虚拟现实vr仿真软件开发在线上能全面呈现企业品质和专业度

在数字化浪潮中,上海VR全景场景制作公司凭借其领先的VR全景制作技术,正为各行各业带来前所未有的沉浸式体验。无论是学校企业场地的生动展示,还是汽车内饰与外观的360度全景呈现,我们都能通过VR虚拟现实制作技术,让您的…

斯坦福大学ALOHA家务机器人团队发布了最新研究成果—YAY Robot语言交互式操作系统

ALOHA YAY 演示视频-智能佳 斯坦福的ALOHA家务机器人团队,发布了最新研究成果—Yell At Your Robot(简称YAY),有了它,机器人的“翻车”动作,只要喊句话就能纠正了! 标ALOHA2协作平台题 而且机器…

SpringSecurity登录和校验流程简述

认证: 验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户 授权: 经过认证后判断当前用户是否有权限进行某个操作 一、入门案例实现 搭建springboot工程后,创建启动类和Controller,引入SpringSecurity依…

CCF- CSP 2018.12 - 1.2题 Java语言解题

2018.12-1 小明上学 import java.util.Scanner;public class text01_RedLight {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int r scanner.nextInt();int y scanner.nextInt();int g scanner.nextInt();int n scanner.nextInt();in…

springboot 两个相同类型的Bean使用@Resouce加载

问题描述 有两个相同类型的Bean 使用Service等注解注入或者Bean注入启动以后报错: qualifying bean of type com.fasterxml.jackson.databind.ObjectMapper available: expected single matching bean but found 2提示有相同的类型两个。 解决 * 每个Bean Resour…

第15章-超声波避障功能 HC-SR04超声波测距模块详解STM32超声波测距

这个是全网最详细的STM32项目教学视频。 第一篇在这里: 视频在这里 STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随 15.1-超声波测距 完成超声波测距功能、测量数据显示在OLED屏幕上 硬件介绍 使用&#…

Creo装配体中只显示一部分零部件

从模型树中选中要显示的零部件,也可以结合Ctrl框选的方式选择对象。然后在模型树右击等会弹出选项,点选----即可

AD23中一些好用的功能

1.关闭在线DRC功能,可以避免布线时候一卡一卡的问题: 取消在线DRC的勾选: 2.AD的在线封装库,非常好用: 如何优雅地服用AD 21的在线元件库 – 吴川斌的博客 (mr-wu.cn) 3.如何恢复Altium Designer23默认窗口布局 打开…

小红书推流机制底层逻辑

小红书推流机制底层逻辑 很多做运营的朋友问小红薯怎么玩❓ 小红书的核心逻辑流量是不是玄学❓ 今天就来说说小红书的流量算法机制🔥 ①电脑审核 ②分配初始流量 ③增加流量 ④推荐结束

DINO中为什么教师模型用大图,学生模型用小图

在 DINO(可以理解为由DIstillation和NO labels的缩写)中,使用不同的图像裁剪策略对教师模型和学生模型进行训练有其特定的原因。具体来说,教师模型使用大图(global views),学生模型则同时使用大…

鸿蒙OS开发:【一次开发,多端部署】(音乐专辑主页)

一多音乐专辑主页 介绍 本示例展示了音乐专辑主页。 头部返回栏: 因元素单一、位置固定在顶部,因此适合采用自适应拉伸,充分利用顶部区域。专辑封面: 使用栅格组件控制占比,在小尺寸屏幕下封面图与歌单描述在同一行。歌曲列表: 使用栅格组…