规则模板提示词三层体系设计

规则/模板/提示词三层体系设计文档

1. 架构概述

规则(Rule)、模板(Template)、提示词(Prompt) 三者采用统一的三层存储体系

SCSAI 服务端 (源端)
    ↕  同步 (template-sync-service: SCSAI 元数据 → rule_engine.db)
    ↕  导入 (phase1-import: SQLite → SCSAI ItemType)
本地标准库 (sciot_import.db)
    ↕  同步 (sync-service: 标准库 → 用户库)
用户私有库 (user_<userId>.db)

三层定位:

  • SCSAI 服务端:数据权威源,所有标准规则/模板/提示词持久化在 SCSAI 的 5 个自定义 ItemType 中
  • 本地标准库sciot_import.db):SCSAI 数据的本地 SQLite 缓存,供离线查询和 LLM 调用
  • 用户私有库user_.db):每个用户的个性化副本,可覆盖标准数据、创建自定义条目、提交审核

2. SCSAI 服务端 — 涉及的 ItemType

2.1 BossAgent_Rule(规则)

| SCSAI 属性 | 标签 | 类型 | 说明 |

|-----------|------|------|------|

| item_number | 编号 | string(32) | 规则 ID,对应 SQLite 的 id |

| name | 规则名称 | string(256) | 规则名称 |

| description | 规则描述 | text | 规则详细说明 |

| bossagent_scope | 作用范围 | list | validate/create_pre/identify/get/add/edit/delete/generate/inspect/optimize/compare |

| bossagent_item_type | 关联对象类 | string(128) | 适用的 SCSAI ItemType 名称 |

| bossagent_severity | 严重级别 | list | error/warning/info/hint |

| bossagent_category | 规则分类 | list | 规则功能分类 |

| bossagent_priority | 优先级 | string(10) | 0=P0 ~ 3=P3 |

| bossagent_condition_script | 条件脚本 | text | 触发条件(JS 脚本或配置 JSON) |

| bossagent_action_type | 动作类型 | list | auto_fix/suggest/block/warn/reference/generate |

| bossagent_action_config | 动作配置 | text | 动作参数 JSON |

| bossagent_is_active | 是否启用 | boolean | 1=启用,0=禁用 |

| bossagent_is_builtin | 是否内置 | boolean | 1=系统内置,0=用户创建 |

| bossagent_source | 来源 | list | manual/aml_import/aras_sync/builtin |

| bossagent_version | 版本号 | integer | 版本号 |

| bossagent_tags | 标签 | string(512) | 逗号分隔标签 |

| bossagent_generated_aml | 生成的 AML | text | 规则生成的 AML 内容 |

| bossagent_natural_language | 自然语言描述 | text | 自然语言规则描述 |

创建方式: phase0-create-itemtypes.js:57-117

导入方式: phase1-import-to-aras.js — 从 sciot_rules_v2 表导入 2367 条

2.2 BossAgent_Template(模板)

| SCSAI 属性 | 标签 | 类型 | 说明 |

|-----------|------|------|------|

| item_number | 编号 | string(32) | 模板 ID |

| name | 模板名 | string(128) | 对应 item_type_name |

| bossagent_label | 显示名称 | string(128) | 中文/英文标签 |

| bossagent_template_type | 模板类型 | list | object/relationship/manual |

| bossagent_aml_content | AML 模板 | text | 创建 ItemType 的 AML 模板 XML |

| bossagent_variables | 变量定义 | text | {"llm_fields":[...], "auto_fields":[...]} |

| bossagent_required_fields | 必填字段 | text | 必填字段 JSON 数组 |

| bossagent_optional_fields | 可选字段 | text | 可选字段 JSON 数组 |

| bossagent_relationship_types | 关联类型 | text | 关联关系类型 JSON 数组 |

| bossagent_lifecycle | 生命周期 | string(128) | 默认生命周期名称 |

| bossagent_form | 默认表单 | string(128) | 默认表单名称 |

| bossagent_generation_rules | 生成规则 | text | {"child_objects":[], "nested_depth":0, "relationship_config":{}} |

| bossagent_version | 版本号 | integer | 版本号 |

