【收藏】SpringAI+Qwen3-8B+BGE构建本地知识库,代码已开源,可直接复用
本文介绍了基于SpringAI框架构建本地知识库系统的实现方案,整合了Qwen3-8B大语言模型、bge-large-zh-v1.5嵌入模型和Milvus向量数据库。文章详细说明了环境配置要求,包括24G+显卡、Python运行环境及模型部署方式,并提供了完整的代码实现,涵盖依赖配置、模型初始化、数据加载和问答接口设计。系统采用三国演义知识问答数据集,实现了基于向量检索增强的智能问答功能,所有代码
本文详细介绍了使用SpringAI+Qwen3-8B+bge-large-zh-v1.5+Milvus构建本地知识库系统的完整流程,包括环境准备、模型配置、依赖设置、数据加载和聊天接口实现。作者提供了完整的配置文件和Java代码,基于三国演义数据集实现了一个向量检索增强的知识问答系统,代码已开源在Gitee平台,开发者可直接复用。
使用SpringAI + Qwen3-8B + bge-large-zh-v1.5 + milvus 实现本地构建知识库系统
一、环境准备
- 24G+ 显卡
- python 运行环境
- 下载好LLM模型,我这里使用的是 Qwen3-8B
- Embedding 模型,这里使用的 bge-large-zh-v1.5
- 还有一份数据集
运行模型 Qwen3-8B
nohup python -m vllm.entrypoints.openai.api_server \--model /code/models/Qwen/Qwen3-8B \--served-model-name qwen3-8b \--max-model-len 8k \--host 0.0.0.0 \--port 6006 \--dtype bfloat16 \--gpu-memory-utilization 0.8 \--enable-auto-tool-choice \--tool-call-parser hermes &
运行Embedding模型 bge-large-zh-v1.5
nohup python -m vllm.entrypoints.openai.api_server \--model /code/models/BAAI/bge-large-zh-v1.5 \--served-model-name bge-large-zh \--host 0.0.0.0 \--port 6007 \--dtype bfloat16 \--gpu-memory-utilization 0.4 \--max-model-len512&
运行Milvus向量数据库(可参考官网https://milvus.io/docs/zh/install_standalone-docker.md)
Download the installation scriptcurl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.shStart the Docker containerbash standalone_embed.sh start
出现下面画面表示Milvus安装完成

数据集准备
我这里是在魔塔社区拉去的三国演义知识问答。地址:https://modelscope.cn/datasets/ssf2024/sanguoyanyiquestion
二、代码编写
首先pom依赖如下
<dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId></dependency><dependency><groupId>io.projectreactor.netty</groupId><artifactId>reactor-netty-http</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- QuestionAnswerAdvisor 依赖包--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-advisors-vector-store</artifactId></dependency><!-- RetrievalAugmentationAdvisor 依赖包--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-rag</artifactId></dependency><!-- Milvus VectorStore 依赖包--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-vector-store-milvus</artifactId></dependency><!-- Tika DocumentReader 依赖包--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-tika-document-reader</artifactId></dependency></dependencies>
配置信息 application.yml
spring: application: name: mashangjun-ai-rag ai: openai: chat: options: model: qwen3-8b embedding:base-url: http://192.168.10.102:6007/ options: model: bge-large-zhbase-url: http://192.168.10.102:6006/ api-key: sk-1234567890abcd vectorstore: milvus: client: host:192.168.47.130 port:19530 token: root:Milvus database-name:default embedding-dimension:1024 collection-name: msj_ai initialize-schema:trueserver: port:8081
模型配置
@Configuration@RequiredArgsConstructorpublicclassChatConfig{finalMilvusVectorStore vectorStore;@BeanpublicChatClientchatClient(ChatModel chatModel){returnChatClient.builder(chatModel).defaultSystem("你作为一名专业的AI助手,请根据用户提示信息回答问题。").build();}/** * 配置 RetrievalAugmentationAdvisor * * @return RetrievalAugmentationAdvisor */@BeanpublicRetrievalAugmentationAdvisorretrievalAugmentationAdvisor(){VectorStoreDocumentRetriever retriever =VectorStoreDocumentRetriever.builder().vectorStore(vectorStore).similarityThreshold(0.5).topK(5).build();ContextualQueryAugmenter augmenter =ContextualQueryAugmenter.builder().allowEmptyContext(true).build();returnRetrievalAugmentationAdvisor.builder().documentRetriever(retriever).queryAugmenter(augmenter).build();}@BeanpublicQuestionAnswerAdvisorquestionAnswerAdvisor(){returnQuestionAnswerAdvisor.builder(vectorStore).searchRequest(SearchRequest.builder().similarityThreshold(0.2d).topK(6).build()).build();}
加载准备好的数据
@Slf4j@Component@RequiredArgsConstructorpublicclassLoadData{finalMilvusVectorStore vectorStore;@Value("${spring.ai.vectorstore.milvus.collection-name}")privateString collectionName;@PostConstructpublicvoidloadData()throwsIOException{ log.info("开始初始化数据:{}", collectionName);Optional<Object> nativeClient = vectorStore.getNativeClient();if(nativeClient.isPresent()){ log.info("Milvus 客户端初始化成功");}else{ log.error("Milvus 客户端初始化失败");return;}MilvusServiceClient client =(MilvusServiceClient) nativeClient.get();R<GetCollectionStatisticsResponse> resp = client.getCollectionStatistics(GetCollectionStatisticsParam.newBuilder().withCollectionName(collectionName).build());if(resp.getStatus()!=R.Status.Success.getCode()){ log.error("Milvus 获取集合统计信息失败:{}", resp.getMessage());return;}long rowCount =newGetCollStatResponseWrapper(resp.getData()).getRowCount();if(rowCount >0){ log.info("集合已存在,跳过初始化数据");return;}// 加载数据到向量数据库ClassPathResource resource =newClassPathResource("train.json");// 读取文件内容String content =newString(resource.getInputStream().readAllBytes());// 拆分文档,写入向量数据库TokenTextSplitter splitter =TokenTextSplitter.builder().withChunkSize(512).withMinChunkSizeChars(200).withKeepSeparator(true).build();var chunks = splitter.split(List.of(newDocument(content))); vectorStore.add(chunks);}}
聊天接口
@RestController@RequestMapping@RequiredArgsConstructorpublicclassTalkController{finalChatClient chatClient;finalQuestionAnswerAdvisor questionAnswerAdvisor;finalRetrievalAugmentationAdvisor retrievalAugmentationAdvisor;/** * 聊天 * * @param question 问题 * @return 回复 */@GetMapping("/talk")publicFlux<String>talk(@RequestParam("question")String question){return chatClient.prompt(question).advisors(questionAnswerAdvisor).stream().content();}}
效果展示

效果展示

AI时代,未来的就业机会在哪里?
答案就藏在大模型的浪潮里。从ChatGPT、DeepSeek等日常工具,到自然语言处理、计算机视觉、多模态等核心领域,技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。

掌握大模型技能,就是把握高薪未来。
那么,普通人如何抓住大模型风口?
AI技术的普及对个人能力提出了新的要求,在AI时代,持续学习和适应新技术变得尤为重要。无论是企业还是个人,都需要不断更新知识体系,提升与AI协作的能力,以适应不断变化的工作环境。
因此,这里给大家整理了一份《2026最新大模型全套学习资源》,包括2026最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题、AI产品经理入门到精通等,带你从零基础入门到精通,快速掌握大模型技术!
由于篇幅有限,有需要的小伙伴可以扫码获取!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。

2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

5. 大模型行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

为什么大家都在学AI大模型?
随着AI技术的发展,企业对人才的需求从“单一技术”转向 “AI+行业”双背景。企业对人才的需求从“单一技术”转向 “AI+行业”双背景。金融+AI、制造+AI、医疗+AI等跨界岗位薪资涨幅达30%-50%。
同时很多人面临优化裁员,近期科技巨头英特尔裁员2万人,传统岗位不断缩减,因此转行AI势在必行!

这些资料有用吗?
这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


大模型全套学习资料已整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】

更多推荐




所有评论(0)