【收藏】SpringAI+Qwen3-8B+BGE构建本地知识库,代码已开源,可直接复用
本文详细介绍了使用SpringAIQwen3-8Bbge-large-zh-v1.5Milvus构建本地知识库系统的完整流程包括环境准备、模型配置、依赖设置、数据加载和聊天接口实现。作者提供了完整的配置文件和Java代码基于三国演义数据集实现了一个向量检索增强的知识问答系统代码已开源在Gitee平台开发者可直接复用。使用SpringAI Qwen3-8B bge-large-zh-v1.5 milvus 实现本地构建知识库系统一、环境准备24G 显卡python 运行环境下载好LLM模型我这里使用的是 Qwen3-8BEmbedding 模型这里使用的 bge-large-zh-v1.5还有一份数据集运行模型 Qwen3-8Bnohup 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.5nohup 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依赖如下dependenciesdependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-starter-model-openai/artifactId/dependencydependencygroupIdio.projectreactor.netty/groupIdartifactIdreactor-netty-http/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- QuestionAnswerAdvisor 依赖包--dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-advisors-vector-store/artifactId/dependency!-- RetrievalAugmentationAdvisor 依赖包--dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-rag/artifactId/dependency!-- Milvus VectorStore 依赖包--dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-starter-vector-store-milvus/artifactId/dependency!-- Tika DocumentReader 依赖包--dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-tika-document-reader/artifactId/dependency/dependencies配置信息 application.ymlspring: 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模型配置ConfigurationRequiredArgsConstructorpublicclassChatConfig{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();}加载准备好的数据Slf4jComponentRequiredArgsConstructorpublicclassLoadData{finalMilvusVectorStore vectorStore;Value(${spring.ai.vectorstore.milvus.collection-name})privateString collectionName;PostConstructpublicvoidloadData()throwsIOException{ log.info(开始初始化数据{}, collectionName);OptionalObject nativeClient vectorStore.getNativeClient();if(nativeClient.isPresent()){ log.info(Milvus 客户端初始化成功);}else{ log.error(Milvus 客户端初始化失败);return;}MilvusServiceClient client (MilvusServiceClient) nativeClient.get();RGetCollectionStatisticsResponse 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);}}聊天接口RestControllerRequestMappingRequiredArgsConstructorpublicclassTalkController{finalChatClient chatClient;finalQuestionAnswerAdvisor questionAnswerAdvisor;finalRetrievalAugmentationAdvisor retrievalAugmentationAdvisor;/** * 聊天 * * param question 问题 * return 回复 */GetMapping(/talk)publicFluxStringtalk(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书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。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%免费】

相关新闻

GEO服务商哪家效果好:技术驱动下的市场洗牌与五强突围

GEO服务商哪家效果好:技术驱动下的市场洗牌与五强突围

引言:30亿市场的“中场哨响”,GEO行业进入价值重估关键期 2026年,中国GEO(生成式引擎优化)行业正经历一场深刻的结构性调整。据易观分析最新报告指出,随着AI搜索成为品牌与用户交互的核心入口,…

2026/5/17 3:41:23 阅读更多 →
如何在生产环境中部署Java调用淘宝商品详情API的项目?

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

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

2026/7/3 2:16:27 阅读更多 →
如何使用Python结合亚马逊商品详情API实现商品价格监控?

如何使用Python结合亚马逊商品详情API实现商品价格监控?

你想通过 Python 结合亚马逊商品详情 API 实现商品价格监控,核心是自动定时获取商品价格、对比预设阈值、价格达标时触发提醒,我会基于亚马逊官方 PA API 5.0(最合规的方式),提供一套「新手可落地、功能完整、稳定性高…

2026/5/17 3:41:23 阅读更多 →

最新新闻

超棒!无需网络的离线地图应用 Organic Maps,2025 年安装量达 600 万!

超棒!无需网络的离线地图应用 Organic Maps,2025 年安装量达 600 万!

Organic Maps:隐私保护离线地图应用Organic Maps 是注重隐私保护的离线地图与 GPS 应用,适用于徒步、骑行和驾车场景。它免费、无广告、不追踪,由开源社区及创建 MapsWithMe/Maps.Me 应用的同一批开发者打造,数据源自 OpenStreetM…

2026/7/6 9:08:13 阅读更多 →
基于Go抓包+Python CNN的本地化异常流量检测工具(含GUI界面与预训练模型)

基于Go抓包+Python CNN的本地化异常流量检测工具(含GUI界面与预训练模型)

本文还有配套的精品资源,点击获取 简介:直接在本地运行的异常流量识别工具,底层用Go语言实现高效网络数据包捕获和会话解析,支持TCP/UDP/ICMP协议的实时流量提取、窗口计数、主机行为建模和服务识别;上层采用Python…

2026/7/6 9:08:13 阅读更多 →
MATLAB直接跑的7输入RBF回归工具:带数据、代码和结果图,开箱即用

MATLAB直接跑的7输入RBF回归工具:带数据、代码和结果图,开箱即用

本文还有配套的精品资源,点击获取 简介:这个MATLAB RBF神经网络回归工具包专为7个输入特征预测1个连续数值目标设计,不需要额外工具箱,兼容2018b及以上版本。主程序MainRBFR.m一键完成数据加载、RBF网络搭建、训练、测试和预测…

2026/7/6 9:08:13 阅读更多 →
Playwright网络请求拦截与模拟实战:从原理到六大应用场景详解

Playwright网络请求拦截与模拟实战:从原理到六大应用场景详解

1. 项目概述与核心价值 如果你正在用 Playwright 做自动化测试或者数据抓取,有没有遇到过这样的场景:测试一个下单流程,但支付接口总是不稳定,导致你的测试脚本动不动就失败;或者你想测试前端页面在网络超时或服务器返…

2026/7/6 9:04:10 阅读更多 →
PyTorch LSTM 多变量多任务预测:3种损失函数加权策略对比与代码实现

PyTorch LSTM 多变量多任务预测:3种损失函数加权策略对比与代码实现

PyTorch LSTM 多变量多任务预测:3种损失函数加权策略对比与代码实现在时间序列预测领域,多任务学习正逐渐成为提升模型性能的关键技术。当我们需要同时预测多个相关变量时,传统的单任务学习方法往往难以捕捉变量间的复杂关系。本文将深入探讨…

2026/7/6 9:04:10 阅读更多 →
Python Selenium自动化校园网登录:从环境搭建到打包部署全攻略

Python Selenium自动化校园网登录:从环境搭建到打包部署全攻略

1. 项目概述与核心价值 校园网登录,尤其是像深澜Srun这类需要跳转认证页面的系统,对于需要长时间保持网络连接的用户来说,是个不大不小的痛点。手动打开浏览器、输入账号密码、点击登录,这套流程每天重复几次,不仅繁琐…

2026/7/6 9:04:10 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