| bossagent_is_builtin | 是否内置 | boolean | 是否为系统内置 |

创建方式: phase0-create-itemtypes.js:119-150

导入方式: phase1-import-to-aras.js — 从 sciot_templates 表导入 1205 条

2.3 BossAgent_Prompt(提示词)

| SCSAI 属性 | 标签 | 类型 | 说明 |

|-----------|------|------|------|

| item_number | 编号 | string(256) | 提示词 ID(注意长度 256,非默认的 32) |

| name | 名称 | string(256) | 提示词名称 |

| bossagent_content | 提示词内容 | text | 完整提示词文本(支持 {{变量}}) |

| bossagent_system_prompt | 系统提示词 | text | System prompt 内容 |

| bossagent_item_type | 关联对象类 | string(128) | 适用 ItemType |

| bossagent_operation | 操作类型 | list | add/create_pre/edit/identify/validate/compare 等 |

| bossagent_scope | 作用范围 | list | create/validate/identify 等 |

| bossagent_version | 版本号 | integer | 版本号 |

| bossagent_is_builtin | 是否内置 | boolean | 1=系统内置,0=用户创建 |

| bossagent_status | 状态 | list | active/deprecated/testing |

创建方式: phase0-create-itemtypes.js:151-159

导入方式: phase1-import-prompt.js — 从 prompt_templates 表导入 2817 条

注意: item_number 列宽必须为 nvarchar(256),否则 UUID 格式 ID(36 字符)会截断失败。

2.4 BossAgent_BizPrompt(业务提示词)

| SCSAI 属性 | 标签 | 类型 | 说明 |

|-----------|------|------|------|

| item_number | 编号 | string(32) | 业务提示词 ID |

| name | 名称 | string(128) | 业务系统名称 |

| bossagent_system_id | 系统 ID | string(128) | 业务系统标识符 |

| bossagent_system_prompt | 系统提示词 | text | 业务系统的 system prompt |

| bossagent_context_json | 上下文 JSON | text | 业务上下文配置 |

| bossagent_capabilities | 能力列表 | text | 能力描述 JSON 数组 |

创建方式: phase0-create-itemtypes.js

导入方式: phase1-import-prompt.js — 从 sciot_business_prompts 表导入 46 条

2.5 BossAgent_RuleContribution(规则贡献/审核)

| SCSAI 属性 | 标签 | 类型 | 说明 |

|-----------|------|------|------|

| item_number | 编号 | string(32) | 提交 ID |

| name | 名称 | string(128) | 提交标题 |

| bossagent_submitter | 提交者 | string(128) | 提交人 |

| bossagent_object_type | 对象类型 | list | rule/template/prompt |

| bossagent_original_id | 原标准 ID | string(256) | 对应标准库 ID |

| bossagent_content | 完整内容 | text | 提交的完整对象 JSON |

| bossagent_description | 说明 | text | 提交说明 |

| bossagent_status | 状态 | list | pending/approved/rejected |

| bossagent_review_comment | 审核意见 | text | 审核意见 |

创建方式: phase0-create-itemtypes.js

用途: 与本地 sync_submissions 表对应,用于将用户修改提交回 SCSAI 审核


3. 本地标准库 — 涉及的 SQLite 文件

3.1 文件清单

server/
├── sciot_import.db          (35.8 MB)   ← 本地标准库(完整数据源,勿覆盖)
├── data/
│   ├── sciot_import.db      (35.8 MB)   ← 标准库副本(供 sync-service 读取)
│   ├── rule_engine.db       (0.4 MB)    ← SCSAI 元数据缓存(ItemTypes/Properties 等)
│   ├── core_runtime.db        (1.6 MB)    ← 业务数据缓存
│   ├── user_libraries/
│   │   └── user_<userId>.db             ← 每用户私有库
│   └── enterprise_store.db              ← 企业私有库

3.2 sciot_import.db(标准库)— 核心表

| 表名 | 行数 | 说明 |

|------|------|------|

| sciot_rules_v2 | 2,367 | 规则主表 |

| sciot_templates | 1,205 | 模板主表(每 ItemType 一条) |

| prompt_templates | 2,817 | 提示词主表 |

