feat(annotation): 实现标注结果同步到知识管理功能

- 在知识条目实体中新增来源数据集ID和文件ID字段
- 实现标注编辑器中同步标注结果到知识管理的服务逻辑
- 添加知识同步服务类处理标注到知识条目的转换和同步
- 实现通过下载接口获取文本内容的独立服务模块
- 更新知识条目查询接口支持按来源数据集和文件ID过滤
- 自动创建和关联标注项目对应的知识集
- 支持文本和Markdown文件的内容合并标注结果
- 添加同步过程中的错误处理和日志记录机制
This commit is contained in:
2026-01-21 16:09:34 +08:00
parent 6baf66b304
commit 73f0ab65fa
7 changed files with 422 additions and 46 deletions

View File

@@ -71,7 +71,13 @@ public class KnowledgeItemApplicationService {
KnowledgeItem knowledgeItem = KnowledgeConverter.INSTANCE.convertToKnowledgeItem(request);
knowledgeItem.setId(UUID.randomUUID().toString());
knowledgeItem.setSetId(setId);
knowledgeItem.setSourceType(KnowledgeSourceType.MANUAL);
if (StringUtils.isNotBlank(request.getSourceDatasetId()) || StringUtils.isNotBlank(request.getSourceFileId())) {
knowledgeItem.setSourceType(KnowledgeSourceType.DATASET_FILE);
} else {
knowledgeItem.setSourceType(KnowledgeSourceType.MANUAL);
}
knowledgeItem.setSourceDatasetId(request.getSourceDatasetId());
knowledgeItem.setSourceFileId(request.getSourceFileId());
if (knowledgeItem.getStatus() == null) {
knowledgeItem.setStatus(KnowledgeStatusType.DRAFT);
}

View File

@@ -30,6 +30,8 @@ public class KnowledgeItemRepositoryImpl extends CrudRepository<KnowledgeItemMap
.eq(StringUtils.isNotBlank(query.getOwner()), KnowledgeItem::getOwner, query.getOwner())
.eq(StringUtils.isNotBlank(query.getSensitivity()), KnowledgeItem::getSensitivity, query.getSensitivity())
.eq(query.getSourceType() != null, KnowledgeItem::getSourceType, query.getSourceType())
.eq(StringUtils.isNotBlank(query.getSourceDatasetId()), KnowledgeItem::getSourceDatasetId, query.getSourceDatasetId())
.eq(StringUtils.isNotBlank(query.getSourceFileId()), KnowledgeItem::getSourceFileId, query.getSourceFileId())
.ge(query.getValidFrom() != null, KnowledgeItem::getValidFrom, query.getValidFrom())
.le(query.getValidTo() != null, KnowledgeItem::getValidTo, query.getValidTo());

View File

@@ -77,4 +77,12 @@ public class CreateKnowledgeItemRequest {
* 扩展元数据
*/
private String metadata;
/**
* 来源数据集ID(用于标注同步等场景)
*/
private String sourceDatasetId;
/**
* 来源文件ID(用于标注同步等场景)
*/
private String sourceFileId;
}

View File

@@ -61,6 +61,14 @@ public class KnowledgeItemPagingQuery extends PagingQuery {
* 来源类型
*/
private KnowledgeSourceType sourceType;
/**
* 来源数据集ID
*/
private String sourceDatasetId;
/**
* 来源文件ID
*/
private String sourceFileId;
/**
* 有效期开始
*/