当前位置: 首页 > news >正文

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增强,通过外挂私有知识库增强

http://www.jsqmd.com/news/184451/

相关文章:

  • Java SpringBoot+Vue3+MyBatis 养老保险管理系统系统源码|前后端分离+MySQL数据库
  • 快速理解嘉立创EDA中STM32器件库使用方法
  • AO3镜像站:突破访问限制的同人文化宝库
  • Keil5安装包下载常见问题深度剖析
  • Qwen3-VL密集型与MoE双架构对比:如何选择适合你的场景?
  • Java SpringBoot+Vue3+MyBatis 药品管理系统系统源码|前后端分离+MySQL数据库
  • Qwen3-VL识别商品包装条形码与生产信息
  • Qwen3-VL解析MyBatisPlus文档,自动生成数据库配置
  • 【洛谷】P1980 [NOIP 2013 普及组] 计数问题 题解
  • SpringBoot+Vue 一站式家装服务管理系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • Vue(Vue2/Vue3)毕业设计选题方向汇总(5大类高落地选题+技术方案)
  • Day41~实现一个猜数字游戏
  • 手把手教你配置AUTOSAR中NM报文唤醒功能
  • LangChainV1.0[01]-接入Ollama
  • 【2025最新】基于SpringBoot+Vue的医院档案管理系统管理系统源码+MyBatis+MySQL
  • Qwen3-VL识别Streamlit应用界面组件结构
  • C++课后习题训练记录Day61
  • Qwen3-VL读取地图截图规划最优出行路线
  • Qwen3-VL读取京东云NeuFoundry控制台
  • Qwen3-VL从模型合并界面选择最优组合策略
  • Sonic SLA服务等级协议承诺99.9%可用性
  • C++课后习题训练记录Day62
  • Qwen3-VL识别动漫角色并关联作品与声优
  • 搞懂malloc底层原理后,我用C++17 PMR写了一个5倍性能的分配器
  • SpringBoot+Vue 疫情物资管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • C++课后习题训练记录Day64
  • 手把手教程:如何在DaVinci中配置AUTOSAR网络管理
  • Qwen3-VL长文本处理达1M上下文,书籍视频秒级索引
  • Qwen3-VL模拟用户点击流程完成任务自动化
  • Qwen3-VL辅助盲人‘看’图:图像内容语音描述生成