| sciot_business_prompts | 46 | 业务提示词主表 |

辅助表(29+ 个):

sciot_item_types (928), sciot_properties (40,854), sciot_relationships (587),

sciot_lifecycle_maps (98), sciot_lifecycle_states (362), sciot_lists (427),

sciot_list_values (6,206), sciot_methods (2,236), sciot_method_rules (6,155),

sciot_forms (722), sciot_form_fields (3,110), sciot_business_objects (442), 等

3.3 sciot_rules_v2 表结构

CREATE TABLE sciot_rules_v2 (
    id            TEXT  PRIMARY KEY,      -- 规则 ID
    name          TEXT  NOT NULL,           -- 规则名称
    description   TEXT,                     -- 规则描述
    scope         TEXT  NOT NULL,           -- 作用范围
    item_type_name TEXT,                    -- 适用 ItemType
    severity      TEXT  DEFAULT 'warning',  -- 严重级别
    priority      INTEGER DEFAULT 2,        -- 优先级 (0-3)
    condition     TEXT,                     -- 条件配置 JSON
    condition_script TEXT,                  -- 条件 JS 脚本
    action_type   TEXT,                     -- 动作类型
    action_config TEXT,                     -- 动作配置 JSON
    action_script TEXT,                     -- 自定义动作 JS
    prompt_template TEXT,                   -- 内联提示词模板
    prompt_template_id TEXT,                -- 关联 prompt_templates.id
    is_active     INTEGER DEFAULT 1,        -- 是否启用
    is_builtin    INTEGER DEFAULT 0,        -- 是否内置
    source        TEXT DEFAULT 'manual',    -- 来源
    version       INTEGER DEFAULT 1,        -- 版本号
    tags          TEXT,                     -- 标签
    category      TEXT,                     -- 分类
    created_at    TEXT,                     -- 创建时间
    updated_at    TEXT                      -- 更新时间
);

3.4 sciot_templates 表结构

CREATE TABLE sciot_templates (
    id                INTEGER PRIMARY KEY AUTOINCREMENT, -- 模板 ID
    template_type     TEXT  NOT NULL DEFAULT 'object',    -- 模板类型
    item_type_name    TEXT  NOT NULL UNIQUE,              -- 目标 ItemType
    item_type_label   TEXT  DEFAULT '',                   -- 显示标签
    aml_template      TEXT  DEFAULT '',                   -- AML 模板 XML
    required_fields   TEXT  DEFAULT '[]',                 -- 必填字段
    optional_fields   TEXT  DEFAULT '[]',                 -- 可选字段
    keyed_field       TEXT  DEFAULT '',                   -- 键名字段
    relationship_types TEXT DEFAULT '[]',                  -- 关联类型
    lifecycle         TEXT  DEFAULT '',                   -- 生命周期
    form              TEXT  DEFAULT '',                   -- 默认表单
    llm_fields        TEXT  DEFAULT '[]',                 -- LLM 可生成字段
    auto_fields       TEXT  DEFAULT '[]',                 -- 系统自动填充字段
    generation_rules  TEXT  DEFAULT '{}',                 -- 生成规则 JSON
    created_at        TEXT                                -- 创建时间
);

3.5 prompt_templates 表结构

CREATE TABLE prompt_templates (
    id             TEXT  PRIMARY KEY,        -- 提示词 ID
    name           TEXT  NOT NULL,            -- 名称
    description    TEXT,                      -- 描述
    content        TEXT  NOT NULL,            -- 提示词正文
    variables      TEXT,                      -- 变量列表 JSON
    prompt_type    TEXT  DEFAULT 'creation',  -- 类型
    item_type_name TEXT,                      -- 适用 ItemType
    version        INTEGER DEFAULT 1,         -- 版本号
    status         TEXT  DEFAULT 'active',    -- 状态
    parent_id      TEXT,                      -- A/B 测试父级
    score          REAL  DEFAULT 0,           -- 质量评分
    usage_count    INTEGER DEFAULT 0,         -- 使用次数
    operation_type TEXT,                      -- 操作类型(追加列)
    system_prompt  TEXT,                      -- 系统提示词(追加列)
    scope          TEXT,                      -- 作用范围(追加列)
    is_builtin     INTEGER DEFAULT 0,         -- 是否内置(追加列)
    created_at     TEXT,                      -- 创建时间
    updated_at     TEXT                       -- 更新时间
);

