离线部署的MaxKB更换向量模型

1. LLM与向量模型之间的联系

LLM依赖于向量模型来表示和处理语言数据,而向量模型提供了一种数学框架来实现这一点。

2. 具体操作步骤

2.1 下载离线安装包后使用安装脚本正常部署MaxKB

安装文档参考,点这里
部署操作

2.2 安装完后在安装目录下创建相应目录为数据持久化做准备

mkdir -p /opt/maxkb/model

2.3 下载向量模型放到/opt/maxkb/model下

向量模型下载地址
MaxKB默认使用的是 moka-ai/text2vec ,还可以使用其他的向量模型,我使用的是m3e-large。具体模型之间的对比见下图:
模型对比

我放置的向量模型位置如下图所示:
放置位置参考

2.4 修改MaxKB的compose文件

编辑 /opt/maxkb/docker-compose.yml 文件

version: "3.9"
services:
  maxkb:
    container_name: maxkb
    hostname: maxkb
    restart: always
    image: ${MAXKB_IMAGE_REPOSITORY}/maxkb:${MAXKB_VERSION}
    # 这里是我添加的模型参数,指定对应你的模型(注意是要写容器内的模型应用地址)
    environment:
      - MAXKB_EMBEDDING_MODEL_NAME=/opt/maxkb/model/embedding/m3e-large
    #
    ports:
      - "${MAXKB_PORT}:8080"
    healthcheck:
      test: ["CMD", "curl", "-f", "localhost:8080"]
      interval: 10s
      timeout: 10s
      retries: 120
    volumes:
      - /tmp:/tmp
      - ${MAXKB_BASE}/maxkb/logs:/opt/maxkb/app/data/logs
    # 这里我把向量模型持久化出来了
      - ${MAXKB_BASE}/maxkb/model:/opt/maxkb/model/embedding
    env_file:
      - ${MAXKB_BASE}/maxkb/conf/maxkb.env
    depends_on:
      pgsql:
        condition: service_healthy
    networks:
      - maxkb-network
    entrypoint: ["docker-entrypoint.sh"]
    command: "python /opt/maxkb/app/main.py start"

networks:
  maxkb-network:
    driver: bridge
    ipam:
      driver: default

2.5 重启MaxKb服务

kbctl stop && kbctl start

2.6 配置MaxKB离线向量模型

系统管理 > 模型设置 > 私有模型 > 添加模型 > 选择模型类型为向量模型
在这里插入图片描述

<think>好的,用户想了解MaxKB系统的后端实现方式,特别是技术架构。首先,我需要回顾提供的引用内容,提取相关信息。 根据引用[2],MaxKB的后端使用的是Python/Django框架。Django是一个高效、安全的Web框架,适合快速开发,这可能解释了为什么选择它。此外,架构中提到了Langchain,这可能用于集成大语言模型,处理自然语言理解和生成。 引用[3]提到MaxKB采用LLM + RAG技术,这涉及到检索增强生成,所以后端需要处理知识库的检索、与大模型的交互。RAG通常需要向数据库,引用[2]指出使用的是PostgreSQL/pgvector,这说明后端可能用pgvector进行向存储和相似性搜索。 另外,MaxKB支持多种大模型,如Ollama、Azure OpenAI等,后端需要设计灵活的模型接入层,可能通过API调用或本地部署来连接不同模型。安全方面,本地部署模型调用需要权限管理和数据加密,这也是后端需要考虑的。 用户可能还想知道后端如何处理知识入库、自动化流程,以及如何保证回复准确性。需要结合Django的ORM进行数据库管理,利用Langchain处理文档解析和向化,再通过RAG技术整合检索结果和模型生成。 需要确认是否有任务队列或异步处理,比如在知识入库时的异步任务,可能使用Celery或其他工具。同时,权限控制和API设计也是后端架构的一部分,确保安全访问。 总结回答时应分模块,比如核心框架、数据处理、模型集成、安全机制等,引用对应的引用来源,并生成相关问题供用户进一步了解。</think>MaxKB系统的后端实现基于**Python/Django框架**,结合多种技术栈实现知识库管理和智能问答功能。以下是其技术架构的核心模块解析: --- ### 1. **核心框架** - **Django框架**:作为后端开发的主要框架,提供高效的ORM(对象关系映射)、路由管理和安全机制[^2]。例如,通过Django Model实现知识库的结构化存储,利用中间件处理请求过滤和权限控制。 - **Langchain集成**:用于构建与大语言模型(LLM)的交互流程,支持RAG(检索增强生成)技术,将知识库检索与模型生成结合[^3]。 --- ### 2. **数据处理与存储** - **向数据库**:使用**PostgreSQL/pgvector**存储知识库文本的向化结果,支持相似性检索(如余弦相似度)以提高问答匹配效率。 - **知识库构建流程**: 1. **知识采集**:支持文档解析(PDF、Word等格式),通过自然语言处理提取关键信息。 2. **知识入库**:文本分块后生成向嵌入(Embedding),存储至pgvector。 3. **自动化新**:通过定时任务或事件触发机制新知识库内容。 --- ### 3. **大模型集成** - **多模型支持**:后端通过统一接口兼容多种大模型,包括: - **本地部署模型**(如Ollama) - **公有云API**(如OpenAI、通义千问、讯飞星火等) - **私有化模型**(需自定义接入逻辑)[^2] - **RAG技术实现**: - 用户提问时,先从知识库中检索相关段落(基于向相似度)。 - 将检索结果与大模型生成能力结合,生成最终答案,减少幻觉问题。 --- ### 4. **安全与扩展性** - **权限管理**:通过Django的RBAC(基于角色的访问控制)实现知识库访问权限分级。 - **本地化部署**:支持完全离线运行,避免敏感数据外传,例如调用本地Ollama模型[^2]。 - **异步任务处理**:使用Celery等工具处理耗时操作(如文档解析、模型推理),提升系统响应速度[^2]。 --- ### 架构示意图(简化为文字描述) ``` 用户请求 → Django路由层 → 权限验证 → Langchain处理流程 → 向检索 → 大模型生成 → 返回答案 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值