ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

VeapAI 实战(三)知识主题与召回参数

VeapAI 实战(三)知识主题与召回参数 摘要本文是 VeapAI 企业 AI 知识库实战系列的第三篇聚焦知识主题与召回参数。文章先厘清知识主题在链路中的三重职责组织层级、绑定字段标准、承接问答召回参数再拆解两张核心表的设计要点随后演示页面操作流程并走读前后端源码入口。最后指出「参数外置」这一最值得借鉴的设计思路以及 enabled 字段类型等容易抄错的细节并给出可复现的两级主题与召回参数配置步骤。# 从零打通企业 AI 知识库全链路VeapAI 实战三知识主题与召回参数 关键词开源知识库、知识主题、RAG 召回参数 | 首发CSDN | 同步知乎 / 掘金![本系列 8 步流程总览当前③ 创建知识主题]## 主题这层到底管什么知识主题在链路里是个分类器但只做分类就浅了。VeapAI 里主题同时干了三件事组织层级父子主题、绑定字段标准standard_code、承接问答的召回参数通过配置表。第三件最容易被低估放最后说。## 表设计ai_knowledge_topic 关键字段| 字段 | 说明 || ---- | ---- || parent_id | 上级主题默认 0。预算评审项目 → 类别清单 → 费用明细项就是多级主题的用法 || code / title | 主题编码和标题 || standard_code | 绑定的元数据标准编码 || status / approval_status / open_status | 状态、审核状态、开放状态三件套 |注意 standard_code 是编码不是主键。标准本身有版本概念主题绑定编码比绑定 ID 稳标准的版本演进不影响主题这一侧的引用语义。主题和知识点是一对多ai_knowledge_entry.topic_id知识点留到第 5 篇讲。第二张表是 ai_app_topic_knowledge_config应用主题和知识主题之间的桥| 字段 | 说明 || ---- | ---- || app_topic_id / knowledge_topic_id | 两侧主键 || query_limit | 该知识主题最大召回条数必须正整数 || min_score | 最低匹配度阈值decimal(10,4)建议范围 0.0000–1.0000 || prepend_title | 命中知识点展示的前置标题 || sort | 同一应用主题下多个知识主题的追加顺序越小越靠前 || weight_factor / permission_factor | 权重系数、权限系数 || enabled | 0 停用 1 启用 |表上有条索引值得注意idx_app_topic_enabled_sort(app_topic_id, enabled, sort)。问答选知识主题时就是按这个顺序取索引和查询路径对上了。顺带看两个容易被略过的字段weight_factor权重系数和 permission_factor权限系数。这是两个方向的扩展位——权重管多个知识主题谁更权威召回后按系数调整排序权限管不同用户群看到的知识面配合租户和行权限做过滤。V1 里这两个字段先留在表里但加一个检索维度不用改表结构这件事已经提前安排好了。检索参数外置的价值不止是改数不改代码更是给未来的排序和权限维度留了座位。## 页面操作![知识主题列表]「AI 知识库 → 知识主题」建主题选上级主题、填编码标题、绑元数据标准编码。![应用知识配置]再到「AI 知识库 → 应用知识配置」把应用主题比如政策问答和知识主题绑上填召回条数、匹配度阈值、前置标题。一个应用挂多个知识主题时用排序字段控制先后。政策问答最后能答得好不好一半在模型一半就在这里这几个数。min_score 设高了召回空设低了噪音多下一篇解析完资料后第 7 篇调试搜索就是用来现场调这几个值的。## 源码走读两个入口都在 veap-ai 模块- com.veap.ai.controller.AiKnowledgeTopicControllerbasePath /knowledgeTopic标准 CRUD- com.veap.ai.controller.AiAppTopicKnowledgeConfigControllerbasePath /appTopicKnowledgeConfig。前端封装在 veap-ui/src/api/ai/knowledgeTopic.js 和 appTopicKnowledgeConfig.js页面在 veap-ui/src/views/ai/knowledgeTopic/、appTopicKnowledgeConfig/。## 一个容易抄错的点query_limit、min_score 这类召回参数很多实现是直接写在问答代码里的改一次发一次版。这里拆成配置表一行记录改完立刻生效而且每个知识主题各配各的不用互相迁就。这套参数外置的思路比参数本身更值得抄。顺带说一句enabled 是 char(1) 不是 tinyint查代码时别按数字处理。字段类型不一致在这种混合设计里是常见的坑SQL 里写清楚比注释管用。还有一个人性化字段prepend_title。它给命中的知识点加展示前置标题问答结果列表里每个命中项前面先给一行标题。用户看结果时是先扫标题再点进去的标题给对了命中列表的可读性好一大截。这个字段小但问答页的第一眼体验就在它身上。## 复现在第 2 篇的基础上建一个两级主题父主题 子主题再到应用知识配置里绑定一个应用主题query_limit 填 5、min_score 填 0.6后面第 6、7、8 篇会反复用到这组参数。下一篇讲最重的一环附件上传与文档解析统一 PDF 预览和页级片段是怎么来的。项目与源码https://gitee.com/mindock/veap
返回列表