3.6 sciot_business_prompts 表结构

CREATE TABLE sciot_business_prompts (
    id                   INTEGER PRIMARY KEY AUTOINCREMENT, -- ID
    system_id            TEXT  NOT NULL UNIQUE,              -- 业务系统标识
    system_name          TEXT  DEFAULT '',                   -- 系统名称
    system_prompt        TEXT  DEFAULT '',                   -- 系统提示词
    user_prompt_template TEXT  DEFAULT '',                   -- 用户提示词模板
    capabilities         TEXT  DEFAULT '[]',                 -- 能力描述 JSON
    created_at           TEXT                                -- 创建时间
);

4. 用户私有库 — 涉及的库和表

4.1 数据库位置

server/data/user_libraries/user_<userId>.db

每个用户一个独立 SQLite 文件,首次访问时自动创建。

4.2 user_rules

CREATE TABLE user_rules (
    id               TEXT  PRIMARY KEY,      -- 唯一 ID
    standard_id      TEXT,                    -- 对应标准库 ID(用于覆盖)
    name             TEXT  NOT NULL,          -- 规则名称
    category         TEXT  DEFAULT '',        -- 分类
    item_type_name   TEXT  DEFAULT '',        -- 适用 ItemType
    description      TEXT  DEFAULT '',        -- 描述
    tags             TEXT  DEFAULT '',        -- 标签
    condition        TEXT  DEFAULT '',        -- 条件
    condition_script TEXT  DEFAULT '',        -- 条件脚本
    action_type      TEXT  DEFAULT '',        -- 动作类型
    action_config    TEXT  DEFAULT '',        -- 动作配置
    priority         INTEGER DEFAULT 0,       -- 优先级
    severity         TEXT  DEFAULT 'info',    -- 严重级别
    scope            TEXT  DEFAULT '',        -- 作用范围
    enabled          INTEGER DEFAULT 1,       -- 启用状态
    is_builtin       INTEGER DEFAULT 0,       -- 是否内置
    source           TEXT  DEFAULT 'custom',  -- 来源 (custom/standard_copy/modified)
    origin_version   INTEGER DEFAULT 0,       -- 原始版本号
    current_version  INTEGER DEFAULT 1,       -- 当前版本号
    synced_to_server INTEGER DEFAULT 0,       -- 已提交到审核
    sync_status      TEXT  DEFAULT 'none',    -- 同步状态
    created_at       TEXT,                    -- 创建时间
    updated_at       TEXT,                    -- 更新时间
    local_modified_at TEXT                    -- 本地修改时间
);

4.3 user_templates

CREATE TABLE user_templates (
    id                 TEXT  PRIMARY KEY,     -- 唯一 ID
    standard_id        TEXT,                   -- 标准 ID
    name               TEXT  NOT NULL,         -- 模板名称
    type               TEXT  DEFAULT '',       -- 模板类型
    item_type_name     TEXT  DEFAULT '',       -- 适用 ItemType
    item_type_label    TEXT  DEFAULT '',       -- 显示标签
    description        TEXT  DEFAULT '',       -- 描述
    tags               TEXT  DEFAULT '',       -- 标签
    content            TEXT  DEFAULT '',       -- 内容
    variables          TEXT  DEFAULT '[]',     -- 变量定义
    category           TEXT  DEFAULT '',       -- 分类
    aml_template       TEXT  DEFAULT '',       -- AML 模板
    required_fields    TEXT  DEFAULT '[]',     -- 必填字段
    optional_fields    TEXT  DEFAULT '[]',     -- 可选字段
    keyed_field        TEXT  DEFAULT '',       -- 键名字段
    relationship_types TEXT  DEFAULT '[]',     -- 关联类型
    lifecycle          TEXT  DEFAULT '',       -- 生命周期
    form               TEXT  DEFAULT '',       -- 表单
    llm_fields         TEXT  DEFAULT '[]',     -- LLM 字段
    auto_fields        TEXT  DEFAULT '[]',     -- 自动字段
    generation_rules   TEXT  DEFAULT '{}',     -- 生成规则
    source             TEXT  DEFAULT 'custom', -- 来源
    origin_version     INTEGER DEFAULT 0,      -- 原始版本
    current_version    INTEGER DEFAULT 1,      -- 当前版本
    synced_to_server   INTEGER DEFAULT 0,      -- 已提交
    sync_status        TEXT  DEFAULT 'none',   -- 同步状态
    created_at         TEXT,                   -- 创建时间
    updated_at         TEXT,                   -- 更新时间
    local_modified_at  TEXT                    -- 本地修改时间
);

