news 2026/4/23 12:34:33

【收藏】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/4/15 23:16:11

代购一个域名需要多少钱?

不少用户在购买心仪域名时&#xff0c;发现域名已被注册&#xff0c;或者挂在国外平台上&#xff0c;这时就会产生一个常见问题&#xff1a;代购一个域名需要多少钱&#xff1f;实际上&#xff0c;域名代购的费用并不是一个固定数字&#xff0c;而是由域名价格、代购服务费、交…

作者头像 李华
网站建设 2026/4/23 11:29:27

【Git】全面认识Git lfs

【Git】全面认识Git lfs 文章目录 【Git】全面认识Git lfs01 什么是git lfs?02 Git vs Git lfs2.1 git 场景2.2 git lfs 场景 03 Git lfs实操3.1 下载和安装Git lfs3.1.1 下载3.1.2 安装3.1.3 验证安装是否成功 3.2 配置Git Lfs 04 总结 我们经常在使用 hugging face上模型和…

作者头像 李华
网站建设 2026/4/18 4:45:55

【AAAI2026】阿里云人工智能平台PAI视频编辑算法论文入选

近期&#xff0c;阿里云人工智能平台 PAI 的视频编辑算法论文在 AAAI2026 上正式亮相发表&#xff08;Zero-to-Hero: Empowering Video Appearance Transfer with Zero-Shot Initialization and Holistic Restoration&#xff09;。AAAI 是人工智能领域最具影响力的国际顶级会议…

作者头像 李华
网站建设 2026/3/25 22:47:22

9-1Python魔术方法完全指南:从基础到高级应用

魔术方法&#xff08;Magic Methods&#xff09;是Python面向对象编程中极具特色的功能&#xff0c;它们以双下划线开头和结尾&#xff08;如__init__&#xff09;&#xff0c;允许开发者自定义类的行为&#xff0c;使其能够与Python语言特性无缝集成。本文将深入解析Python中最…

作者头像 李华
网站建设 2026/4/22 15:32:35

转录因子研究套路(三)

在先前的推文中&#xff0c;小远发现大家对转录因子相关的文章比较感兴趣&#xff0c;因此猜测应该很多人都在做这方面的研究&#xff0c;为了更好的帮助大家开展转录因子的研究&#xff0c;本次推文主要是和大家一起来复盘一下转录因子的常规研究思路及方法&#xff0c;内容可…

作者头像 李华