feat: govern knowledge assets and source citations

This commit is contained in:
key
2026-08-02 01:43:43 +08:00
parent cafb836cda
commit 699cc08050
144 changed files with 17205 additions and 453 deletions
+36 -2
View File
@@ -48,8 +48,8 @@ CREATE TABLE IF NOT EXISTS `aihr_knowledge_attach` (
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_aihr_knowledge_attach_name` (`knowledge_id`, `name`),
KEY `idx_aihr_knowledge_attach_doc` (`doc_id`),
KEY `idx_aihr_knowledge_attach_name` (`tenant_id`, `knowledge_id`, `name`),
UNIQUE KEY `uk_aihr_knowledge_attach_doc` (`tenant_id`, `knowledge_id`, `doc_id`),
KEY `idx_aihr_knowledge_attach_category` (`tenant_id`, `knowledge_id`, `category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 知识库附件';
@@ -92,6 +92,40 @@ CREATE TABLE IF NOT EXISTS `aihr_knowledge_fragment` (
FULLTEXT KEY `ft_aihr_knowledge_fragment_content` (`content`) WITH PARSER ngram
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AI HR 知识片段';
CREATE TABLE IF NOT EXISTS `aihr_knowledge_fragment_locator` (
`id` bigint NOT NULL AUTO_INCREMENT,
`tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`fragment_id` bigint NOT NULL,
`knowledge_id` bigint NOT NULL,
`doc_id` varchar(80) DEFAULT NULL,
`attachment_id` bigint DEFAULT NULL,
`source_kind` varchar(12) NOT NULL,
`page_number` int DEFAULT NULL,
`slide_number` int DEFAULT NULL,
`paragraph_start` int DEFAULT NULL,
`paragraph_end` int DEFAULT NULL,
`sheet_name` varchar(255) DEFAULT NULL,
`row_start` int DEFAULT NULL,
`row_end` int DEFAULT NULL,
`start_ms` bigint DEFAULT NULL,
`end_ms` bigint DEFAULT NULL,
`frame_ms` bigint DEFAULT NULL,
`locator_version` varchar(32) NOT NULL DEFAULT 'v1',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_aihr_fragment_locator_fragment` (`tenant_id`, `fragment_id`),
KEY `idx_aihr_fragment_locator_attachment` (`tenant_id`, `attachment_id`, `source_kind`),
CONSTRAINT `ck_aihr_fragment_locator_kind` CHECK (`source_kind` in ('TEXT','PDF','DOCX','PPTX','XLSX','IMAGE','VIDEO')),
CONSTRAINT `ck_aihr_fragment_locator_nonnegative` CHECK (
(`page_number` is null or `page_number` >= 0) and (`slide_number` is null or `slide_number` >= 0) and
(`paragraph_start` is null or `paragraph_start` >= 0) and (`paragraph_end` is null or `paragraph_end` >= 0) and
(`row_start` is null or `row_start` >= 0) and (`row_end` is null or `row_end` >= 0) and
(`start_ms` is null or `start_ms` >= 0) and (`end_ms` is null or `end_ms` >= 0) and
(`frame_ms` is null or `frame_ms` >= 0)
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Knowledge fragment source location sidecar';
CREATE TABLE IF NOT EXISTS `aihr_knowledge_acl` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` varchar(20) NOT NULL COMMENT '租户编号',