news 2026/7/5 11:55:05

Springai RAG 外挂知识库增强

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Springai RAG 外挂知识库增强

新建txt文档作为知识库

a.txt

根据考务编排,拟对2026年1月上半月批次消防设施操作员进行名额增补,现将有关计划事项公告如下: 一、增补人数 共增补1155人,其中维护保养方向155人,中级消防设施操作监控方向1000人。 二、增补人员鉴定考试时间 2026年1月1日至15日;具体考试时间由系统自动分配,以准考证日期为准。请参考考生携带身份证、准考证入场,准考证应清晰打印,确保文件中二维码清晰可扫描。 三、增补流程 1.系统将根据考生排名次序优先对预审核通过的考生发送报名成功短信提示。 2.本批次考生不收取鉴定费用。收到缴费短信为系统固定流程,考生无需进行缴费操作。 3.考试时间:续增考生的考试时间将由系统随机进行分配,请考生在收到打印准考证的短信后(缴费截止后1至2天后发送)及时打印准考证,并按照准考证上时间准时参加鉴定考试。 四、其他说明 具体考试要求请详细查看《辽宁省消防救援总队消防行业职业技能鉴定站2026年1月上半月消防设施操作员职业技能鉴定公告》。 辽宁消防救援总队消防行业职业技能鉴定站 地 址:辽宁省沈阳市皇姑区鸭绿江北街277号 联系电话:024-86608893、83990671(工作日8:30-11:30,14:00-16:30)。 电子邮箱:lnxfjdzx@163.com 辽宁省消防行业职业技能鉴定站官方网站:

写个CommandLineRunner在项目加载完读取知识库数据清洗存储到向量数据库(ETL)

