| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
test(evals): replace simple retrieval cases with real scenarios Co-authored-by: qq_41667743<wangchao725@huawei.com> # message auto-generated for no-merge-commit merge: !63 merge add_retrive_case into master test(evals): replace simple retrieval cases with real scenarios Created-by: qq_41667743 Commit-by: qq_41667743 Merged-by: cann-robot Description: # Pull Request 说明 ## 变更说明 <!-- 简要说明为什么改、改了什么,以及未包含的范围。 --> - 关联 Issue:[#9](https://gitcode.com/cann/cannbot-knowledge/issues/9) - 主要改动:基于历史轨迹构造复杂的检索case用户检索skill的性能看护 - 补充说明:<!-- 知识来源、处理决定、影响范围或风险(如适用) --> ## 变更类型 <!-- 可多选。 --> - [ ] 知识卡 - [ ] 治理规则(Schema / Profile / Registry / Contract / Spec) - [ ] Knowledge Skill(Ingest / Query / Lint) - [x] 检索、评测或测试 - [ ] 安装、脚本、依赖或 CI - [x] 文档 - [ ] 其他: ## 验证 - [x] bash check.sh 已通过 - [x] 已按需同步导航、链接、日志、规则消费者、文档和测试 - [x] 未提交敏感信息、大段上游原文或 artifacts/ 等可重建产物 - [x] 变更保持最小、相关,并符合 CONTRIBUTING.md See merge request: cann/cannbot-knowledge!63 | 18 天前 | |
test(evals): replace simple retrieval cases with real scenarios Co-authored-by: qq_41667743<wangchao725@huawei.com> # message auto-generated for no-merge-commit merge: !63 merge add_retrive_case into master test(evals): replace simple retrieval cases with real scenarios Created-by: qq_41667743 Commit-by: qq_41667743 Merged-by: cann-robot Description: # Pull Request 说明 ## 变更说明 <!-- 简要说明为什么改、改了什么,以及未包含的范围。 --> - 关联 Issue:[#9](https://gitcode.com/cann/cannbot-knowledge/issues/9) - 主要改动:基于历史轨迹构造复杂的检索case用户检索skill的性能看护 - 补充说明:<!-- 知识来源、处理决定、影响范围或风险(如适用) --> ## 变更类型 <!-- 可多选。 --> - [ ] 知识卡 - [ ] 治理规则(Schema / Profile / Registry / Contract / Spec) - [ ] Knowledge Skill(Ingest / Query / Lint) - [x] 检索、评测或测试 - [ ] 安装、脚本、依赖或 CI - [x] 文档 - [ ] 其他: ## 验证 - [x] bash check.sh 已通过 - [x] 已按需同步导航、链接、日志、规则消费者、文档和测试 - [x] 未提交敏感信息、大段上游原文或 artifacts/ 等可重建产物 - [x] 变更保持最小、相关,并符合 CONTRIBUTING.md See merge request: cann/cannbot-knowledge!63 | 18 天前 | |
feat: 检索子词分词+IDF 加权与 Ascend C API outline triage Co-authored-by: gcw_ydnion3P<wangyifan14@huawei.com> # message auto-generated for no-merge-commit merge: !55 merge feature/kb-retrieval-optimization into master feat: 检索子词分词+IDF 加权与 Ascend C API outline triage Created-by: Yifan_Wang Commit-by: gcw_ydnion3P Merged-by: cann-robot Description: ## 变更内容 本 PR 聚焦知识检索召回质量与 Agent 知识查询的 token 开销。基于 origin/master(da6d4e6c)rebase。 ### 1. 检索分词与相关性重写( .agents/skills/knowledge-query/scripts/retrieval/index.py) - tokenize 重写为 _word_pieces 子词切分:camelCase/下划线边界、get_ 前缀剥离、纯数字噪声剔除;修复 rms_norm_tiling、get_swi_glu_* 等下划线命名卡在此前分词下无法命中子词的问题。 - posting_scores 引入 IDF 加权 ln((N+1)/(df+0.5)),高频 API 前缀不再稀释区分性子词。 - INDEX_VERSION 3→4 强制重建索引。 ### 2. Ascend C API outline triage(.agents/skills/ascendc-api-knowledge-query/) - resolve_resources.py 新增 outline 子命令:返回文档标题骨架供 Agent 快速 triage,不构成已读证据。 - SKILL.md 同步流程说明;evals/test_ascendc_api.py 新增 2 个测试。 ### 3. 测试探针与 Windows 兼容修复 - evals/test_installer.py copied-query 探针 definitely_absent_cannbot_probe_9f6a → qzxk_vwbr_hjdm_plqn:新分词器按子词切分后,原探针中的 "absent" 在语料 3 张 ACLNN 算子卡正文真实出现导致"应无结果"断言失败;新探针全部子词经全量语料实证 count=0。evals/retrieval_cases.yaml 与 evals/test_governance.py 同款旧探针同步修复。 - api_operator_links.py frontmatter 正则接受 CRLF;source_resources.py git_read 显式 utf-8/replace 解码。 ### 4. 已拆分:索引导航摘要改进(概述卡优先 + 递归计数) 按评审建议(@zhanghz1)将索引改进拆分为独立 PR。原因:CI "Prepare trusted evaluation snapshot" 将全部检查代码(含索引格式生成器 governance/contracts/indexes.py)回退到 master,仅采信 PR 的 knowledge/——索引格式生成器与索引内容在同一 PR 内演进必然触发 index_sync/index.stale(首次 /compile 的 85 个 P0 即此原因,本地已用 worktree 复现验证)。 - 本 PR 已回退全部索引相关变更:knowledge/ 与 master 完全一致,evals/test_governance.py 仅保留探针修复。 - 完整改进已以独立 MR 提交:!58(分支 feature/kb-index-semantic-summary,基于 origin/master 单提交 ccfd49a7),内容:目录概述卡({目录名}.md > overview.md)description 领衔 + 示例标题、"共 N" 统一递归计数、85 个索引再生成、7 个单测。 - 后续合入路径(供讨论):RFC 评审通过后建议两步合入——PR-1 先合生成器代码(此时 CI 用 master 旧生成器校验 master 索引,可绿),PR-2 再合索引再生成(此时 master 已含新生成器,可绿);两步之间 master 存在短暂自不一致窗口,需协调无其他 PR 插队,或由维护者对单 PR 做 CI override。 ## 验证 **A/B 实测(4 个完整算子开发会话,优化包 vs 基线,同机器同任务):** - 质量不劣:4/4 会话 success+交付;官方精度测试 20/20 × 4;pytest 全过(74/74、86/86、58/58 × 2);交付评审全 PASS。 - Token 节省(干净口径):swi_glu 文档阶段输入 -9%、parts -17%;DB 全会话口径剔除环境取证流量后 swi_glu -23%(21.9M→16.8M)、rms_norm -12%(26.0M→22.8M);rms_norm 上下文压缩 3→0。 - 详见实验报告(评测机 repos/cannbot-skills/tests/benchmark/results/)。 **门禁:** - Linux 资源完整环境(实验副本,rebase 前内容):knowledge_index build 5087 卡 + verify --level full;lint checked=5707 P0=P1=P2=0;sync-indexes --check stale 0;unittest 252/252 OK;检索回归 29/29 recall@k=1.000 MRR=1.000。 - 本地(拆分后 82e5ca7d):lint checked=7513 P0=P1=P2=0(与 master 纯基线 worktree 结果一致);分支对 master 差异仅 11 个非知识文件,knowledge/ 与 master 完全一致;pytest(test_governance/test_ascendc_api/test_installer)失败集 = master 基线失败集减一(test_query_receipt_is_versioned_and_never_overwritten 由 fsync 修复顺手转绿),零回归;test_ascendc_api 19 通过(含新增 2 个 outline 测试);本机其余失败经 master 工作树对照确认为既有 Windows 环境问题,以 Linux check.sh 为准。 - 检索引擎不消费 index.md(所有索引不参与检索),拆分不影响上述 A/B 结论。 - 日志:logs/2026-09-20.md、logs/2026-09-22.md。 See merge request: cann/cannbot-knowledge!55 | 22 天前 | |
ci: adapt ContentCheck to CANNBot gateway and log usage Co-authored-by: AndyKong2020<konghao7@huawei.com> # message auto-generated for no-merge-commit merge: !74 merge codex/content-check-cannbot-gateway-20260929 into master ci: adapt ContentCheck to CANNBot gateway and log usage Created-by: AndyKong2020 Commit-by: AndyKong2020 Merged-by: cann-robot Description: ContentCheck 接入 CANNBot OpenAI-compatible 网关,实际模型在 content_check.toml 配置,自动检查上限为 120 页,并发保持 3。关联 #20。 改动: - BASE_URL 为完整 /v1 地址;AUTH_TOKEN、CANNBOT_VKEY 通过 Secrets 注入,不再读取 MODEL Secret。 - 日志累计每次尝试、重试及失败调用已返回的 token,保留整数精度;计数不完整时明确标记。 - 错误日志只输出固定说明、HTTP 状态或进程退出码,不回显服务端原始错误或 stderr;解码后的检查结论对已配置凭据脱敏。 - Summary/公开 JSON 协议及非阻断语义保持不变;当天日志收敛为一条当前变更记录。 验证: - 当前版本 ffcc9285a:完整 bash check.sh 通过,298 项仓库测试(1 跳过)、36 项 trace 测试和 Ruff 通过。其中 15 项 ContentCheck 回归覆盖重试/失败累计、大整数精度、超时部分计数和敏感输出隔离。 - 之前版本的 opencann 测试覆盖三页真实模型、22 项临时集成场景、121 页自动跳过和 OBS 授权下载一致性: https://gitcode.com/opencann/cannbot-knowledge/actions/runs/e941034a17f04c21b9725e586b77e365 https://gitcode.com/opencann/cannbot-knowledge/actions/runs/401ea7b02e2143ea87b492fdbe47dea7 - 当前 ffcc9285a 已在 opencann 按完全一致的正式 workflow 跑过三页真实模型检查(2026-09-30):https://gitcode.com/opencann/cannbot-knowledge/actions/runs/bfdc66adf1c44f0eac0a9520dd3535d3 。独立下载原始 OBS 产物确认三页完成、无运行错误或跳过、六项内容检查覆盖,以及格式/图谱产物有效:https://gitcode.com/opencann/cannbot-knowledge/actions/runs/e9484c7928df45cc91571a9e82da58e1 。正式运行无模拟 CLI 或测试夹具。120 页真实模型时延和平台抢占未实测。 See merge request: cann/cannbot-knowledge!74 | 9 天前 | |
test(evals): replace simple retrieval cases with real scenarios Co-authored-by: qq_41667743<wangchao725@huawei.com> # message auto-generated for no-merge-commit merge: !63 merge add_retrive_case into master test(evals): replace simple retrieval cases with real scenarios Created-by: qq_41667743 Commit-by: qq_41667743 Merged-by: cann-robot Description: # Pull Request 说明 ## 变更说明 <!-- 简要说明为什么改、改了什么,以及未包含的范围。 --> - 关联 Issue:[#9](https://gitcode.com/cann/cannbot-knowledge/issues/9) - 主要改动:基于历史轨迹构造复杂的检索case用户检索skill的性能看护 - 补充说明:<!-- 知识来源、处理决定、影响范围或风险(如适用) --> ## 变更类型 <!-- 可多选。 --> - [ ] 知识卡 - [ ] 治理规则(Schema / Profile / Registry / Contract / Spec) - [ ] Knowledge Skill(Ingest / Query / Lint) - [x] 检索、评测或测试 - [ ] 安装、脚本、依赖或 CI - [x] 文档 - [ ] 其他: ## 验证 - [x] bash check.sh 已通过 - [x] 已按需同步导航、链接、日志、规则消费者、文档和测试 - [x] 未提交敏感信息、大段上游原文或 artifacts/ 等可重建产物 - [x] 变更保持最小、相关,并符合 CONTRIBUTING.md See merge request: cann/cannbot-knowledge!63 | 18 天前 | |
chore: fix CANN license scan findings Co-authored-by: qq_41667743<wangchao725@huawei.com> # message auto-generated for no-merge-commit merge: !21 merge master into master chore: fix CANN license scan findings Created-by: qq_41667743 Commit-by: qq_41667743 Merged-by: cann-robot Description: # Pull Request 说明 ## 变更说明 <!-- 简要说明为什么改、改了什么,以及未包含的范围。 --> 添加代码的头部License - 关联 Issue:<!-- #123、完整链接或“无” --> - 主要改动:添加代码的头部License - 补充说明:<!-- 知识来源、处理决定、影响范围或风险(如适用) --> ## 变更类型 <!-- 可多选。 --> - [ ] 知识卡 - [ ] 治理规则(Schema / Profile / Registry / Contract / Spec) - [ ] Knowledge Skill(Ingest / Query / Lint) - [ ] 检索、评测或测试 - [x] 安装、脚本、依赖或 CI - [ ] 文档 - [ ] 其他: ## 验证 - [x] bash check.sh 已通过 - [x] 已按需同步导航、链接、日志、规则消费者、文档和测试 - [x] 未提交敏感信息、大段上游原文或 artifacts/ 等可重建产物 - [x] 变更保持最小、相关,并符合 CONTRIBUTING.md See merge request: cann/cannbot-knowledge!21 | 1 个月前 | |
feat: API 组合导航链接完整交付(试点 4 链路 + 对抗验证 112 对组合,含机制摘要) Co-authored-by: gcw_ydnion3P<wangyifan14@huawei.com> # message auto-generated for no-merge-commit merge: !100 merge feature/kb-api-combo-navigation-b2 into master feat: API 组合导航链接完整交付(试点 4 链路 + 对抗验证 112 对组合,含机制摘要) Created-by: Yifan_Wang Commit-by: gcw_ydnion3P Merged-by: cann-robot Description: 关联 Issue #23。合并原两批 PR(#99 试点批次 + #100 对抗验证批次)为单一交付:选链依据从人工判断升级为证据挖掘 + 512 对对抗验证,链接形态从纯指针升级为"指针 + 机制摘要"。 ## 变更内容 95 张知识卡(原批次 1 的 31 张 + 批次 2 的 64 张)文末追加/富化「配套 API 与常见组合」,共 330 个链接,覆盖 101 对经对抗验证的组合(全部可用验证对): - **机制摘要进卡**:147 条既有链接升级为 - [目标卡](路径)——机制一句话(取对抗验证裁决核心,如"FetchEventID 返回的 TEventID 直接作为 SetFlag/WaitFlag 入参"、"AscSyncNotify/AscWait 卡面声明配对使用且 pipe/tpipe/id 三参数必须一致") - **17 对此前推迟的组合补入**(两批合并后冲突消失):事件链接入 SetFlag/WaitFlag 卡、队列生命周期补全等 34 条双向链接 - 其余 6 对验证组合(AscSyncNotify↔AscSyncWait 等)原卡正文已有官方交叉引用,无需新增 覆盖链路(九条 + 批次 1 四条):事件同步、tiling 流水线、950 Reg/MicroAPI 类型集、matmul 操作数契约、C API 同步/搬运链、SIMT 转换环、Welford 管线、MrgSort 寻址、user workspace 跨核协作、架构门控、队列生命周期、UB↔GM 搬运、同步配对。 ## 变更类型 - [x] 知识卡 - [ ] 治理规则(Agent 工作约定) - [ ] Knowledge Skill(Ingest / Query / Lint) - [ ] 检索、评测或测试 - [ ] 安装、脚本、依赖或 CI - [ ] 文档 - [ ] 其他 ## 验证 - [x] 对抗验证:512 对候选经 16 个独立 subagent 逐对裁决(度量 + 代码行证据 + 知识卡语义核对),112 对 LINK 存活;10 类系统性噪声识别并排除(类级同名方法碰撞、L0 op 层级、互斥替代、arch 变体错配、方向错配等) - [x] knowledge_lint --strict-navigation:checked=7867,P0/P1/P2=0(全部链接解析有效) - [x] 检索回归(--quality-gate,70 真实场景用例):43 PASS 0 FAIL,recall@k=0.548 / MRR=0.459 与基线逐位一致,无排序污染 - [x] 归档镜像卡正文零改动(文末追加受控例外 + updated_at 提升);无卡片增删移动,各级 index.md 不变 - [x] 已记录日志 logs/2026-09-30.md、logs/2026-10-09.md、logs/2026-10-10.md - [x] 完整 bash check.sh 留 CI 复核 ## 评审材料 - 512 对逐对裁决(机制全文 + 证据代码行 + 卡片路径,可人工复核任意一条) - 全量度量数据、四档分类与可复现分析管线 - 组合知识密度层的后续规划(组合卡蒸馏,Issue #23 第 2 步):验证机制与 12 条验证链为原料 详见日志与 Issue #23 评论。 See merge request: cann/cannbot-knowledge!100 | 5 天前 | |
refactor: 基于知识卡链接按需生成轻量图谱 Co-authored-by: qq_41667743<wangchao725@huawei.com> # message auto-generated for no-merge-commit merge: !29 merge simplify-graph into master refactor: 基于知识卡链接按需生成轻量图谱 Created-by: qq_41667743 Commit-by: qq_41667743 Merged-by: cann-robot Description: # Pull Request 说明 ## 变更说明 <!-- 简要说明为什么改、改了什么,以及未包含的范围。 --> 精简图谱的结构,只保留原始链接 - 关联 Issue:<!-- #123、完整链接或“无” --> - 主要改动: - 补充说明:<!-- 知识来源、处理决定、影响范围或风险(如适用) --> ## 变更类型 <!-- 可多选。 --> - [x] 知识卡 - [x] 治理规则(Schema / Profile / Registry / Contract / Spec) - [x] Knowledge Skill(Ingest / Query / Lint) - [ ] 检索、评测或测试 - [ ] 安装、脚本、依赖或 CI - [x] 文档 - [ ] 其他: ## 验证 - [x] bash check.sh 已通过 - [x] 已按需同步导航、链接、日志、规则消费者、文档和测试 - [x] 未提交敏感信息、大段上游原文或 artifacts/ 等可重建产物 - [x] 变更保持最小、相关,并符合 CONTRIBUTING.md See merge request: cann/cannbot-knowledge!29 | 1 个月前 | |
fix: add project default platform for knowledge query Co-authored-by: qq_41667743<wangchao725@huawei.com> # message auto-generated for no-merge-commit merge: !71 merge master into master fix: add project default platform for knowledge query Created-by: qq_41667743 Commit-by: qq_41667743 Merged-by: cann-robot Description: # Pull Request 说明 ## 变更说明 <!-- 简要说明为什么改、改了什么,以及未包含的范围。 --> 解决了漏传 --platform 时不再直接失败,检索失败可见。 - 关联 Issue:#12 - 主要改动: - 补充说明:<!-- 知识来源、处理决定、影响范围或风险(如适用) --> ## 变更类型 <!-- 可多选。 --> - [ ] 知识卡 - [ ] 治理规则(Schema / Profile / Registry / Contract / Spec) - [ ] Knowledge Skill(Ingest / Query / Lint) - [x] 检索、评测或测试 - [ ] 安装、脚本、依赖或 CI - [x] 文档 - [ ] 其他: ## 验证 - [x] bash check.sh 已通过 - [x] 已按需同步导航、链接、日志、规则消费者、文档和测试 - [x] 未提交敏感信息、大段上游原文或 artifacts/ 等可重建产物 - [x] 变更保持最小、相关,并符合 CONTRIBUTING.md See merge request: cann/cannbot-knowledge!71 | 8 天前 | |
refactor: 基于知识卡链接按需生成轻量图谱 Co-authored-by: qq_41667743<wangchao725@huawei.com> # message auto-generated for no-merge-commit merge: !29 merge simplify-graph into master refactor: 基于知识卡链接按需生成轻量图谱 Created-by: qq_41667743 Commit-by: qq_41667743 Merged-by: cann-robot Description: # Pull Request 说明 ## 变更说明 <!-- 简要说明为什么改、改了什么,以及未包含的范围。 --> 精简图谱的结构,只保留原始链接 - 关联 Issue:<!-- #123、完整链接或“无” --> - 主要改动: - 补充说明:<!-- 知识来源、处理决定、影响范围或风险(如适用) --> ## 变更类型 <!-- 可多选。 --> - [x] 知识卡 - [x] 治理规则(Schema / Profile / Registry / Contract / Spec) - [x] Knowledge Skill(Ingest / Query / Lint) - [ ] 检索、评测或测试 - [ ] 安装、脚本、依赖或 CI - [x] 文档 - [ ] 其他: ## 验证 - [x] bash check.sh 已通过 - [x] 已按需同步导航、链接、日志、规则消费者、文档和测试 - [x] 未提交敏感信息、大段上游原文或 artifacts/ 等可重建产物 - [x] 变更保持最小、相关,并符合 CONTRIBUTING.md See merge request: cann/cannbot-knowledge!29 | 1 个月前 | |
fix: add project default platform for knowledge query Co-authored-by: qq_41667743<wangchao725@huawei.com> # message auto-generated for no-merge-commit merge: !71 merge master into master fix: add project default platform for knowledge query Created-by: qq_41667743 Commit-by: qq_41667743 Merged-by: cann-robot Description: # Pull Request 说明 ## 变更说明 <!-- 简要说明为什么改、改了什么,以及未包含的范围。 --> 解决了漏传 --platform 时不再直接失败,检索失败可见。 - 关联 Issue:#12 - 主要改动: - 补充说明:<!-- 知识来源、处理决定、影响范围或风险(如适用) --> ## 变更类型 <!-- 可多选。 --> - [ ] 知识卡 - [ ] 治理规则(Schema / Profile / Registry / Contract / Spec) - [ ] Knowledge Skill(Ingest / Query / Lint) - [x] 检索、评测或测试 - [ ] 安装、脚本、依赖或 CI - [x] 文档 - [ ] 其他: ## 验证 - [x] bash check.sh 已通过 - [x] 已按需同步导航、链接、日志、规则消费者、文档和测试 - [x] 未提交敏感信息、大段上游原文或 artifacts/ 等可重建产物 - [x] 变更保持最小、相关,并符合 CONTRIBUTING.md See merge request: cann/cannbot-knowledge!71 | 8 天前 | |
fix(governance): 按 checkout 实际文件类型校验本地源码导航 Co-authored-by: LiJianhao2<25213050226@m.fudan.edu.cn> # message auto-generated for no-merge-commit merge: !65 merge fix/cannbot-knowledge-2026-09-25-001 into master fix(governance): 按 checkout 实际文件类型校验本地源码导航 Created-by: LiJianhao2 Commit-by: LiJianhao2 Merged-by: cann-robot Description: ## 描述 严格来源导航此前以本地 Git 路径末级名称是否包含 . 推断文件类型,导致固定提交 checkout 中实际存在的无扩展名文件无法作为源码文件链接;checkout 缺失时也会按名称猜测类型,与离线规则不符。 修复仅使用已登记来源和当前 checkout 状态:checkout 缺失时不作无法验证的文件类型判断;checkout 存在时通过 Path.is_file() / Path.is_dir() 确认来源和导航目标的真实类型,且只接受同仓库、同 revision 的实际文件链接。 逐 hunk 对账: - governance/contracts/checks/source_navigation.py:离线缺失 checkout 时跳过类型检查;恢复时按实际文件/目录类型判定,导航目标必须是文件。 - evals/test_source_resources.py:真实临时 Git fixture 覆盖无扩展名 Makefile 可通过、带点号的目录不能冒充文件、缺失 checkout 不误报。 - logs/2026-09-26.md:记录本次治理修复、回归结果及统一门禁的真实结果。 ### 关联的Issue 关联 issue #14 ### 测试 - PYTHONDONTWRITEBYTECODE=1 python3 -m unittest evals.test_source_resources text Ran 33 tests in 20.417s OK (skipped=1) - git diff --check:退出码 0,无输出。 - ruff check governance/contracts/checks/source_navigation.py evals/test_source_resources.py:未运行,环境返回 /bin/bash: ruff: command not found(退出码 127);未安装全局依赖。 - bash check.sh:未通过,退出码 1。真实摘要:严格 Lint checked=7718 P0=0 P1=0 P2=0;索引同步 Checked 662 indexes, stale 0;索引构建与完整验证均为 ok cards=7056;29 个检索断言全部 PASS、recall@k=1.000 MRR=1.000,但性能门槛失败: text FAIL quality: p95=3771.6ms above 1000ms QUALITY recall@k=1.000 MRR=1.000 p95=3771.6ms cases=29 该失败与本次源码导航修复无关;check.sh 因 set -e 未继续执行后续全库 unittest、ruff 和 shell 检查。本 PR 不改动无关检索逻辑。 ### 文档更新 无。现有 governance/specs/schemas.md 已明确规定离线缺根时只校验路径形状。 ### 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ### 当前PR是否有AI参与: [x] 是 __1. Agent平台信息: Codex CLI 0.153.4 __2. 模型信息: gpt-5.6-luna __3. Prompt摘要: 根据已提交 issue #14 独立复现无扩展名源码误报,核对离线规范,实施并定向验证最小修复。 ### 希望检视人员了解: 1. 人工参与说明:账号所有者已提交并指派 issue #14,提供 case 证据并授权 PR-first;本轮独立复现、行号与规范核对、回归和门禁由 Agent 实际执行。未声称人工另行运行测试或修改代码。 2. 修改范围与 issue #14 一致;未调整导航语法、Registry、知识卡或检索行为。 3. 目标回归测试通过;全库门禁唯一已观测失败为检索评测 p95 性能阈值,具体真实输出见“测试”。 See merge request: cann/cannbot-knowledge!65 | 19 天前 | |
feat: 检索子词分词+IDF 加权与 Ascend C API outline triage Co-authored-by: gcw_ydnion3P<wangyifan14@huawei.com> # message auto-generated for no-merge-commit merge: !55 merge feature/kb-retrieval-optimization into master feat: 检索子词分词+IDF 加权与 Ascend C API outline triage Created-by: Yifan_Wang Commit-by: gcw_ydnion3P Merged-by: cann-robot Description: ## 变更内容 本 PR 聚焦知识检索召回质量与 Agent 知识查询的 token 开销。基于 origin/master(da6d4e6c)rebase。 ### 1. 检索分词与相关性重写( .agents/skills/knowledge-query/scripts/retrieval/index.py) - tokenize 重写为 _word_pieces 子词切分:camelCase/下划线边界、get_ 前缀剥离、纯数字噪声剔除;修复 rms_norm_tiling、get_swi_glu_* 等下划线命名卡在此前分词下无法命中子词的问题。 - posting_scores 引入 IDF 加权 ln((N+1)/(df+0.5)),高频 API 前缀不再稀释区分性子词。 - INDEX_VERSION 3→4 强制重建索引。 ### 2. Ascend C API outline triage(.agents/skills/ascendc-api-knowledge-query/) - resolve_resources.py 新增 outline 子命令:返回文档标题骨架供 Agent 快速 triage,不构成已读证据。 - SKILL.md 同步流程说明;evals/test_ascendc_api.py 新增 2 个测试。 ### 3. 测试探针与 Windows 兼容修复 - evals/test_installer.py copied-query 探针 definitely_absent_cannbot_probe_9f6a → qzxk_vwbr_hjdm_plqn:新分词器按子词切分后,原探针中的 "absent" 在语料 3 张 ACLNN 算子卡正文真实出现导致"应无结果"断言失败;新探针全部子词经全量语料实证 count=0。evals/retrieval_cases.yaml 与 evals/test_governance.py 同款旧探针同步修复。 - api_operator_links.py frontmatter 正则接受 CRLF;source_resources.py git_read 显式 utf-8/replace 解码。 ### 4. 已拆分:索引导航摘要改进(概述卡优先 + 递归计数) 按评审建议(@zhanghz1)将索引改进拆分为独立 PR。原因:CI "Prepare trusted evaluation snapshot" 将全部检查代码(含索引格式生成器 governance/contracts/indexes.py)回退到 master,仅采信 PR 的 knowledge/——索引格式生成器与索引内容在同一 PR 内演进必然触发 index_sync/index.stale(首次 /compile 的 85 个 P0 即此原因,本地已用 worktree 复现验证)。 - 本 PR 已回退全部索引相关变更:knowledge/ 与 master 完全一致,evals/test_governance.py 仅保留探针修复。 - 完整改进已以独立 MR 提交:!58(分支 feature/kb-index-semantic-summary,基于 origin/master 单提交 ccfd49a7),内容:目录概述卡({目录名}.md > overview.md)description 领衔 + 示例标题、"共 N" 统一递归计数、85 个索引再生成、7 个单测。 - 后续合入路径(供讨论):RFC 评审通过后建议两步合入——PR-1 先合生成器代码(此时 CI 用 master 旧生成器校验 master 索引,可绿),PR-2 再合索引再生成(此时 master 已含新生成器,可绿);两步之间 master 存在短暂自不一致窗口,需协调无其他 PR 插队,或由维护者对单 PR 做 CI override。 ## 验证 **A/B 实测(4 个完整算子开发会话,优化包 vs 基线,同机器同任务):** - 质量不劣:4/4 会话 success+交付;官方精度测试 20/20 × 4;pytest 全过(74/74、86/86、58/58 × 2);交付评审全 PASS。 - Token 节省(干净口径):swi_glu 文档阶段输入 -9%、parts -17%;DB 全会话口径剔除环境取证流量后 swi_glu -23%(21.9M→16.8M)、rms_norm -12%(26.0M→22.8M);rms_norm 上下文压缩 3→0。 - 详见实验报告(评测机 repos/cannbot-skills/tests/benchmark/results/)。 **门禁:** - Linux 资源完整环境(实验副本,rebase 前内容):knowledge_index build 5087 卡 + verify --level full;lint checked=5707 P0=P1=P2=0;sync-indexes --check stale 0;unittest 252/252 OK;检索回归 29/29 recall@k=1.000 MRR=1.000。 - 本地(拆分后 82e5ca7d):lint checked=7513 P0=P1=P2=0(与 master 纯基线 worktree 结果一致);分支对 master 差异仅 11 个非知识文件,knowledge/ 与 master 完全一致;pytest(test_governance/test_ascendc_api/test_installer)失败集 = master 基线失败集减一(test_query_receipt_is_versioned_and_never_overwritten 由 fsync 修复顺手转绿),零回归;test_ascendc_api 19 通过(含新增 2 个 outline 测试);本机其余失败经 master 工作树对照确认为既有 Windows 环境问题,以 Linux check.sh 为准。 - 检索引擎不消费 index.md(所有索引不参与检索),拆分不影响上述 A/B 结论。 - 日志:logs/2026-09-20.md、logs/2026-09-22.md。 See merge request: cann/cannbot-knowledge!55 | 22 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 18 天前 | ||
| 18 天前 | ||
| 22 天前 | ||
| 9 天前 | ||
| 18 天前 | ||
| 1 个月前 | ||
| 5 天前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 19 天前 | ||
| 22 天前 |