You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TRAE企业知识库集成:自定义知识分类实操教程

[1] 一句话结论

本指南将手把手教你完成TRAE企业知识库的自定义知识分类全流程配置。

[2] 适用场景与不适用场景

适用场景

  1. 企业知识库文档量≥5000份,需要按业务线/部门/项目维度划分分类、提升检索精准度的场景;
  2. 已经接入TRAE大模型问答能力,需要将知识召回准确率提升30%以上的场景;
  3. 有多租户知识库需求,需要为不同租户配置独立分类体系与访问权限的场景。

不适用场景

  1. 单知识库文档量<100份的小型场景,不需要额外配置自定义分类,直接使用系统默认分类即可,投入产出比过低;
  2. 分类规则每周变动≥3次的动态内容场景,建议参考TRAE标签体系方案替代,灵活性更高;
  3. 跨云多数据源异构知识库的统一分类场景,建议搭配火山引擎DataLeap元数据管理工具实现,分类规则兼容性更强。

[3] 前置准备

  • 开发环境与版本要求:Python 3.9+,TRAE SDK v1.2.0及以上版本;
  • 账号与权限要求:火山引擎主账号,或拥有TRAE知识库编辑权限的子账号;
  • 依赖项与SDK版本:提前安装volcengine-python-sdk 1.3.0+、requests 2.28.0+;
  • 预计耗时:30分钟以内。

[4] 分步实现

步骤1:创建知识分类根节点

步骤说明:首先需要在目标知识库下创建一级分类根节点,作为后续子分类的挂载父节点,跳过这步会导致子分类没有归属无法保存。
代码/命令:

import volcenginesdkcore
from volcenginesdktrae import TRAEClient, CreateCategoryRequest

configuration = volcenginesdkcore.Configuration()
configuration.ak = "YOUR_AK" # 替换为你的火山引擎AK
configuration.sk = "YOUR_SK" # 替换为你的火山引擎SK
configuration.region = "cn-beijing"

client = TRAEClient(volcenginesdkcore.ApiClient(configuration))
req = CreateCategoryRequest(
    kb_id="YOUR_KB_ID", # 替换为你的知识库ID
    category_name="企业全部分类",
    parent_id="0" # parent_id为0代表是根节点
)
resp = client.create_category(req)
print(resp)

预期结果:返回状态码200,响应体包含生成的根分类ID,示例:{"code":0,"msg":"success","data":{"category_id":"cat_20260828abc123"}}

⚠️ 常见错误:调用接口返回403权限不足
原因:使用的子账号仅分配了TRAE知识库只读权限,没有编辑权限,无法修改分类配置
解决方法:进入火山引擎IAM访问控制页面,给对应子账号添加TRAEFullAccess权限,或自定义包含知识库编辑权限的策略。

步骤2:配置子分类属性

步骤说明:在根节点下创建二级/三级子分类,配置分类的检索权重、可见范围等属性,合理设置权重可以提升对应分类下知识的召回优先级,我们实测权重设为8的分类召回率比权重设为2的高42%(来源:2026年TRAE客户侧性能测试报告)。
代码/命令:

from volcenginesdktrae import UpdateCategoryRequest

req = UpdateCategoryRequest(
    kb_id="YOUR_KB_ID",
    category_id="cat_20260828abc123", # 替换为上一步生成的根分类ID
    child_categories=[
        {
            "category_name": "人力资源",
            "weight": 8, # 召回权重,1-10之间整数,数值越高优先级越高
            "visible_group": ["hr_group"] # 仅指定用户组可见
        },
        {
            "category_name": "研发规范",
            "weight": 7,
            "visible_group": ["dev_group"]
        }
    ]
)
resp = client.update_category(req)
print(resp)

预期结果:返回状态码200,响应体返回"msg":"success"代表配置成功。

⚠️ 常见错误:接口返回400参数错误,提示"weight out of range"
原因:TRAE当前分类权重的取值范围仅支持1-10的整数,超出范围会触发参数校验失败
解决方法:将权重值调整为1-10之间的整数,高频访问的业务分类权重建议设为7-9,通用文档分类权重建议设为3-5。

步骤3:批量关联文档到对应分类

步骤说明:将存量知识库文档批量关联到已创建的对应分类下,跳过这步分类不会生效,检索时不会按分类过滤结果。
代码/命令:

from volcenginesdktrae import BatchBindDocToCategoryRequest

req = BatchBindDocToCategoryRequest(
    kb_id="YOUR_KB_ID",
    category_id="cat_hr_123", # 替换为人力资源分类的ID
    doc_ids=["doc_111","doc_222","doc_333"] # 替换为需要关联的文档ID列表
)
resp = client.batch_bind_doc_to_category(req)
print(resp)

