实现侧: - 上下文:任务范围拆分为 范围校验/范围授权;索引按可发现口径重建、索引新鲜度改对称差;依赖校验统一快照漂移说明。 - 知识方法:方法与材料读取口径统一;超限方法材料按可选省略,核对路径不再二次计费;删除无合同的读时重算。 - 任务运行:新增 context.usage/tool.denied 事件类型;连接池常驻并在装配生命周期内开关;调用结算与核对分列。 - 效果评测/审校修订/交付连载/作者经验/作品规划:凭据冻结、标定消费、导出补证、事实引文核对等收尾修复。 - 资源加载:能力正文不再夹带索引用的导航注记(该注记此前进入角色与技能的模型提示)。 - 元数据:受保护骨架与代码保护属性对齐;字段校验与内置结构口径同步。 - 基础设施:环境预检进入装配生命周期;数据库连接运行期字段不参与相等比较;索引指纹归一化 jsonb 浮点。 - 删除被替代实现:7 份旧提示词模板与空壳 资料来源 读取器。 用例侧: - 用例身份与导航元信息迁移;夹具补生命周期、同库暴露与模板封存; - 本轮定向修复:方法材料省略、事实引文、迁移回执、额度与暂停用例、慢用例超时预算等。
51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
"""旧选题检索的空结果观察由B09真实混合检索承接,不修改B04绑定列表合同。"""
|
||
|
||
from unittest.mock import patch
|
||
|
||
import pytest
|
||
|
||
from muse.上下文.混合检索 import 混合检索
|
||
from muse.共享.错误 import Muse错误
|
||
from muse.基础设施.模型.嵌入 import 特征哈希嵌入器
|
||
|
||
|
||
@pytest.mark.case_id(
|
||
"TC-e0a672070e60",
|
||
environment="离线真实混合检索与确定性嵌入;只替换新鲜索引读取边界",
|
||
when="选择或投影明确用途的固定方法版本。",
|
||
contract="docs/系统架构/新版设计/模块设计/B04-知识方法.md",
|
||
)
|
||
def test_无命中检索保留明确原因和索引身份__e0a672():
|
||
embedder = 特征哈希嵌入器(512)
|
||
rows = [
|
||
{
|
||
"method_version_id": "version-1",
|
||
"检索文本": "astronomy",
|
||
"vector": embedder.嵌入("astronomy"),
|
||
}
|
||
]
|
||
with (
|
||
patch(
|
||
"muse.上下文.混合检索.读取新鲜索引", return_value=({"索引身份": "index-1"}, rows, {})
|
||
),
|
||
patch("muse.上下文.混合检索.读取方法检索身份", return_value=("version-1",)),
|
||
):
|
||
result = 混合检索(object(), "无命中意图", embedder)
|
||
assert result["结果"] == [] and result["索引身份"] == "index-1"
|
||
assert result["empty_reason"] == "no_match"
|
||
assert result["说明"] == "方法检索没有命中可授权卡"
|
||
|
||
|
||
@pytest.mark.case_id(
|
||
"TC-6e73eec88127",
|
||
environment="离线真实混合检索与确定性嵌入;只替换新鲜索引读取边界",
|
||
when="选择或投影明确用途的固定方法版本。",
|
||
contract="docs/系统架构/新版设计/模块设计/B04-知识方法.md",
|
||
)
|
||
@pytest.mark.parametrize("intent", ["", " \n "])
|
||
def test_空检索意图在读取索引前拒绝__6e73ee(intent):
|
||
with patch("muse.上下文.混合检索.读取新鲜索引") as read:
|
||
with pytest.raises(Muse错误, match="查询"):
|
||
混合检索(object(), intent, 特征哈希嵌入器())
|
||
read.assert_not_called()
|