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

相关推荐
warm3snow7 小时前
Claude Code 黑客马拉松:5 个获奖项目,没有一个是"纯码农"做的
ai·大模型·llm·agent·skill·mcp
马腾化云东12 小时前
Agent开发应知应会(langfuse):Langfuse Score概念详解和实战应用
人工智能·llm·ai编程
Baihai_IDP12 小时前
HackerNews 热榜第一名:AGI 的 A,原来代表的是 Ads(广告)
人工智能·程序员·llm
吴佳浩15 小时前
OpenClaw Windows 完整安装与本地模型配置教程(实战版)
llm·openai
吴佳浩2 天前
《大模型的文件形态:Qwen3 文件结构与计算流程深度拆解》
人工智能·llm
EdisonZhou2 天前
MAF快速入门(17)用户智能体交互协议AG-UI(中)
llm·aigc·agent
精神状态良好2 天前
实战:从零构建本地 Code Review 插件
前端·llm
智泊AI2 天前
LangChain到底是什么?LangChain的核心组件有哪些?
llm
deephub2 天前
向量搜索系统的三个核心优化维度:速度、精度与规模
人工智能·python·rag·检索
马里马里奥-2 天前
文献阅读:Next-Generation Database Interfaces: A Survey of LLM-Based Text-to-SQL
llm·nlp2sql