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

相关推荐
冬奇Lab2 小时前
RAG 系列(二):用 LangChain 搭建你的第一个 RAG Pipeline
人工智能·langchain·llm
Flying pigs~~2 小时前
Agent 完整面试指南:原理、框架、架构模式
大模型·prompt·agent·rag·agent架构·人工只能
Flying pigs~~4 小时前
RAG 完整面试指南:原理、优化、幻觉解决方案
人工智能·prompt·rag·智能体·检索增强生成·rag优化
薛定谔的猫3698 小时前
深度解析:大语言模型 (LLM) Agent 的架构与演进趋势
ai·llm·agent·技术趋势·artificial intelligence
han_8 小时前
一篇看懂国内外主流大模型:GPT、Claude、Gemini、DeepSeek、通义千问有什么区别?
前端·人工智能·llm
Elcker9 小时前
企业级RAG应用构建手册
人工智能·rag
Flynt11 小时前
在K8s上部署vLLM的完整踩坑记录
llm
赵康12 小时前
智人曾经这样灭绝猛犸象:AI入侵与行业灭绝
ai·llm
abigale0313 小时前
LangChain:自定义模型・RAG 检索・Agent 原理笔记
langchain·llm·prompt·agent·rag·lcel