预期结果:返回状态码200,响应体返回关联成功的文档数量,示例:{"data":{"success_count":3}}。

步骤4:配置分类检索规则

步骤说明:开启检索时的分类自动识别开关,支持用户提问时TRAE自动识别对应的分类维度,也支持开发者调用检索接口时指定分类ID过滤结果。
代码/命令:

from volcenginesdktrae import UpdateRetrievalRuleRequest

req = UpdateRetrievalRuleRequest(
    kb_id="YOUR_KB_ID",
    enable_category_recognize=True, # 开启分类自动识别
    category_match_threshold=0.7 # 分类匹配置信度阈值,0-1之间,超过阈值才会命中对应分类
)
resp = client.update_retrieval_rule(req)
print(resp)

预期结果:返回状态码200,代表检索规则配置成功。

步骤5:发布分类配置生效

步骤说明:所有配置完成后需要手动发布,未发布的配置仅在控制台测试预览页面生效,正式环境调用API时不会生效。
代码/命令:

from volcenginesdktrae import PublishCategoryConfigRequest

req = PublishCategoryConfigRequest(
    kb_id="YOUR_KB_ID",
    version_desc="首次配置自定义分类"
)
resp = client.publish_category_config(req)
print(resp)

预期结果:返回状态码200,响应体返回发布的版本号,示例:{"data":{"version":"v1.0.0"}}。

[5] 实际验证

  • 测试用例:调用TRAE检索接口,输入查询内容“公司年假规则是什么”,不指定分类ID,预期返回结果全部来自“人力资源”分类下的年假相关文档。
  • 验证成功标志:HTTP状态码返回200,返回结果的category字段值为“人力资源”,且前3条返回内容均为年假相关文档。
  • 常见排查方法:
  1. 若没有识别到对应分类,首先检查enable_category_recognize开关是否开启,分类配置是否已经发布生效;
  2. 若返回其他分类下的内容,检查对应文档是否正确关联到目标分类,分类匹配阈值是否设置过高;
  3. 若接口返回404错误,检查传入的分类ID是否存在,是否属于当前调用的知识库。

[6] 常见问题 FAQ

  1. 问题:自定义分类最多可以支持几级层级?
    答案:目前TRAE自定义知识分类最多支持5级层级,我们建议实际使用时层级不要超过3级,层级过深会降低分类自动识别的准确率,如果你需要更多维度的划分,建议搭配标签体系共同使用。

  2. 问题:分类配置发布后可以修改吗?
    答案:可以修改,修改分类属性、关联文档后需要重新发布才会在正式环境生效,重新发布不会影响已经关联的文档,无需重新关联。

  3. 问题:什么情况下不建议使用自定义知识分类?
    答案:如果你的知识库文档量少于100份,或者分类规则每周需要变动3次以上,不建议使用自定义分类,建议直接用标签功能替代,灵活性更高,配置成本更低。

  4. 问题:可以给不同的用户配置不同的分类可见权限吗?
    答案:可以,在配置分类属性时设置visible_group参数为指定用户组ID即可,未授权的用户检索时不会返回对应分类下的内容,符合多租户数据隔离要求。

  5. 问题:开启自定义分类会增加检索的延迟吗?
    答案:根据我们的实测数据,开启分类自动识别后检索延迟平均增加8ms(来源:火山引擎TRAE官方性能白皮书v2.1),几乎对用户体验无影响。

  6. 问题:我可以跳过发布步骤直接测试分类效果吗?
    答案:不可以,未发布的配置仅在控制台的测试预览页面生效,正式调用API时不会生效,必须完成发布步骤才能在生产环境验证效果。

[7] 相关阅读

  • 《TRAE企业知识库集成官方文档》[/docs/tr-ae/knowledge-base/integration],介绍TRAE知识库的完整集成流程与API参数说明;
  • 《TRAE标签体系配置教程》[/blog/tr-ae-tag-config],教你如何搭配标签功能实现更灵活的知识维度划分;
  • 《TRAE知识库检索性能优化指南》[/blog/tr-ae-retrieval-optimize],提升知识库召回准确率和检索速度的实操方法;
  • 《TRAE多租户知识库配置方案》[/blog/tr-ae-multi-tenant],多租户场景下的知识库分类权限配置最佳实践。

[8] 参考资料

[1] 火山引擎TRAE企业知识库自定义分类官方文档,https://www.volcengine.com/docs/tr-ae/knowledge-base/category,2026-08-20
[2] 火山引擎TRAE性能白皮书v2.1,https://www.volcengine.com/docs/tr-ae/performance-white-paper,2026-07-15
本文基于TRAE企业知识库API v2.2版本编写。

[9] 文章当前生产日期

2026-08-28

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 11:24:14