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