接续 88dd570,保存 W20–W24 已实现的共享接口、业务入口、迁移、工作台、测试与文档。 W20/W22/W23 保持 in_progress,W21/W24 保持 verified;此提交不宣称方法或规则正式启用、多轮返修、真实角色评测完成。 W25 新增实验、标定、逐调用交付与角色执行及其迁移/测试/索引留在实施工作树,原有私人和旧实现保留项不纳入。 验证:离线 571、前端 33 通过;PG 469 项通过、2 项浏览器未启用,2 项误带入的 W25 用例已移出本提交;最终任务与交付边界 37 项通过。make 检查、最终类型、84 项资源及 diff 检查通过。未重跑浏览器或 Pi 宿主,不以合成调用认证外部模型效果。 独立整体审查四维通过;证据保存在 R2-20260909/提交W20-W24。
71 lines
2.9 KiB
Python
71 lines
2.9 KiB
Python
"""方法版本与绑定的确定性边界:嵌入、关键词、融合排序、渲染与状态迁移表。"""
|
||
|
||
from muse.上下文.混合检索 import _rrf
|
||
from muse.基础设施.检索.关键词 import 关键词得分, 分词
|
||
from muse.基础设施.检索.向量 import 余弦相似, 向量得分
|
||
from muse.基础设施.模型.嵌入 import 特征哈希嵌入器
|
||
from muse.知识方法.方法卡 import 检索文本, 渲染方法材料
|
||
from muse.知识方法.方法版本 import 迁移表
|
||
|
||
|
||
def test_嵌入确定与归一__20a01a():
|
||
嵌入器 = 特征哈希嵌入器(128)
|
||
甲 = 嵌入器.嵌入("信息差要在爆点前埋设")
|
||
乙 = 嵌入器.嵌入("信息差要在爆点前埋设")
|
||
丙 = 嵌入器.嵌入("完全无关的另一段话")
|
||
assert 甲 == 乙
|
||
assert 余弦相似(甲, 丙) < 0.999
|
||
assert abs(sum(v * v for v in 甲) - 1.0) < 1e-9
|
||
assert len(甲) == 128
|
||
|
||
|
||
def test_关键词与向量得分__20a02b():
|
||
语料 = {"v1": "信息差 埋设 爆点 前置", "v2": "战斗节奏 压迫 递进"}
|
||
词分 = 关键词得分("信息差 埋设", 语料)
|
||
assert 词分["v1"] > 0 and "v2" not in 词分
|
||
嵌入器 = 特征哈希嵌入器(64)
|
||
量分 = 向量得分(嵌入器.嵌入("信息差 埋设"), {k: 嵌入器.嵌入(v) for k, v in 语料.items()})
|
||
assert 量分["v1"] > 量分.get("v2", 0.0)
|
||
assert 分词("短") == ["短"]
|
||
|
||
|
||
def test_rrf融合两路排名__20a03c():
|
||
词 = {"a": 3.0, "b": 1.0}
|
||
量 = {"b": 2.0, "c": 1.0}
|
||
融 = _rrf([词, 量], [1.0, 1.0])
|
||
assert 融["b"] > 融["a"] and 融["b"] > 融["c"]
|
||
|
||
|
||
def test_渲染材料含上限与反例__20a04d():
|
||
版本行 = {
|
||
"content": {"原理": "当X时做Y", "单章上限": 2},
|
||
"参数上限": {"单章上限": 2},
|
||
"type_id": "craft",
|
||
"title": "契诃夫之枪",
|
||
"version": 3,
|
||
}
|
||
证据 = [
|
||
{"kind": "source", "note": "", "ref": {"source_id": "s1", "revision": 2, "定位": "第3章"}},
|
||
{"kind": "counter", "note": "每章都埋即烂大街", "ref": {}},
|
||
]
|
||
文本 = 渲染方法材料(版本行, 证据)
|
||
assert "参数上限" in 文本 and "反例:每章都埋即烂大街" in 文本
|
||
assert "出处:s1@r2 第3章" in 文本
|
||
assert "单章上限:2" in 渲染方法材料(版本行, []) or "单章上限" in 检索文本(版本行, 证据)
|
||
|
||
|
||
def test_状态迁移表封闭__20a05e():
|
||
assert ("proposed", "enabled") not in 迁移表
|
||
assert ("enabled", "withdrawn") not in 迁移表
|
||
assert ("proposed", "confirmed") in 迁移表
|
||
assert ("confirmed", "enabled") in 迁移表
|
||
assert ("enabled", "disabled") in 迁移表
|
||
assert ("disabled", "enabled") in 迁移表
|
||
|
||
|
||
def test_空文本嵌入零向量安全__20a06f():
|
||
嵌入器 = 特征哈希嵌入器(32)
|
||
向量 = 嵌入器.嵌入(" ")
|
||
assert len(向量) == 32 and all(v == 0.0 for v in 向量)
|
||
assert 余弦相似(向量, 向量) == 0.0
|