4.4 user_prompts

CREATE TABLE user_prompts (
    id               TEXT  PRIMARY KEY,       -- 唯一 ID
    standard_id      TEXT,                     -- 标准 ID
    name             TEXT  NOT NULL,           -- 提示词名称
    type             TEXT  DEFAULT '',         -- 类型
    item_type_name   TEXT  DEFAULT '',         -- 适用 ItemType
    description      TEXT  DEFAULT '',         -- 描述
    content          TEXT  DEFAULT '',         -- 提示词正文
    system_prompt    TEXT  DEFAULT '',         -- 系统提示词
    operation_type   TEXT  DEFAULT '',         -- 操作类型
    variables        TEXT  DEFAULT '[]',       -- 变量列表
    temperature      REAL  DEFAULT 0.3,       -- LLM 温度
    scope            TEXT  DEFAULT 'create',   -- 作用范围
    version          INTEGER DEFAULT 1,        -- 版本号
    status           TEXT  DEFAULT 'active',   -- 状态
    is_builtin       INTEGER DEFAULT 0,        -- 是否内置
    source           TEXT  DEFAULT 'custom',   -- 来源
    origin_version   INTEGER DEFAULT 0,        -- 原始版本
    current_version  INTEGER DEFAULT 1,        -- 当前版本
    synced_to_server INTEGER DEFAULT 0,        -- 已提交
    sync_status      TEXT  DEFAULT 'none',     -- 同步状态
    created_at       TEXT,                     -- 创建时间
    updated_at       TEXT,                     -- 更新时间
    local_modified_at TEXT                     -- 本地修改时间
);

4.5 辅助表

sync_submissions — 用户提交审核记录

CREATE TABLE sync_submissions (
    id             TEXT  PRIMARY KEY,
    user_id        TEXT  DEFAULT 'default',
    object_type    TEXT  NOT NULL,         -- rule/template/prompt
    object_id      TEXT  NOT NULL,
    original_id    TEXT,                    -- 对应的 standard_id
    content        TEXT  DEFAULT '{}',      -- 完整对象 JSON
    description    TEXT  DEFAULT '',
    status         TEXT  DEFAULT 'pending', -- pending/approved/rejected
    review_comment TEXT  DEFAULT '',
    submitted_at   TEXT,
    reviewed_at    TEXT
);

sync_state — 同步状态跟踪

CREATE TABLE sync_state (
    user_id          TEXT  PRIMARY KEY,
    last_sync_at     TEXT,
    standard_version TEXT  DEFAULT '0',
    rules_count      INTEGER DEFAULT 0,
    templates_count  INTEGER DEFAULT 0,
    prompts_count    INTEGER DEFAULT 0
);

5. 同步机制详解

5.1 数据流向总览

┌──────────────────────┐     phase1-import-to-aras.js
│  SCSAI 服务端          │  ◄──────────────────────────────
│  BossAgent_Rule      │         AML (ApplyItem)
│  BossAgent_Template  │
│  BossAgent_Prompt    │
│  BossAgent_BizPrompt │
└──────────┬───────────┘
           │
           │  template-sync-service.js (SCSAI 元数据同步)
           │  GET /api/private-library/sync/:type (企业库同步)
           ▼
┌──────────────────────┐
│  本地标准库            │  sciot_import.db (35.8MB)
│  sciot_import.db      │  含: sciot_rules_v2, sciot_templates,
│                       │       prompt_templates, sciot_business_prompts
└──────────┬───────────┘
           │
           │  sync-service.js (syncStandardToUser)
           │  POST /api/user-library/sync/standard
           ▼
