From 329452e6bcd8df91f0adb079cd4c673a1c9d240e Mon Sep 17 00:00:00 2001 From: Wonder Date: Sat, 8 Nov 2025 22:57:27 +0800 Subject: [PATCH] =?UTF-8?q?=20=E2=99=BB=EF=B8=8FRefactor:=20RAG=20?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=A4=84=E7=90=86MarkDown=E7=9F=A5=E8=AF=86?= =?UTF-8?q?=E5=BA=93=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Backend/pom.xml | 6 ++++ .../com/wonder/bi/rag/MyMarkdownReader.java | 34 +++++++++++++++++++ Backend/src/main/resources/rag/doc1.md | 4 +++ .../wonder/bi/rag/MyMarkdownReaderTest.java | 25 ++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 Backend/src/main/java/com/wonder/bi/rag/MyMarkdownReader.java create mode 100644 Backend/src/main/resources/rag/doc1.md create mode 100644 Backend/src/test/java/com/wonder/bi/rag/MyMarkdownReaderTest.java diff --git a/Backend/pom.xml b/Backend/pom.xml index 65b81d1..8004280 100644 --- a/Backend/pom.xml +++ b/Backend/pom.xml @@ -77,6 +77,12 @@ 1.0.3 + + org.springframework.ai + spring-ai-markdown-document-reader + 1.0.3 + + org.springframework.boot diff --git a/Backend/src/main/java/com/wonder/bi/rag/MyMarkdownReader.java b/Backend/src/main/java/com/wonder/bi/rag/MyMarkdownReader.java new file mode 100644 index 0000000..01c690f --- /dev/null +++ b/Backend/src/main/java/com/wonder/bi/rag/MyMarkdownReader.java @@ -0,0 +1,34 @@ +package com.wonder.bi.rag; + +import org.springframework.ai.document.Document; +import org.springframework.ai.reader.markdown.MarkdownDocumentReader; +import org.springframework.ai.reader.markdown.config.MarkdownDocumentReaderConfig; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.util.List; + +@Component +public class MyMarkdownReader { + + private final Resource[] docs; + + MyMarkdownReader() throws IOException { + ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); + this.docs = resolver.getResources("classpath:rag/*.md"); + } + + List loadMarkdown() { + MarkdownDocumentReaderConfig config = MarkdownDocumentReaderConfig.builder() + .withHorizontalRuleCreateDocument(true) + .withIncludeCodeBlock(false) + .withIncludeBlockquote(false) + .build(); + + MarkdownDocumentReader reader = new MarkdownDocumentReader(docs[0], config); + return reader.get(); + } +} diff --git a/Backend/src/main/resources/rag/doc1.md b/Backend/src/main/resources/rag/doc1.md new file mode 100644 index 0000000..38a48a4 --- /dev/null +++ b/Backend/src/main/resources/rag/doc1.md @@ -0,0 +1,4 @@ +# 成绩统计规则集 + +- 约束:当涉及到“成绩”“绩点”关键词时应用此规则集 +- 约定:默认成绩分层 1:3:5:1,分别为优秀、良好、合格、待改进 \ No newline at end of file diff --git a/Backend/src/test/java/com/wonder/bi/rag/MyMarkdownReaderTest.java b/Backend/src/test/java/com/wonder/bi/rag/MyMarkdownReaderTest.java new file mode 100644 index 0000000..a84f88d --- /dev/null +++ b/Backend/src/test/java/com/wonder/bi/rag/MyMarkdownReaderTest.java @@ -0,0 +1,25 @@ +package com.wonder.bi.rag; + +import jakarta.annotation.Resource; +import org.junit.jupiter.api.Test; +import org.springframework.ai.document.Document; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +@SpringBootTest +class MyMarkdownReaderTest { + + @Resource + private MyMarkdownReader markdownReader; + + @Test + void loadMarkdown() { + List documents = markdownReader.loadMarkdown(); + for (Document document : documents) { + System.out.println(document); + } + } +} \ No newline at end of file