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

相关推荐
冬奇Lab7 小时前
Agent 系列(18):成本与性能优化——省钱且更快
人工智能·llm·agent
吴佳浩8 小时前
Hermes vs OpenClaw:基于源码的 Agent Loop 全面分析
人工智能·llm·agent
AndrewHZ10 小时前
【LLM技术全景】规模定律与模型演进:为什么模型越大越强?
人工智能·gpt·深度学习·语言模型·llm·openai·规模定律
装不满的克莱因瓶10 小时前
了解 LangChain 中的 LLM 与 ChatModel 的差异
人工智能·python·ai·langchain·llm·agent·chatmodel
颜酱10 小时前
LangChain 工具调用:从原理、入门到落地
langchain·llm
swipe10 小时前
做多轮对话 Agent,为什么我建议把短期记忆放到 Redis
后端·面试·llm
黑马师兄11 小时前
RAG混合检索深度解析:让AI真正找到你要的内容
java·人工智能·ai·agent·rag·ai-native
swipe11 小时前
别再把关系库和向量库拆开了:PostgreSQL 搭建 AI 长期记忆层实战
面试·langchain·llm
元Y亨H14 小时前
大数据转大模型(LLM)进阶学习路线图
大数据·llm
小lan猫18 小时前
用 AI Agent 让购物更便捷:LumiGlow 电商网站实践
前端框架·llm·agent