news 2026/4/16 11:14:36

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/4/6 3:32:56

Qwen3-VL如何实现PC与移动端GUI的自动操作?

Qwen3-VL如何实现PC与移动端GUI的自动操作&#xff1f; 在智能手机和电脑界面日益复杂的今天&#xff0c;用户每天面对成百上千个按钮、菜单和弹窗。有没有可能让AI像人一样“看”懂屏幕&#xff0c;听懂指令&#xff0c;然后替我们完成点击、输入、滑动这些重复操作&#xff…

作者头像 李华
网站建设 2026/4/9 18:36:02

【洛谷】P1980 [NOIP 2013 普及组] 计数问题 题解

题目背景 NOIP2013 普及组 T1 题目描述 试计算在区间 1 到 n 的所有整数中&#xff0c;数字 x&#xff08;0≤x≤9&#xff09;共出现了多少次&#xff1f;例如&#xff0c;在 1 到 11 中&#xff0c;即在 1,2,3,4,5,6,7,8,9,10,11 中&#xff0c;数字 1 出现了 4 次。 输入…

作者头像 李华
网站建设 2026/4/13 6:34:09

Qwen3-VL识别Mathtype公式的LaTeX底层代码

Qwen3-VL识别Mathtype公式的LaTeX底层代码 在科研、教学和出版的日常工作中&#xff0c;一个看似简单却极其耗时的问题反复出现&#xff1a;如何将一张图片中的数学公式&#xff0c;准确无误地转化为可编辑的LaTeX代码&#xff1f;尤其是当这些公式来自PDF扫描件、PPT截图或学生…

作者头像 李华
网站建设 2026/4/3 22:11:24

Qwen3-VL助力Markdown转HTML,技术文档自动化生成

Qwen3-VL助力Markdown转HTML&#xff0c;技术文档自动化生成 在技术团队日复一日的协作中&#xff0c;一个看似简单却反复消耗精力的任务正悄然浮现&#xff1a;如何把一份结构清晰、图文并茂的技术文档&#xff0c;快速变成可发布、可交互的网页&#xff1f;尤其是当这份文档包…

作者头像 李华
网站建设 2026/4/12 7:10:22

Qwen3-VL辅助开发ComfyUI自定义节点工作流

Qwen3-VL辅助开发ComfyUI自定义节点工作流 在AI图像生成工具日益普及的今天&#xff0c;开发者们面临一个现实矛盾&#xff1a;一方面&#xff0c;像 ComfyUI 这样的节点式工作流系统提供了无与伦比的灵活性和可复现性&#xff1b;另一方面&#xff0c;其高度依赖手动配置、代码…

作者头像 李华