# GEO与AI搜索工程教学实验

智核增长 / Zhihe Growth。资料类型：合成教学，非客户语料，非商业AI平台复测。

## 四类材料

1. 检索：SQLite FTS5 BM25、真实Embedding、RRF和真实Cross-Encoder，保存每题四路排名，以及向量和重排分数。BM25原始分数未单列保存，RRF贡献可按记录的候选名次和常量60复算。
2. 事实与来源：JSON Schema结构校验、四种作者标注的主张支持示例。没有自动语义判真。
3. 测量：Wilson演算与按问题配对的Bootstrap。六个合成问题不足以支持商业效果推断。
4. 双语：校对身份、数值、范围和版本字段。不自动验证自然语言译文含义。

另附32、64、128字符切块与人工结构片段对照，检查同一片段是否保留型号和完整约束短语。这是字面检查，不是语义判真或答案评分；它不是自动PDF解析器，没有生成模型调用。

## 文件

- `data.json`：9条合成英文记录、10道作者编制查询、相关性等级、中英事实与合成前后测记录。
- `labs.py`：可运行程序，CPU执行，不连接客户后台或商业AI会话。
- `fact.schema.json`：完整JSON Schema。
- `model-revisions.json`：本次运行实际使用的两项模型修订号。
- `lab-dependencies.txt`：直接依赖；`requirements-lock.txt`：此次环境的完整依赖版本，跨操作系统可能需要重新解析。
- `results.json`：实际运行结果，含UTC时间、输入哈希、模型、依赖、候选、分数、耗时和限制。
- `SHA256SUMS.txt`：包内文件完整性校验，不能证明数据真实性或模型质量。

## 运行

在解压后的目录内建立独立Python环境。首次模型获取需要联网、网络流量和本地磁盘空间；模型权重不随包分发。模型卡和许可证在各模型官方仓库，不把第三方模型声明为智核自研。

```sh
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r lab-dependencies.txt
python labs.py --output my-results.json
```

模型缓存就绪后可离线复现：

```sh
python labs.py --offline --output my-offline-results.json
```

包内固定修订号仍会用于首次联网下载。不要删除`model-revisions.json`，否则程序会查询届时的模型版本，不能再称为复现同一配置。程序默认覆盖`results.json`，建议始终指定新输出文件；耗时随机器而变，不应逐字节比较整个输出。

复核顺序：对照输入哈希；确认模型修订号；比较每道题四条路径的文档ID排序；检查数值分数的小幅浮点差异；最后看三项布尔校验和统计结果。不同依赖或硬件可能产生差异，应另存环境而非覆盖历史证据。

## 预期观察与失败边界

- 切块：32字符窗口产生6块，型号与供电、容量、完整使用限制均未同块保留；64字符窗口产生3块，保留前两项；128字符窗口产生2块，三项均保留，和人工结构片段在该检查上相同。不能据此断言结构切块总优于固定窗口。
- Q5：向量排序把相近的BR-6205排在正确的BR-6204之前；Recall@3仍为1，RR为0.5。
- Q1：RRF前3项遗漏D1，重排后D1回到前3项；融合不是逐题保证改善。
- Q2：融合nDCG@3为1，重排后约0.920；保留退步结果。
- Q9：中文压力题；词法查询预处理仅保留ASCII字母和数字，英文模型不能据此验收中文搜索能力。
- Q10：语料没有所问保修和价格证据，排名指标为空；取回候选不等于已经回答或通过拒答评估。
- 2/10独立二项示例的Wilson区间约为5.7%至51.0%。合成配对记录差异约33.3个百分点，六问题簇Bootstrap区间约0至66.7个百分点，不构成显著性或因果承诺。

不要将这里的合成产品参数用于真实采购。SuperPDR 17%、ELEREIN 15%属于官网另行披露的历史阶段案例，本数据包没有重测或重算这些数字。

## 原始技术资料

- SQLite FTS5：https://www.sqlite.org/fts5.html
- Sentence Transformers：https://www.sbert.net/docs/quickstart.html
- Embedding模型：https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2
- 重排模型：https://huggingface.co/cross-encoder/ms-marco-MiniLM-L6-v2
- JSON Schema：https://json-schema.org/learn/getting-started-step-by-step

材料可供学习与内部复核；若用于生产，应增加领域数据、独立标注、权限隔离、版本治理与安全评估。本包不提供生产服务、自动发布或性能保证。
