【开源项目】ai-assist:基于LangChain4j的RAG智能助手,本地化部署更安全
前言
在大模型应用落地过程中,检索增强生成(RAG)技术成为解决大模型幻觉、提升问答精准度的核心方案,而本地化部署 则是企业和开发者关注数据隐私的重要诉求。今天给大家推荐一款基于Java生态构建的轻量级RAG智能助手开源项目------ai-assist ,该项目深度整合LangChain4j、Ollama、ChromaDB等技术,支持多格式文档解析、本地向量化、智能对话全流程,零基础也能快速部署,非常适合Java开发者入门RAG开发和企业内部轻量化智能问答系统搭建。

项目Gitee地址:https://gitee.com/GZ-jelly/ai-asssit
一、项目简介
ai-assist是开发的一款基于LangChain4j框架的智能对话系统 ,核心整合大语言模型 + RAG(检索增强生成) + 向量数据库 技术栈,实现了文档上传解析→文本分块→本地向量化→向量存储→语义检索→智能问答的全链路能力。
项目采用Java 17 + Spring Boot 3.x开发,前端基于原生HTML/CSS/JavaScript实现简单交互,所有核心数据处理(向量化、检索)均可本地化完成,无外部数据泄露风险,同时支持DeepSeek大模型的API/本地双部署方式,兼顾灵活性和实用性,可快速应用于企业内部文档问答、个人知识库搭建等场景。
项目核心优势
- 纯Java生态开发,符合国内企业主流技术栈,Java开发者无技术门槛;
- 全流程本地化部署,嵌入模型、向量数据库均本地运行,保障数据隐私;
- 轻量化架构,基于Docker和Ollama实现一键部署,无需复杂环境配置;
- 多格式文档兼容,支持PDF/Word/Excel/TXT等主流格式的解析和语义检索。
二、核心技术栈
ai-assist的技术栈围绕RAG全链路 设计,分为核心框架 和RAG专属组件两部分,技术选型兼顾成熟度、易用性和本地化部署需求,具体如下:
2.1 核心框架
| 技术类型 | 选型 | 版本/要求 | 核心作用 |
|---|---|---|---|
| 后端开发语言 | Java | 17+ | 项目核心开发语言,适配企业主流技术栈 |
| 后端应用框架 | Spring Boot | 3.x | 快速构建RESTful接口,简化后端开发 |
| RAG编排框架 | LangChain4j | 1.12.1 | 实现RAG全链路流程编排,整合文档处理、向量化、检索、大模型调用 |
| 前端技术 | HTML/CSS/JavaScript | - | 实现简单的前端交互页面,支持文档上传、智能对话 |
2.2 RAG核心组件
| 组件类型 | 技术选型 | 部署/使用方式 | 核心作用 |
|---|---|---|---|
| 多格式文档解析器 | Apache Tika | 依赖集成(Maven) | 解析PDF/Word/Excel/TXT等格式文档,提取文本内容 |
| 嵌入模型(Embedding) | nomic-embed-text | Ollama本地部署 | 实现文本向量化,提取语义特征,为向量检索做准备 |
| 向量数据库 | ChromaDB | Docker容器部署 | 存储向量数据,支持高效的语义相似度检索 |
| 大语言模型(LLM) | DeepSeek | API/本地部署 | 基于检索到的上下文生成精准回答,完成智能对话 |
技术栈亮点:LangChain4j作为Java生态的主流RAG框架,完美适配Spring Boot,解决了Python系RAG框架与Java企业系统的集成痛点;而Ollama的本地部署方式,让嵌入模型的使用无需复杂的环境配置,一行命令即可启动。
三、项目核心特性
- 📄 多格式文档全解析:基于Apache Tika实现主流办公文档的无缝解析,无需额外开发解析逻辑,上传即处理;
- 🔒 数据本地化处理:嵌入模型通过Ollama本地运行,向量数据存储在本地ChromaDB,全程无数据外发,满足企业数据隐私要求;
- ⚡ 轻量化向量检索:ChromaDB通过Docker一键部署,轻量级架构占用资源少,语义相似度检索响应速度快;
- 💬 精准智能对话:结合RAG技术和DeepSeek大模型,先检索本地知识库再生成回答,有效解决大模型幻觉问题,回答更精准;
- 🚀 快速接口调用:提供标准化的RESTful接口,支持文档上传和智能聊天,可快速集成到现有系统或前端页面;
- 👨💻 Java生态友好:全程基于Java技术栈开发,Java开发者可快速二次开发,适配企业内部业务场景。
四、快速部署教程
ai-assist的部署全程采用命令行+容器化 方式,无需复杂的配置文件,只需完成环境准备 和项目启动两步,即可快速使用,以下是详细部署步骤(Windows/Linux/Mac通用)。
4.1 前置环境要求
- 安装JDK 17+,配置环境变量;
- 安装Maven 3.6+,用于项目构建;
- 安装Docker,用于部署ChromaDB;
- 安装Ollama,用于部署本地嵌入模型。
4.2 步骤1:部署本地嵌入模型(Ollama + nomic-embed-text)
Ollama是一款轻量级的本地大模型管理工具,可一键拉取和运行嵌入模型/大语言模型,操作如下:
bash
# 1. 安装Ollama(参考官网:https://ollama.com/,根据系统选择安装包)
# 2. 拉取nomic-embed-text嵌入模型(用于文本向量化)
ollama pull nomic-embed-text
4.3 步骤2:部署向量数据库(ChromaDB + Docker)
ChromaDB是一款轻量级的开源向量数据库,支持Docker一键部署,默认端口8000,操作如下:
bash
# 1. 启动ChromaDB容器,命名为chromadb,映射8000端口
docker run -d -p 8000:8000 --name chromadb ghcr.io/chroma-core/chroma
# 2. 验证容器运行(查看chromadb是否处于Up状态)
docker ps | grep chromadb
4.4 步骤3:项目拉取与启动
- 拉取项目代码:
bash
git clone https://gitee.com/GZ-jelly/ai-asssit.git
cd ai-asssit
- Maven构建项目:
bash
mvn clean package -DskipTests
- 运行项目:
bash
java -jar target/ai-assist-1.0-SNAPSHOT.jar
项目启动后,默认端口为8083,可通过http://localhost:8083访问前端页面。
五、核心接口使用
ai-assist提供了两个核心RESTful接口,分别用于文档上传 和智能聊天,支持Postman/Curl/前端页面等多种调用方式,接口详情如下:
5.1 文档上传接口
用于上传待解析的文档,系统自动完成解析→分块→向量化→向量存储全流程,支持PDF/Word/Excel/TXT等格式。
- 接口地址 :
http://192.168.0.102:8083/api/document/upload(替换为自己的服务器IP/localhost) - 请求方式:POST
- 请求参数 :form-data格式,key为
file,值为待上传的文档文件 - 返回结果:上传成功/失败提示,成功后文档内容已存入ChromaDB。
5.2 智能聊天接口
基于已上传的文档进行语义检索,结合DeepSeek大模型生成精准回答,支持GET请求直接调用。
- 接口地址 :
http://192.168.0.102:8083/api/ai/chat - 请求方式:GET
- 必填参数 :
message(用户的提问内容,如"介绍一下RAG技术的核心流程") - Curl调用示例:
bash
curl "http://192.168.0.102:8083/api/ai/chat?message=介绍一下ai-assist项目的核心功能"
- 返回结果:基于本地知识库生成的智能回答文本。
六、项目结构与二次开发
6.1 项目核心目录
项目采用标准的Spring Boot目录结构,核心代码在src/main/java下,资源文件在src/main/resources下,关键目录说明:
ai-asssit/
├── src/
│ ├── main/
│ │ ├── java/ # 核心Java代码
│ │ │ └── com/
│ │ │ └── ai/
│ │ │ ├── controller/ # 接口控制器(文档上传、聊天接口)
│ │ │ ├── service/ # 业务逻辑层(文档处理、RAG检索、大模型调用)
│ │ │ ├── config/ # 配置类(LangChain4j、ChromaDB、Ollama配置)
│ │ │ └── util/ # 工具类(文档解析、文本分块)
│ │ └── resources/ # 配置文件(application.yml、静态资源)
│ └── test/ # 测试代码
├── pom.xml # Maven依赖配置
├── README.md # 项目说明文档
└── LICENSE # Apache-2.0开源协议
6.2 二次开发建议
- 更换大语言模型:项目默认集成DeepSeek,可通过修改LangChain4j配置,替换为OpenAI、智谱AI、讯飞星火等其他大模型;
- 扩展文档格式:基于Apache Tika扩展解析能力,支持更多小众文档格式;
- 优化文本分块策略:根据业务需求调整文本分块的大小和重叠度,提升检索精准度;
- 增加权限控制:为文档上传和聊天接口增加用户认证,适配企业多用户场景;
- 优化前端页面:基于Vue/React重构前端,增加聊天记录、文档管理、知识库分类等功能。
七、开源协议与贡献
- 开源协议 :项目采用Apache-2.0开源协议,可自由用于商业、个人、企业项目,无需授权,只需保留版权声明;
- 贡献方式 :项目目前处于初始开发阶段,欢迎开发者通过Issue提需求 、Pull Request提交代码参与贡献,共同完善项目功能;
- 项目状态:项目最新提交为初始化项目,核心功能已实现,后续将持续迭代优化。
八、总结
ai-assist作为一款基于Java生态的轻量级RAG智能助手,最大的价值在于降低了Java开发者入门RAG技术的门槛 ,同时实现了全流程本地化部署,完美解决了企业数据隐私的痛点。项目采用成熟的技术栈,架构清晰,易于二次开发,无论是Java开发者学习RAG开发,还是企业快速搭建内部智能问答系统,都是一个非常不错的选择。
如果该项目对你有帮助,欢迎前往Gitee仓库Star支持,也欢迎大家参与贡献和交流,一起打造更实用的Java系RAG开源项目!
项目Gitee地址 :https://gitee.com/GZ-jelly/ai-asssit