@Bean CommandLineRunner commandLineRunner(@Value("classpath:a.txt")Resource resource, VectorStore vectorStore) { return args -> { String content = resource.getContentAsString(StandardCharsets.UTF_8);//E vectorStore.add( //L TokenTextSplitter.builder().build().apply( //T List.of(Document.builder().text( content).build()) )); }; }

写个配置类

@Bean public ChatClient chatClient( OpenAiChatModel chatModel, ChatMemory chatMemory, VectorStore vectorStore) { return ChatClient.builder(chatModel) .defaultAdvisors(new SimpleLoggerAdvisor(), MessageChatMemoryAdvisor.builder(chatMemory).build(), QuestionAnswerAdvisor.builder(vectorStore).searchRequest( SearchRequest.builder().topK(2).similarityThreshold(0.5).build() ).build()) .defaultToolCallbacks(tools) .build(); } @Bean public VectorStore vectorStore(OpenAiEmbeddingModel embeddingModel) { return SimpleVectorStore.builder(embeddingModel).build(); }

需要先引入依赖

<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-advisors-vector-store</artifactId> </dependency>

配置

spring.ai.openai.embedding.options.model=text-embedding-v4 logging.level.org.springframework.ai.vectorstore.SimpleVectorStore=debug

写个测试方法

@RequestMapping(produces="text/html;charset=UTF-8") public String index(String prompt){ return chatClient.prompt(prompt) .call() .content(); }

测试

成功!

查看日志:

2026-01-02T20:24:13.474+08:00 DEBUG 2672 --- [demo1] [nio-8080-exec-1] o.s.a.c.c.advisor.SimpleLoggerAdvisor : request: ChatClientRequest[prompt=Prompt{messages=[UserMessage{content='辽宁消防救援总队消防行业职业技能鉴定站地址 Context information is below, surrounded by --------------------- --------------------- 辽宁省消防行业职业技能鉴定站官方网站: 根据考务编排,拟对2026年1月上半月批次消防设施操作员进行名额增补,现将有关计划事项公告如下: 一、增补人数 共增补1155人,其中维护保养方向155人,中级消防设施操作监控方向1000人。 二、增补人员鉴定考试时间 2026年1月1日至15日;具体考试时间由系统自动分配,以准考证日期为准。请参考考生携带身份证、准考证入场,准考证应清晰打印,确保文件中二维码清晰可扫描。 三、增补流程 1.系统将根据考生排名次序优先对预审核通过的考生发送报名成功短信提示。 2.本批次考生不收取鉴定费用。收到缴费短信为系统固定流程,考生无需进行缴费操作。 3.考试时间:续增考生的考试时间将由系统随机进行分配,请考生在收到打印准考证的短信后(缴费截止后1至2天后发送)及时打印准考证,并按照准考证上时间准时参加鉴定考试。 四、其他说明 具体考试要求请详细查看《辽宁省消防救援总队消防行业职业技能鉴定站2026年1月上半月消防设施操作员职业技能鉴定公告》。 辽宁消防救援总队消防行业职业技能鉴定站 地 址:辽宁省沈阳市皇姑区鸭绿江北街277号 联系电话:024-86608893、83990671(工作日8:30-11:30,14:00-16:30)。 电子邮箱:lnxfjdzx@163.com --------------------- Given the context and provided history information and not prior knowledge, reply to the user comment. If the answer is not in the context, inform the user that you can't answer the question. ', properties={messageType=USER}, messageType=USER}], modelOptions=OpenAiChatOptions: {"streamUsage":false,"model":"qwen3-max","temperature":0.7}}, context={qa_retrieved_documents=[Document{id='73fe0c96-f081-43dc-ac93-187bd680829c', text='辽宁省消防行业职业技能鉴定站官方网站:', media='null', metadata={distance=0.1379932144851922}, score=0.8620067855148078}, Document{id='c62992f3-69c3-4518-94a7-e860d42e97f4', text='根据考务编排,拟对2026年1月上半月批次消防设施操作员进行名额增补,现将有关计划事项公告如下: 一、增补人数 共增补1155人,其中维护保养方向155人,中级消防设施操作监控方向1000人。 二、增补人员鉴定考试时间 2026年1月1日至15日;具体考试时间由系统自动分配,以准考证日期为准。请参考考生携带身份证、准考证入场,准考证应清晰打印,确保文件中二维码清晰可扫描。 三、增补流程 1.系统将根据考生排名次序优先对预审核通过的考生发送报名成功短信提示。 2.本批次考生不收取鉴定费用。收到缴费短信为系统固定流程,考生无需进行缴费操作。 3.考试时间:续增考生的考试时间将由系统随机进行分配,请考生在收到打印准考证的短信后(缴费截止后1至2天后发送)及时打印准考证,并按照准考证上时间准时参加鉴定考试。 四、其他说明 具体考试要求请详细查看《辽宁省消防救援总队消防行业职业技能鉴定站2026年1月上半月消防设施操作员职业技能鉴定公告》。 辽宁消防救援总队消防行业职业技能鉴定站 地 址:辽宁省沈阳市皇姑区鸭绿江北街277号 联系电话:024-86608893、83990671(工作日8:30-11:30,14:00-16:30)。 电子邮箱:lnxfjdzx@163.com', media='null', metadata={distance=0.3729048442074333}, score=0.6270951557925667}]}] 2026-01-02T20:24:15.930+08:00 DEBUG 2672 --- [demo1] [nio-8080-exec-1] o.s.a.c.c.advisor.SimpleLoggerAdvisor : response: { "result" : { "output" : { "messageType" : "ASSISTANT", "metadata" : { "role" : "ASSISTANT", "messageType" : "ASSISTANT", "finishReason" : "STOP", "refusal" : "", "index" : 0, "annotations" : [ ], "id" : "chatcmpl-8d0cf5d2-1f9c-9d5b-9728-5fd99d8cb571" }, "toolCalls" : [ ], "media" : [ ], "text" : "辽宁消防救援总队消防行业职业技能鉴定站地址是:**辽宁省沈阳市皇姑区鸭绿江北街277号**。" }, "metadata" : { "finishReason" : "STOP", "contentFilters" : [ ], "empty" : true } }, "results" : [ { "output" : { "messageType" : "ASSISTANT", "metadata" : { "role" : "ASSISTANT", "messageType" : "ASSISTANT", "finishReason" : "STOP", "refusal" : "", "index" : 0, "annotations" : [ ], "id" : "chatcmpl-8d0cf5d2-1f9c-9d5b-9728-5fd99d8cb571" }, "toolCalls" : [ ], "media" : [ ], "text" : "辽宁消防救援总队消防行业职业技能鉴定站地址是:**辽宁省沈阳市皇姑区鸭绿江北街277号**。" }, "metadata" : { "finishReason" : "STOP", "contentFilters" : [ ], "empty" : true } } ], "metadata" : { "id" : "chatcmpl-8d0cf5d2-1f9c-9d5b-9728-5fd99d8cb571", "model" : "qwen3-max", "rateLimit" : { "requestsLimit" : null, "requestsRemaining" : null, "requestsReset" : null, "tokensLimit" : null, "tokensRemaining" : null, "tokensReset" : null }, "usage" : { "promptTokens" : 2526, "completionTokens" : 29, "totalTokens" : 2555, "nativeUsage" : { "completion_tokens" : 29, "prompt_tokens" : 2526, "total_tokens" : 2555, "prompt_tokens_details" : { "cached_tokens" : 0 } } }, "promptMetadata" : [ ], "empty" : false } }

流程:

项目启动-->读取txt文档->tokenSplite分段->调用向量模型text-embedding-v4获取知识向量->存储到向量数据库

问一个问题->检索向量数据库->得到知识->提示词拼接加上匹配的知识->发送给大模型->返回得到输出

ETL RAG增强,通过外挂私有知识库增强

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

Qwen3-VL支持32种语言OCR识别,低光模糊场景表现优异

Qwen3-VL&#xff1a;重新定义多语言OCR与真实场景鲁棒性 在智能办公、跨境文档处理和移动端内容提取日益普及的今天&#xff0c;用户早已不再满足于“拍一张清晰图就能识别文字”的理想化OCR体验。现实往往是&#xff1a;昏暗灯光下的合同照片、手机抖动导致的模糊截图、夹杂中…

作者头像 李华
网站建设 2026/7/4 4:41:18

JLink烧录驱动开发:从零实现底层配置完整指南

JLink烧录驱动开发实战&#xff1a;手把手教你打造自动化编程系统在嵌入式产品从研发到量产的过程中&#xff0c;有一个环节看似简单却至关重要——程序烧录。你可能已经用过J-Flash点击“Download”按钮完成代码写入&#xff0c;也或许通过GDB Server调试过Cortex-M内核。但当…

作者头像 李华
网站建设 2026/7/1 19:45:42

Qwen3-VL读取LangChain流程图生成代码框架

Qwen3-VL读取LangChain流程图生成代码框架 在智能系统开发日益复杂的今天&#xff0c;一个常见的痛点浮现&#xff1a;设计者画出精美的架构图&#xff0c;工程师却要花数小时甚至数天去“翻译”成可运行的代码。这种割裂不仅拖慢了迭代速度&#xff0c;还容易因理解偏差引入错…

作者头像 李华
网站建设 2026/6/20 11:46:22

手把手教程:如何在DaVinci中配置AUTOSAR网络管理

手把手教程&#xff1a;如何在DaVinci中配置AUTOSAR网络管理从一个“睡不着”的ECU说起你有没有遇到过这样的场景&#xff1f;某天调试车载CAN网络&#xff0c;发现某个节点始终无法进入睡眠模式&#xff0c;整车静态电流居高不下。用CANoe抓包一看——原来是TPMS模块一直在发N…

作者头像 李华
网站建设 2026/7/5 3:46:52

Qwen3-VL提取微pe工具箱官网的功能说明文本

Qwen3-VL如何“看懂”网页并提取关键信息&#xff1a;以微pe工具箱官网为例 在当今软件工具层出不穷的环境下&#xff0c;用户常常面临一个看似简单却耗时费力的问题&#xff1a;如何快速、准确地从杂乱的官网页面中提取出某款工具的核心功能说明&#xff1f;尤其是像“微pe工…

作者头像 李华