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

相关推荐
浑水摸鱼仙君1 天前
SpringSecurity和Flux同时使用报未认证问题
java·ai·flux·springsecurity·springai
chaors2 天前
从零学RAG0x0d:AdvancedRAG检索后优化
langchain·llm·ai编程
CoderJia程序员甲2 天前
GitHub 热榜项目 - 日榜(2026-03-18)
ai·大模型·llm·github·ai教程
sg_knight2 天前
OpenClaw 和 Claude Code、Cursor、Copilot 有什么区别
llm·copilot·claude·cursor·code·claude-code·openclaw
土豆12502 天前
AI编程中的SKILL:理论与实践完全指南
llm·ai编程
码路飞2 天前
GTC 2026 最后一天,老黄扔了个 NemoClaw 出来,我连夜装上试了一下
人工智能·llm·nvidia
爱听歌的周童鞋2 天前
Nano-vLLM深度解读(上)
llm·vllm·scheduler·inference·nano-vllm·block manager
yinyan13142 天前
一起学springAI系列一:使用多种聊天模型
java·人工智能·spring boot·后端·spring·springai
java1234_小锋2 天前
基于LangChain的RAG与Agent智能体开发 - 使用LangChain调用大语言模型
人工智能·语言模型·langchain·rag
Shining05962 天前
前沿模型系列(三)《检索增强的语言模型》
人工智能·学习·其他·语言模型·自然语言处理·大模型·rag