news 2026/3/22 20:34:31

【收藏】SpringAI+Qwen3-8B+BGE构建本地知识库,代码已开源,可直接复用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【收藏】SpringAI+Qwen3-8B+BGE构建本地知识库,代码已开源,可直接复用

本文详细介绍了使用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%免费】

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/20 22:31:30

如何在生产环境中部署Java调用淘宝商品详情API的项目?

你想知道在生产环境中部署「Java 调用淘宝商品详情 API」项目的完整流程&#xff0c;我会聚焦生产环境的核心诉求&#xff08;稳定性、可运维、安全性&#xff09;&#xff0c;从「部署前准备 → 主流部署方案&#xff08;Docker 优先&#xff09; → 运维保障 → 故障兜底」展…

作者头像 李华
网站建设 2026/3/13 3:19:46

电力场景红外图像绝缘子检测数据集VOC+YOLO格式420张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数)&#xff1a;420标注数量(xml文件个数)&#xff1a;420标注数量(txt文件个数)&#xff1a;420标注类别数&…

作者头像 李华
网站建设 2026/3/21 6:31:40

冥想第一千七百八十九天(1789)

1.周一了&#xff0c;天气阴&#xff0c;不是很冷&#xff0c;项目上非常忙&#xff0c;全力以赴的一天。早上很困&#xff0c;中午休息过后就好了。 2.感谢父母&#xff0c;感谢朋友&#xff0c;感谢家人&#xff0c;感谢不断进步的自己。

作者头像 李华
网站建设 2026/3/22 16:03:42

Nginx源码分析:current_weight、fail_timeout、cache_valid——三个字段撑起Nginx整个反向代理

一、反向代理的三板斧 Nginx的反向代理代码量大得吓人。光ngx_http_upstream.c就有6000多行,加上round_robin和file_cache,整个upstream子系统超过10000行C代码。 但扒开这一万行代码的表皮,内核其实就三件事:请求往哪发、发失败了怎么办、响应要不要存。对应到源码里,就…

作者头像 李华
网站建设 2026/3/20 4:17:21

Flutter for OpenHarmony:基于Flutter的声纹动态波形模拟器开发实践

Flutter for OpenHarmony&#xff1a;基于Flutter的声纹动态波形模拟器开发实践 欢迎加入开源鸿蒙跨平台社区&#xff1a; https://openharmonycrossplatform.csdn.net 发布时间&#xff1a;2026年2月9日 技术栈&#xff1a;Flutter 3.22、Dart 3.4、CustomPainter、Animation…

作者头像 李华