An open API service indexing awesome lists of open source software.

https://github.com/litongjava/java-maxkb

java-maxkb
https://github.com/litongjava/java-maxkb

Last synced: 4 months ago
JSON representation

java-maxkb

Awesome Lists containing this project

README

          

# 智能知识库系统(java-maxkb)

## 功能演示

[!演示视频](https://www.bilibili.com/video/BV1yJU8YHEgg/?vd_source=69e3cff470444b21e8c322dddec00def)

## 前端和后端代码

[前端代码github](https://github.com/litongjava/MaxKB/tree/main/ui)
[后端代码gitee](https://github.com/litongjava/java-maxkb)

## 开发文档

[!开发文档](https://www.tio-boot.com/zh/63_knowlege_base/01.html)

## 项目简介

**java-maxkb** 是一个基于 Java 开发的智能知识库系统,利用先进的自然语言处理和向量检索技术,为用户提供高效、准确的问答服务。通过集成文档管理、片段向量化、语义搜索和大语言模型(如 GPT-4)等功能,系统能够理解用户的问题,并从知识库中检索最相关的内容生成回答。

## 功能特性

1. **数据库设计** [查看 01.html](https://www.tio-boot.com/zh/63_knowlege_base/01.html)
设计并实现项目所需的数据表结构与数据库方案,为后续的数据操作打下坚实基础。

2. **用户登录** [查看 02.html](https://www.tio-boot.com/zh/63_knowlege_base/02.html)
实现了安全可靠的用户认证系统,保护用户数据并限制未经授权的访问。

3. **模型管理** [查看 03.html](https://www.tio-boot.com/zh/63_knowlege_base/03.html)
支持针对不同平台的模型(如 OpenAI、Google Gemini、Claude)进行管理与配置。

4. **知识库管理** [查看 04.html](https://www.tio-boot.com/zh/63_knowlege_base/04.html)
提供创建、更新及删除知识库的功能,方便用户维护与管理文档内容。

5. **文档拆分** [查看 05.html](https://www.tio-boot.com/zh/63_knowlege_base/05.html)
可将文档拆分为多个片段,便于后续向量化和检索操作。

6. **片段向量** [查看 06.html](https://www.tio-boot.com/zh/63_knowlege_base/06.html)
将文本片段进行向量化处理,以便进行语义相似度计算及高效检索。

7. **命中率测试** [查看 07.html](https://www.tio-boot.com/zh/63_knowlege_base/07.html)
通过语义相似度和 Top-N 算法,检索并返回与用户问题最相关的文档片段,用于评估检索的准确性。

8. **文档管理** [查看 08.html](https://www.tio-boot.com/zh/63_knowlege_base/08.html)
提供上传和管理文档的功能,上传后可自动拆分为片段便于进一步处理。

9. **片段管理** [查看 09.html](https://www.tio-boot.com/zh/63_knowlege_base/09.html)
允许对已拆分的片段进行增、删、改、查等操作,确保内容更新灵活可控。

10. **问题管理** [查看 10.html](https://www.tio-boot.com/zh/63_knowlege_base/10.html)
为片段指定相关问题,以提升检索时的准确性与关联度。

11. **应用管理** [查看 11.html](https://www.tio-boot.com/zh/63_knowlege_base/11.html)
提供创建和配置应用(智能体)的功能,并可关联指定模型和知识库。

12. **向量检索** [查看 12.html](https://www.tio-boot.com/zh/63_knowlege_base/12.html)
基于语义相似度,在知识库中高效检索与用户问题最匹配的片段。

13. **推理问答调试** [查看 13.html](https://www.tio-boot.com/zh/63_knowlege_base/13.html)
提供检索与问答性能的评估工具,帮助开发者进行系统优化与调试。

14. **对话问答** [查看 14.html](https://www.tio-boot.com/zh/63_knowlege_base/14.html)
为用户提供友好的人机交互界面,结合检索到的片段与用户问题实时生成回答。

15. **统计分析** [查看 15.html](https://www.tio-boot.com/zh/63_knowlege_base/15.html)
对用户的提问与系统回答进行数据化分析,并以可视化图表的形式呈现系统使用情况。

16. **用户管理** [查看 16.html](https://www.tio-boot.com/zh/63_knowlege_base/16.html)
提供多用户管理功能,包括用户的增删改查及权限控制。

17. **API 管理** [查看 17.html](https://www.tio-boot.com/zh/63_knowlege_base/17.html)
对外提供标准化 API,便于外部系统集成和调用本系统的功能。

18. **存储文件到 S3** [查看 18.html](https://www.tio-boot.com/zh/63_knowlege_base/18.html)
将用户上传的文件存储至 S3 等对象存储平台,提升文件管理的灵活性与可扩展性。

19. **文档解析优化** [查看 19.html](https://www.tio-boot.com/zh/63_knowlege_base/19.html)
介绍与对比常见的文档解析方案,并提供提升文档解析速度和准确性的优化建议。

20. **片段汇总** [查看 20.html](https://www.tio-boot.com/zh/63_knowlege_base/20.html)
对片段内容进行汇总,以提升总结类问题的查询与回答效率。

21. **文档多分块与检索** [查看 21.html](https://www.tio-boot.com/zh/63_knowlege_base/21.html)
将片段进一步拆分为句子并进行向量检索,提升检索的准确度与灵活度。

22. **多文档支持** [查看 22.html](https://www.tio-boot.com/zh/63_knowlege_base/22.html)
兼容多种文档格式,包括 `.doc`, `.docx`, `.xls`, `.xlsx`, `.ppt`, `.pptx` 等。

23. **对话日志** [查看 23.html](https://www.tio-boot.com/zh/63_knowlege_base/23.html)
记录并展示对话日志,用于后续分析和问题回溯。

24. **检索性能优化** [查看 24.html](https://www.tio-boot.com/zh/63_knowlege_base/24.html)
提供整库扫描和分区检索等多种方式,进一步提高检索速度和效率。

25. **Milvus** [查看 25.html](https://www.tio-boot.com/zh/63_knowlege_base/25.html)
将向量数据库切换至 Milvus,以在大规模向量检索场景中获得更佳的性能与可扩展性。

26. **文档解析方案和费用对比** [查看 26.html](https://www.tio-boot.com/zh/63_knowlege_base/26.html)
对比不同文档解析方案在成本、速度、稳定性等方面的差异,为用户提供更加经济高效的选择。

27. **爬取网页数据** [查看 27.html](https://www.tio-boot.com/zh/63_knowlege_base/27.html)
支持从网页中抓取所需内容,后续处理流程与本地文档一致:分段、向量化、存储与检索。

## 项目地址

后端
- GitHub:[https://github.com/litongjava/java-maxkb](https://github.com/litongjava/java-maxkb)
- Gitee:[https://gitee.com/ppnt/java-maxkb](https://gitee.com/ppnt/java-maxkb)

前端
- GitHub:[https://github.com/litongjava/MaxKB/tree/main/ui](https://github.com/litongjava/MaxKB/tree/main/ui)

## 安装与使用指南

### 环境要求

- **操作系统**:Windows、Linux 或 macOS
- **Java 开发工具包(JDK)**:版本 8 或更高
- **Maven**:用于项目构建和依赖管理
- **PostgreSQL**:用于数据库存储

### 安装步骤

1. **克隆项目代码**

```bash
# 从 GitHub 克隆
git clone https://github.com/litongjava/java-maxkb.git
cd java-maxkb

# 或从 Gitee 克隆
git clone https://gitee.com/ppnt/java-maxkb.git
cd java-maxkb
```

2. **配置数据库**

- 安装并启动 PostgreSQL 数据库。
- 创建项目所需的数据库和用户。
- 在 `src/main/resources/application.properties` 中配置数据库连接信息。

3. **构建项目**

```bash
mvn clean install -DskipTests -Dgpg.skip=true
```

4. **运行项目**

```bash
java -jar target/java-maxkb-web.jar
```

5. **访问系统**

启动前端,打开浏览器,访问 `http://localhost:3000`,即可进入系统登录界面。

## 贡献指南

我们欢迎所有对本项目感兴趣的开发者贡献代码和建议。请按照以下步骤参与贡献:

1. **Fork 仓库**

点击页面右上角的 “Fork” 按钮,将项目仓库复制到您的账户下。

2. **克隆仓库到本地**

```bash
# 从 GitHub 克隆
git clone https://github.com/yourusername/java-maxkb.git
```

3. **创建新分支**

```bash
git checkout -b feature/your-feature-name
```

4. **提交更改**

```bash
git commit -am '添加新功能: your-feature-name'
```

5. **推送到远程仓库**

```bash
git push origin feature/your-feature-name
```

6. **创建 Pull Request**

在 GitHub 上提交 Pull Request,描述您的更改内容和目的。

## 许可证信息

本项目采用 MIT 许可证,详细信息请参阅 [LICENSE](LICENSE) 文件。