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

相关推荐
递归尽头是星辰8 小时前
大模型与向量检索的融合:从核心原理到 Spring AI 落地
人工智能·大模型·向量检索·rag·spring ai·向量库
CoderJia程序员甲9 小时前
GitHub 热榜项目 - 日榜(2026-01-25)
开源·大模型·llm·github·ai教程
laplace012310 小时前
大模型整个训练流程
人工智能·深度学习·embedding·agent·rag
山顶夕景12 小时前
【RL】Absolute Zero: Reinforced Self-play Reasoning with Zero Data
大模型·llm·强化学习·rl
勇气要爆发13 小时前
Docker+Ollama+LangChain:从零搭建企业级“隐私优先”本地 RAG 知识库 (附源码)
docker·容器·langchain·lora·rag·ollama·llama 3
带刺的坐椅14 小时前
Solon AI Remote Skills:开启分布式技能的“感知”时代
java·llm·solon·mcp·skills
CoderJia程序员甲15 小时前
GitHub 热榜项目 - 日榜(2026-01-24)
git·ai·开源·llm·github
沛沛老爹15 小时前
Web开发者转型AI安全实战:Agent Skills敏感数据脱敏架构设计
java·开发语言·人工智能·安全·rag·skills
xixixi7777715 小时前
RAG越权检索与变形指令/隐写规避常态化:攻击者通过Base64、TokenBreak、字符插入与多轮引导,诱导模型泄露知识库或训练集中的敏感信息
网络·安全·大模型·网络攻击模型·攻击·rag·越权检索
X.Cristiano16 小时前
LLM调用工具协议:Plugin、Function Call与MCP的深度解析
llm·tools·mcp