# Haystack 文档长度路由：把短材料和长材料交给不同摘要模型，检查长度边界

已运行真实Haystack DocumentLengthRouter：等于10字符与空内容原生都进short；再用作者空内容前置过滤剔除empty。未调用摘要模型。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 准备阈值前后材料

input.json包含3、9、10、11字符及空文档。先把阈值边界写清，不能只给一长一短两个看起来显然的示例。

## 2. 区分字符与字节

negative中的中文内容UTF-8字节数不同于字符数。audit.py明确使用len(content)，实际Router的长度单位和边界要按安装版确认。

## 3. 配置DocumentLengthRouter

把short分支连接小上下文摘要模型，long分支连接长上下文模型；空内容在进入摘要前单独拦下，不制造一个“空摘要成功”。

## 4. 运行Router并保存实际分支

记录每个Document ID被送到哪个输出连接。先验证路由，不调用任何付费摘要模型，也不把作者预期表当实际Haystack事件。

## 5. 核对等于阈值时的行为

用edge=10单独验收，查看实际实现是小于还是小于等于；若与作者参考不同，更新说明而不是改输入回避边界。

## 6. 接入摘要后查真实调用

在授权环境用相同ID关联模型请求，确认长材料确实交给long-context别名，而不只是画布连线正确。

## 7. 交付路由与模型证据分表

保留字符长度、实际路由、模型别名及调用状态。当前包只完成长度输入和反例审计，未测摘要质量或成本。

## 官方依据

- Haystack 官方文档或源码：https://docs.haystack.deepset.ai/docs/documentlengthrouter
