[开源]AI聊天应用,实现了RAG(检索增强生成)的知识库问答系统

开源系统
2026-06-10 12:18 4 次浏览 • 0 次下载 0KB
[开源]AI聊天应用,实现了RAG(检索增强生成)的知识库问答系统

一、开源项目简介

智能知识库问答系统

HzsparrowAI是一个基于SpringAI搭建的AI软件,这个项目本意是为了学习、测试AI功能,之后会基于此项目开发一些业务落地的实践项目,所有的需求和功能都将保证基本可用,可以作为企业级项目的开发基座。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

系统截图

以下是系统的主要功能界面截图:

智能对话界面

通过智能对话界面,用户可以与AI进行自然语言交互,选择不同知识库进行问答。

图片

知识库管理

知识库管理界面允许用户创建、查看和管理自己的知识库。

图片

文档列表

每个知识库中的文档列表,用户可以查看、添加和删除文档。

图片

文档内容查看

查看知识库中的文档详细内容,支持Markdown格式显示。

图片

平台设置

设置平台的系统信息,主要用来设置默认模型。

图片

模型设置

可以在平台中预置多种模型,解决模型需要灵活多变的需求。

图片

四、功能概述

智能知识库问答系统

这是一个基于Spring Boot的AI聊天应用,集成了Spring AI和Ollama,实现了RAG(检索增强生成)功能的知识库问答系统。用户可以创建并管理知识库,添加文档,并通过智能问答功能检索知识库中的信息。

核心功能

 智能对话

  • 基于Ollama的自然语言交互
  • 支持流式响应,实时显示AI回答
  • 多模型支持,可灵活切换不同AI模型

 知识库管理

  • 创建、查看和管理多个知识库
  • 支持知识库的增删改查操作
  • 知识库权限管理

 文档管理

  • 支持多种文档格式上传(PDF、Word、TXT、Markdown等)
  • 文档内容自动解析和向量化存储
  • 文档预览和内容管理
  • 批量文档处理

 对话管理

  • 创建、查看和管理多个对话会话
  • 支持对话标题自定义修改
  • 对话历史记录和搜索
  • 对话上下文保持

 RAG检索增强

  • 基于ElasticSearch的向量存储
  • 智能文档检索和相关性匹配
  • 检索结果与生成内容的有机结合
  • 可调节的相似度阈值

 用户系统

  • JWT身份认证和授权
  • 基于角色的访问控制
  • 用户注册和登录管理
  • 用户数据隔离

 用户体验

  • 现代化响应式Web界面
  • 支持Markdown格式渲染
  • 移动设备友好的设计
  • 直观的操作交互

五、技术选型

技术架构

后端技术栈

  • Spring Boot 3.4.2
     - 应用框架
  • Spring AI 1.0.0
     - AI集成框架
  • Spring Security + JWT
     - 安全认证
  • MyBatis-Plus 3.5.11
     - 数据持久化
  • ElasticSearch
     - 向量存储和检索
  • WebSocket
     - 实时通信
  • Spring AI Tika
     - 文档解析
  • FlexMark
     - Markdown处理

前端技术栈

  • HTML/CSS/JavaScript
     - 基础前端技术
  • Marked.js
     - Markdown解析渲染
  • 响应式设计
     - 适配多种设备

AI服务支持

  • Ollama
     - 本地大语言模型服务
  • OpenAI兼容API
     - 支持多种AI服务提供商

环境要求

  • Java 17+
  • MySQL 5.7+
  • Maven 3.6+
  • ElasticSearch 8.x
  • Ollama服务
     或其他兼容的AI服务

快速开始

详细内容请查看 README.md 文档

项目结构

src/main/java/com/hzsparrow/ai/
├── config/                 # 配置类
│   ├── PromptConfiguration.java   # 提示词配置
│   ├── SecurityConfig.java        # 安全配置
│   ├── DataInitializer.java       # 数据初始化
│   └── FileUploadConfig.java      # 文件上传配置
├── controller/             # 控制器层
├── entity/                 # 实体类
├── service/                # 服务层
├── mapper/                 # 数据访问层
├── security/               # 安全认证
├── util/                   # 工具类
└── HzsparrowAiApplication.java    # 应用入口
src/main/resources/
├── static/                 # 前端静态资源
├── prompts/                # AI提示词模板
├── sql/                    # 数据库脚本
└── application.yml         # 应用配置