feat: 增加RAG知识库与文档基础骨架

This commit is contained in:
2026-05-18 22:32:53 +08:00
parent 18386fde63
commit 4a20a25282
15 changed files with 360 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
package com.bruce.common.enumconfig;
import com.bruce.common.enums.BaseDictEnum;
import com.bruce.common.enums.EnableStatusEnum;
import com.bruce.rag.enums.RagIndexStatusEnum;
import com.bruce.rag.enums.RagParseStatusEnum;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
class EnumDefinitionTests {
@Test
void enumDefinitionsShouldExist() {
assertTrue(BaseDictEnum.class.isAssignableFrom(EnableStatusEnum.class));
assertTrue(BaseDictEnum.class.isAssignableFrom(RagParseStatusEnum.class));
assertTrue(BaseDictEnum.class.isAssignableFrom(RagIndexStatusEnum.class));
}
@Test
void enumCodesShouldBeStable() {
assertEquals("ENABLED", EnableStatusEnum.ENABLED.getCode());
assertEquals("DISABLED", EnableStatusEnum.DISABLED.getCode());
assertEquals("UPLOADED", RagParseStatusEnum.UPLOADED.getCode());
assertEquals("FAILED", RagParseStatusEnum.FAILED.getCode());
assertEquals("PENDING", RagIndexStatusEnum.PENDING.getCode());
assertEquals("INDEXED", RagIndexStatusEnum.INDEXED.getCode());
}
}

View File

@@ -0,0 +1,49 @@
package com.bruce.rag;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bruce.rag.constant.RagSystemConstants;
import com.bruce.rag.controller.RagDocumentController;
import com.bruce.rag.controller.RagStoreController;
import com.bruce.rag.entity.RagDocument;
import com.bruce.rag.entity.RagStore;
import com.bruce.rag.mapper.RagDocumentMapper;
import com.bruce.rag.mapper.RagStoreMapper;
import com.bruce.rag.service.IRagDocumentService;
import com.bruce.rag.service.IRagStoreService;
import com.bruce.rag.service.impl.RagDocumentServiceImpl;
import com.bruce.rag.service.impl.RagStoreServiceImpl;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Field;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
class RagComponentStructureTests {
@Test
void ragComponentsShouldReuseMybatisPlusBaseTypes() {
assertTrue(BaseMapper.class.isAssignableFrom(RagStoreMapper.class));
assertTrue(BaseMapper.class.isAssignableFrom(RagDocumentMapper.class));
assertTrue(IService.class.isAssignableFrom(IRagStoreService.class));
assertTrue(IService.class.isAssignableFrom(IRagDocumentService.class));
assertTrue(ServiceImpl.class.isAssignableFrom(RagStoreServiceImpl.class));
assertTrue(ServiceImpl.class.isAssignableFrom(RagDocumentServiceImpl.class));
}
@Test
void ragSourceTypesAndDocumentRelationShouldExist() throws NoSuchFieldException {
Field storeIdField = RagDocument.class.getDeclaredField("storeId");
Field attachmentIdField = RagDocument.class.getDeclaredField("attachmentId");
assertEquals("RAG_STORE", RagSystemConstants.RAG_STORE);
assertEquals("RAG_DOCUMENT", RagSystemConstants.RAG_DOCUMENT);
assertEquals(Long.class, storeIdField.getType());
assertEquals(Long.class, attachmentIdField.getType());
assertTrue(RagStore.class.getSimpleName().contains("RagStore"));
assertTrue(RagStoreController.class.getSimpleName().contains("RagStoreController"));
assertTrue(RagDocumentController.class.getSimpleName().contains("RagDocumentController"));
}
}