测试知识库服务
@SpringBootTest
public class kbtest {
@Autowired
KnowledgeService knowledgeService;
final String KBID = "CBySw9WO3xujNSGx";
/**
* 测试创建知识库条目
* @throws IOException 如果发生IO异常
*/
@Test
public void testCreateKnowledge() throws IOException {
// 创建一个新的知识库条目,内容为"123456"
knowledgeService.createKnowledge("123456");
}
/**
* 测试添加分块嵌入到知识库
* @throws IOException 如果发生IO异常
*/
@Test
public void testAddChunkEmbedding() throws IOException {
// 更新知识库ID为CBySw9WO3xujNSGx的条目,添加内容为"chunk"的嵌入
knowledgeService.updateChunkEmbedding(KBID, "chunk");
}
/**
* 测试通过知识库ID搜索分块
* @throws IOException 如果发生IO异常
*/
@Test
public void testSearchChunk() throws IOException {
// 根据知识库ID搜索所有的分块
knowledgeService.searchChunkByKnowledgeId(KBID);
}
/**
* 测试添加空的分块到知识库
* @throws IOException 如果发生IO异常
*/
@Test
public void testAdd() throws IOException {
// 添加一个空的分块到知识库ID为CBySw9WO3xujNSGx的条目
knowledgeService.addEmptyChunk(KBID);
// 可以根据需要添加具体内容
// knowledgeService.addChunk(KBID, "具体内容");
}
/**
* 测试刷新知识库索引
* @throws IOException 如果发生IO异常
*/
@Test
public void testSearchChunks() throws IOException {
// 刷新知识库ID为CBySw9WO3xujNSGx的索引
knowledgeService.refreshKBIndex(KBID);
}
/**
* 测试通过分块文本搜索分块ID
* @throws IOException 如果发生IO异常
*/
@Test
public void testSearchChunkIdByKnowledgeId() throws IOException {
// 根据分块内容“chunk”搜索对应的分块ID
String s = knowledgeService.searchChunkIdByChunkText(KBID, "chunk");
System.out.println(s);
}
/**
* 测试删除分块
* @throws IOException 如果发生IO异常
*/
@Test
public void deleteChunk() throws IOException {
// 删除分块ID为SwhkIZABOzUgU4TQYImt的条目
knowledgeService.deleteByChunkId("SwhkIZABOzUgU4TQYImt");
}
}
每个方法的解释
1. testCreateKnowledge:测试创建一个新的知识库条目,条目内容为“123456”。
2. testAddChunkEmbedding:测试向指定的知识库条目(ID为`CBySw9WO3xujNSGx`)添加一个嵌入内容“chunk”。
3. testSearchChunk:测试通过知识库ID(`CBySw9WO3xujNSGx`)搜索所有的分块。
4. testAdd:测试向知识库条目(ID为`CBySw9WO3xujNSGx`)添加一个空的分块。注释的代码展示了如何添加具体内容的分块。
5. testSearchChunks:测试刷新指定知识库(ID为`CBySw9WO3xujNSGx`)的索引。注释掉如何获取和打印分块响应列表。
6. testSearchChunkIdByKnowledgeId:测试通过分块文本“chunk”搜索对应的分块ID,并打印结果。
7. deleteChunk:测试删除指定分块ID(`SwhkIZABOzUgU4TQYImt`)的条目。
改进的地方
一致性:使用统一的字符串常量`KBID`来表示知识库ID,避免重复代码,增强代码可读性。