♻️Refactor: RAG 加载处理MarkDown知识库文件

This commit is contained in:
2025-11-08 22:57:27 +08:00
parent d1c52e2bf6
commit 329452e6bc
4 changed files with 69 additions and 0 deletions
+6
View File
@@ -77,6 +77,12 @@
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-markdown-document-reader</artifactId>
<version>1.0.3</version>
</dependency>
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -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<Document> loadMarkdown() {
MarkdownDocumentReaderConfig config = MarkdownDocumentReaderConfig.builder()
.withHorizontalRuleCreateDocument(true)
.withIncludeCodeBlock(false)
.withIncludeBlockquote(false)
.build();
MarkdownDocumentReader reader = new MarkdownDocumentReader(docs[0], config);
return reader.get();
}
}
+4
View File
@@ -0,0 +1,4 @@
# 成绩统计规则集
- 约束:当涉及到“成绩”“绩点”关键词时应用此规则集
- 约定:默认成绩分层 1:3:5:1,分别为优秀、良好、合格、待改进
@@ -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<Document> documents = markdownReader.loadMarkdown();
for (Document document : documents) {
System.out.println(document);
}
}
}