# VeapAI **Repository Path**: mindock/veap ## Basic Information - **Project Name**: VeapAI - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-26 - **Last Updated**: 2026-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VeapAI > 一套以 AI 为核心的开源平台,打通「文档资料 → 知识库 → 向量化(Milvus) → 大模型问答溯源」全链路。 > 全程可视化、可配置化,不写代码也能搭企业知识库问答。 ![stars](https://gitee.com/mindock/veap/badge/star.svg?theme=dark) ![forks](https://gitee.com/mindock/veap/badge/fork.svg?theme=dark) ![license](https://img.shields.io/badge/license-MIT-green.svg) ![version](https://img.shields.io/badge/version-3.6.5-blue.svg) - 后端:Java 17 + Spring Boot 2.7 + Spring Cloud(微服务 / 单体双模式) - 前端:Vue 2.6 + Element-UI - 向量库:Milvus 2.4.x --- ## 为什么做这个 做知识库的人大多经历过同一条弯路:文档上传了、切块切了、向量也写进去了,真到用户问"这段话出自哪份文件的哪一页"时,答不上来。传统知识库是"被动存储",AI 知识库要的是"主动给出能用的答案"。 VeapAI 把这条链路整段做进了平台:**问答结果里每个命中知识点,都能点回原文那一页、那一段**。政策问答这类"答错要担责"的场景,没有页码级溯源,AI 的答案没人敢用。 ## 一条链路,8 步跑通 ![八步流程图](assets/export/02-知识生命周期八步流程图.png) 1. 配置 Milvus 实例(认证 / TLS / 健康检查,操作全部留痕) 2. 创建元数据标准,声明式创建 / 更新 Collection 3. 创建知识主题 4. 上传附件资料并解析(统一 PDF 预览 + 页级片段) 5. AI 资料处理,完成知识内容初始化 6. 知识主题一键向量化(作业三级审计 + etag 幂等) 7. Milvus 调试搜索,完成知识初验证 8. 政策问答:知识搜索、知识溯源、文档在线定位预览 第 8 步是这条链路的验收点:**问答结果里每个命中知识点,都能点回原文那一页、那一段**。 全链路架构(数据层 → 向量化处理层 → 检索与大模型层 → 应用层): ![全链路架构图](assets/export/01-全链路架构图.png) ## 工程里几个"较真"的设计 这些设计散在源码里,是理解这套代码最有价值的部分: - **检索质量决定生成上限**。检索模板固定 TopK / 阈值 / 过滤表达式,每次检索写 `ai_vector_search_audit` 留痕,调参有据可查。 - **一张表一个唯一写入点**。`ai_vector_object_map` 只允许 `AiVectorIngestJobRunner` 写入,旁路 CRUD 被明确禁止,业务对象与 Milvus 主键的映射不错账。 - **job / run / item 三级向量写入审计**。一次运行一条 run,每个对象一条 item,成功 / 跳过 / 失败逐条可查。 - **etag 幂等**。向量对象映射用内容 hash + 嵌入模型 ID 决定是否跳过重算,改内容才重算向量。 - **Milvus 操作禁止吞错**。`ai_milvus_op_log` 对每次运维操作留痕,失败必须抛错。 - **页级溯源,此言有据**。知识点通过 `ai_knowledge_entry_source` 精确挂到文档页 / 片段,`locator_json` 是打开预览时定位的唯一依据。 - **没有向量就别硬聊**。问答候选匹配找不到启用作业时返回空列表、不兜底,宁可空结果,也不让模型瞎编出处。 ## 三种路线怎么选 | 路线 | 代表 | 优点 | 代价 | | ---- | ---- | ---- | ---- | | 商业平台 | 各云厂商知识库 | 开箱即用 | 按量付费、数据出域、定制受限 | | 纯自研 | 自建 RAG 管线 | 完全可控 | 解析、向量、检索、权限全要自己写,周期 4-6 周起步 | | **VeapAI** | 本仓库 | 开源 + 可视化配置 + 全链路已打通 | 需要自己部署运维 | VeapAI 走的是第三条:把自研才有的工程细节(三级审计、幂等映射、页级溯源、操作留痕)做进可视化平台,克隆下来 8 步跑通,改配置不动代码。 ## 软件架构 ```text VeapAI/ ├── veap-cloud/ # 后端(Spring Boot 多模块,Java 17) │ ├── veap-api/ # API 契约层 │ ├── veap-auth/ # 认证服务 │ ├── veap-common/ # 公共组件 │ ├── veap-gateway/ # 网关 │ ├── veap-modules/ # 业务模块 │ │ ├── veap-system/ # 系统管理 │ │ ├── veap-gen/ # 代码生成 │ │ ├── veap-job/ # 定时任务 │ │ ├── veap-file/ # 文件服务(含文档解析) │ │ ├── veap-log/ # 操作日志 │ │ ├── veap-workflow/ # 工作流(Flowable) │ │ ├── veap-ai/ # AI 平台(LLM、知识库、问答、智能体) │ │ ├── veap-milvus/ # Milvus 向量库服务 │ │ └── veap-aippt/ # AI PPT 生成 │ ├── veap-package/ # 打包入口(monolith / micro) │ └── veap-visual/ # 服务监控(Spring Boot Admin) └── veap-ui/ # 前端(Vue2 + Element-UI) ├── src/views/ai/ # 知识库 / 元数据 / 问答页面 ├── src/views/milvus/ # Milvus 实例 / 集合 / 向量作业页面 └── src/components/AiConsole/ # AI 执行控制台 ``` | 层次 | 技术 | | ---- | ---- | | 后端 | Java 17 / Spring Boot 2.7.18 / Spring Cloud 2021.0.9 / Spring Cloud Alibaba 2021.0.6.1 | | 注册 / 配置 | Nacos | | 限流 / 熔断 | Sentinel | | 工作流 | Flowable 6.8.1 | | 定时任务 | Quartz | | 数据库 | MySQL 8.x(Druid + 动态数据源) | | 缓存 / 对象存储 | Redis / MinIO | | 向量库 | Milvus 2.4.x | | 前端 | Vue 2.6 + Element-UI 2.15 + Vuex + Vue Router | | 构建 | Maven / Vue CLI 4 | ## 快速开始 环境:JDK 17、Maven 3.6+、MySQL 8.x、Redis、Node.js 14+;可选 Nacos、MinIO、Milvus 2.4.x。 ```bash # 后端(单体模式,全模块) cd veap-cloud mvn -B -pl veap-package/veap-monolith -am -DskipTests package # 前端 cd veap-ui npm install npm run dev # 访问 http://localhost:80 ``` 单体 / 微服务模式由 `global.service.mode` 配置切换。AI 能力相关表结构见 `veap-cloud/DB/veap.sql`。 ## 更多阅读 系列文章(发布后补链接): 1. 《从零打通企业 AI 知识库全链路:VeapAI 实战》第 1 篇:配置 Milvus 实例 2. 第 2 篇:元数据标准与 Collection 3. 第 3 篇:知识主题 4. 第 4 篇:附件上传与文档解析 5. 第 5 篇:AI 资料处理 6. 第 6 篇:一键向量化 7. 第 7 篇:Milvus 调试搜索 8. 第 8 篇:政策问答与溯源 ## License MIT License