# knowledgeBaseSysten **Repository Path**: hgf_888/knowledgeBaseSysten ## Basic Information - **Project Name**: knowledgeBaseSysten - **Description**: nodejs服务,结合模型 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-29 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 这是一个本地知识库系统 ### 技术栈 - **需要安装的软件** - mysql数据库 - chromaDB数据库 - ollama 拉取模型 - nodejs - langchain - express - npm - vue3 - vite #### 数据库 - mysql数据库 - chromaDB数据库 #### 前端 - **框架**: Vue 3 - **构建工具**: Vite - **开发语言**: TypeScript #### 后端 - **运行环境**: Node.js - **Web框架**: Express - **AI工具链**: LangChain - 文档内容获取 - 文本分割 - 向量存储与检索 - 向量数据库 - **模型**: - 问答模型: 本地模型 ollama - 嵌入模型: 公司提供的模型地址 (本地Mac拉取的嵌入模型存在系统bug,官方暂未修复) ### 启动服务 - 启动nodejs服务 - 进入项目根目录 - 执行 `npm install` 安装依赖 - 如果依赖冲突 执行 `npm install --legacy-peer-deps` 安装依赖 - 执行 `npm start` 启动服务 - 启动前端服务 - 进入项目根目录下的 `web` 目录 - 执行 `npm install` 安装依赖 - 执行 `npm run dev` 启动服务 - 启动本地模型 在命令行执行`coder-web`启动webUI/启动服务`coder` - 启动chromaDB数据库 - 进入项目根目录 - 安装chromaDB数据库 - 执行 `pip install chromadb` 安装chromaDB数据库 - 执行 `chroma run --host 0.0.0.0 --port 8000 --path ./db` 启动数据库 ./db是将数据库文件存到当前项目下的db文件夹中 - chroma 命令根据自身电脑进行安装 - 修改配置文件 - 打开项目的.env文件, - 启动mysql服务 - 执行 `mysql -u root -p` 启动mysql服务 - 图片入库逻辑 - 上传图片 -> 入库并生成地址 -> 生成描述 -> 根据描述生成关键词 -> 返回前端 -> 人工调整并保存 -> 设置元数据(filePath) -> 构建图片文档向量数据 -> 存入数据库 - 图片查询逻辑 - 用户问题 -> 语义分隔 -> 原始关键词 -> 全文检索 -> 返回片段 - 用户问题 -> 语义增强 -> 转换向量 -> 检索向量片段 -> 返回片段 - 用户问题 -> 语义增强 -> 语义分隔 -> 增强关键词 -> 全文检索 -> 返回片段 - 获得合并去重后的片段 - 获取所有片段中的filePath - 合并去重后返回给前端一个filePath的list - 文档入库逻辑 - 上传文件 -> 入库并生成地址 -> 生成文章描述 -> 根据描述生成关键词 -> 获取文件类型 -> 调用文件分割 -> 设置元数据(fileId等) -> 构建向量数据 -> 存入数据库 - 文档查询逻辑 三路召回 + 后处理融合 - 用户问题 -> 语义分隔 -> 原始关键词 -> 全文检索 -> 返回片段 - 用户问题 -> 语义增强 -> 转换向量 -> 检索向量片段 -> 返回片段 - 用户问题 -> 语义增强 -> 语义分隔 -> 增强关键词 -> 全文检索 -> 返回片段 - 获得合并去重后的片段 - 找到片段中出现fileId最多的片段并返回 - 将返回片段 -> build 大模型提示词 -> 调用模型 -> 获取模型数据