┌──────────────────────┐
│  用户私有库            │  server/data/user_libraries/user_<id>.db
│  user_<userId>.db    │  含: user_rules, user_templates, user_prompts
│                       │       sync_submissions, sync_state
└──────────────────────┘

5.2 三条同步路径

#### 路径 A:SQLite → SCSAI(Phase 1 导入)

执行时机: 一次性批量导入

脚本: scripts/phase1-import-to-aras.js, scripts/phase1-import-prompt.js

方法: 逐条调用 SCSAI ApplyItem AML

映射关系:

| SQLite 表 | SCSAI ItemType | 导入条数 |

|-----------|---------------|----------|

| sciot_rules_v2 | BossAgent_Rule | 2,367 |

| sciot_templates | BossAgent_Template | 1,205 |

| prompt_templates | BossAgent_Prompt | 2,817 |

| sciot_business_prompts | BossAgent_BizPrompt | 46 |

关键实现细节:

  • 分页读取 (SELECT * FROM ... ORDER BY id),按 BATCH_SIZE(50)分批提交
  • 因 SCSAI 缺省 30s 超时对 50 条批量不够,改为逐条提交(per-item),每次间隔 20ms
  • item_number 列在 SCSAI SQL 中默认为 nvarchar(32),但 UUID 格式 ID(36 字符)会截断 → 需改为 nvarchar(256)
  • 使用 ApplyItem SOAP 调用(/server/InnovatorServer.aspx),非 Service.asmx
  • item_number 在 SCSAI 中不唯一,相同 ID 重复导入会创建重复行

#### 路径 B:SCSAI 元数据 → rule_engine.db(增量同步)

执行时机: 服务器启动时 + 按需调用

脚本: server/services/template-sync-service.js

方法: SCSAI OData 查询 → 写入 SQLite

同步内容:

  • ItemType 列表(名称、标签、config_id 等)
  • 属性定义(按 source_id 分组)
  • 关系类型(按 source_id)
  • 生命周期 & 状态
  • 列表值
  • 模板

注: 此路径同步的是 SCSAI 元数据(ItemTypes/Properties 结构),不是 Phase 1 导入的规则/模板/提示词数据本身。规则/模板/提示词的主体数据仅在路径 A 中导入。

#### 路径 C:标准库 → 用户私有库(sync-service)

