在 kbot3 测试中删除业务域时,若出现无法删除的提示,不一定是界面操作异常,更可能是该业务域仍关联知识库或提示词数据。

01 | 先看报错信息

删除时提示:

Cannot delete, this domain contains business (Knowledge base or prompt) data.

含义很明确:当前业务域中还存在业务数据,包括 Knowledge base 或 prompt,因此系统禁止直接删除。

02 | 开发者模式定位校验规则

在 APEX 开发者模式中,可以看到报错来自页面校验:

component.name: Include subset check

进入对应页面,找到相关 validation,校验代码如下:

DECLARE
 ln_cnt1 NUMBER;
 ln_cnt2 NUMBER;
BEGIN

 SELECT COUNT(1) INTO ln_cnt1 FROM kbot_md_prompt WHERE app_id = :app_id AND domain_id = :P45_DOMAIN_ID;
 SELECT COUNT(1) INTO ln_cnt2 FROM kbot_md_kb WHERE app_id = :app_id AND domain_id = :P45_DOMAIN_ID;

 IF ln_cnt1 > 0 OR ln_cnt2 > 0 THEN
 RETURN FALSE;
 ELSE
 RETURN TRUE;
 END IF;

END;

这段逻辑会检查两张表:

  • kbot_md_prompt:提示词数据
  • kbot_md_kb:知识库数据

只要任意一张表中存在当前业务域的记录,删除校验就不会通过。

03 | 查询并清理关联记录

可以进一步查询关联数据,例如:

SELECT * FROM kbot_md_kb 
WHERE app_id = 1001
AND domain_id = 21

笔者查询后发现,kbot_md_kb 中存在对应记录。清理该业务域关联的知识库或提示词记录后,再回到界面执行删除,即可删除成功。

关注我,和AI一起成长~


原文地址: https://www.cveoy.top/t/topic/qHiK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录