执行时机: 按需(POST /api/user-library/sync/standard

代码: server/services/sync-service.jssyncStandardToUser(userId, options)

方法:

function syncStandardToUser(userId, options) {
    // 1. 读取标准库 sciot_import.db 中的全部数据
    //    - loadStandardRules()   → 2367 条
    //    - loadStandardTemplates() → 1205 条
    //    - loadStandardPrompts() → 2863 条 (2817+46)
    
    // 2. 对每条数据,检查用户库中是否已有 standard_id
    //    - 已有: 若 force=true 且来源为 standard_copy,则 UPDATE
    //    - 没有: INSERT,source='standard_copy'
    
    // 3. 更新 sync_state 表
}

差异化参数:

  • force: true — 强制更新已有标准副本(不覆盖用户修改的)
  • type: 'rules'|'templates'|'prompts' — 只同步指定类型

5.3 覆盖/合并机制

用户私有库支持两种覆盖模式:

标准覆盖(Override): 用户库中的条目如有 standard_id,则自动覆盖同 standard_id 的标准条目

  • 所有 getEffective*() 函数先收集用户覆盖,再合并标准数据
  • 规则按 priority 降序排列

自定义条目(Custom): 用户库中无 standard_id 的条目

  • 追加到有效列表末尾
  • source 标记为 'custom''modified'

5.4 提交审核流程

用户修改/创建 → POST /api/user-library/submit
                       │
                       ▼
                sync_submissions 表
                (status='pending')
                       │
         ┌─────────────┴─────────────┐
         ▼                           ▼
  POST .../approve           POST .../reject
  (status→'approved')        (status→'rejected')
         │                           │
         ▼                           ▼
  sync_status='approved'     sync_status='rejected'

当前限制: approve/reject 仅更新本地状态标记。实际回写到 sciot_import.db 或提交到 SCSAI BossAgent_RuleContribution 的功能尚未实现。


6. 涉及的主要代码文件

文件角色功能
scripts/phase0-create-itemtypes.js基础设施创建 5 个 BossAgent ItemType 及其属性、列表、权限
scripts/phase1-import-to-aras.js数据导入sciot_rules_v2 → BossAgent_Rule, sciot_templates → BossAgent_Template
scripts/phase1-import-prompt.js数据导入prompt_templates → BossAgent_Prompt, sciot_business_prompts → BossAgent_BizPrompt
scripts/_clean_rules.js数据清洗删除重复规则
scripts/_fix_columns.js数据清洗修复 ITEM_NUMBER 列宽
server/services/sync-service.js同步服务标准库 → 用户库同步(含完整字段映射)
server/services/user-library.js用户库服务用户库 CRUD、覆盖合并、提交审核
server/routes/user-library-routes.jsREST API21 个用户库端点(搜索/CRUD/同步/审核)
server/routes/private-library.jsREST API企业私有库 9 个端点
server/routes/unified-create.js创建服务7 步统一创建流程
server/services/template-sync-service.js元数据同步SCSAI ItemType 结构 → rule_engine.db
server/sqlite-compat.js基础设施sql.js 兼容层(替代 better-sqlite3)

7. REST API 端点汇总

7.1 用户私有库 /api/user-library/*

方法路径说明
GET/stats用户库统计(按来源分类计数)
GET/rules[?filter]规则列表(支持 category/source/item_type/scope/severity/search/enabled 筛选)
GET/rules/:id单条规则
POST/rules新建规则
PUT/rules/:id更新规则
DELETE/rules/:id删除规则
GET/templates[?filter]模板列表
GET/templates/:id单条模板
POST/templates新建模板
PUT/templates/:id更新模板
DELETE/templates/:id删除模板
GET/prompts[?filter]提示词列表
GET/prompts/:id单条提示词
POST/prompts新建提示词
PUT/prompts/:id更新提示词
DELETE/prompts/:id删除提示词
POST/sync/standard触发标准库同步
POST/submit提交审核
GET/submissions/pending待审核列表
POST/submissions/approve审核通过
POST/submissions/reject审核拒绝
GET/search?q=&type=统一搜索(跨规则/模板/提示词)

7.2 企业私有库 /api/private-library/*

方法路径说明
GET/stats企业库统计
GET/types对象类型列表
GET/search?q=搜索对象
GET/objects[?type=&page=&size=]分页对象列表
GET/objects/:id单条对象详情
POST/objects创建/保存对象
PUT/objects/:id更新对象
DELETE/objects/:id删除对象
POST/sync/:type从 SCSAI 同步

7.3 统一创建 /api/unified/*

方法路径说明
GET/type-template/:name获取类型模板
GET/item-types可创建的 ItemType 列表
POST/create7 步核心创建
POST/generate-propsLLM 属性生成
POST/apply-aml轻量 AML 转发

8. 常见问题与注意事项

  1. item_number 列宽:SCSAI SQL 表默认 nvarchar(32),BossAgent_Prompt 的 ID 含 UUID(36 字符),需改为 nvarchar(256),否则导入失败。
  1. item_number 不唯一:SCSAI 的 item_number 不强制唯一,相同 ID 重复导入会创建重复行。
  1. 批量 AML 超时:SCSAI 默认 30 秒超时对 50 条批量不够。建议逐条提交(per-item)或增加超时到 120 秒。
  1. sql.js 兼容层 bugsqlite-compat.jsStatement.all()显式列名 + WHERE 子句组合下可能返回 0 行,建议使用 SELECT * 并在 JS 中筛选。
  1. 用户库路由未挂载user-library-routes.js 的 API 已实现但未在 server.js 中注册。
  1. 审核写回未实现approveSubmissionrejectSubmission 仅更新本地状态,不写回标准库或 SCSAI。
  1. 两个 sciot_import.dbserver/sciot_import.db(35.8 MB,完整数据)和 server/data/sciot_import.db(原始 0.4 MB,不完整)。sync-service.js 现会自动检测并优先使用完整版。
← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