---
title: GuChunk-v1
canonical_url: "https://www.modelscope.cn/models/tanhao2015/GuChunk-v1"
md_url: "https://www.modelscope.cn/models/tanhao2015/GuChunk-v1.md"
repository: tanhao2015/GuChunk-v1
chinese_name: GuChunk-v1
last_updated: 2026-06-30
pipeline_tag: document-segmentation
tasks:
  - document-segmentation
library_name:
  - pytorch
frameworks:
  - Pytorch
downloads: 0
stars: 0
---

# GuChunk-v1

> GuChunk-v1 - tanhao2015 在 ModelScope 开源的模型。基于 Char CNN/TCN + BiLSTM 的中文 RAG 语义分块模型，用于长文档知识库切片。

- **Repository**: tanhao2015/GuChunk-v1
- **Tasks**: document-segmentation
- **Downloads**: 0
- **Stars**: 0
- **Last updated**: 2026-06-30

Source: https://www.modelscope.cn/models/tanhao2015/GuChunk-v1

---

# GuChunk 语义分块模型

这是一个面向 RAG 知识库构建的中文语义分块模型。模型输入一段文本，输出按语义边界切分后的 chunks，并可返回候选边界、边界分数和中间 unit 信息。

## 模型信息

- 模型版本：`hierarchical_unit_boundary_v4_semantic_window`
- 默认阈值：`0.8547246456`
- 语义窗口半径：`4`
- 窗口池化方式：`meanmax`
- 解码方式：阈值切分，`boundary_score >= threshold` 时切分

## 文件说明

```text
app.py                  PyTorch 推理脚本和 HTTP 服务
model.pt                PyTorch 模型权重
requirements_runtime.txt PyTorch 版基础依赖

app_numpy.py            NumPy 推理脚本和 HTTP 服务
model_numpy.npz         NumPy 版权重
model_numpy_meta.json   NumPy 版词表、配置和归一化参数
requirements_numpy.txt  NumPy 版基础依赖
```

如果只使用 PyTorch 版，需要 `app.py`、`model.pt` 和 `requirements_runtime.txt`。

如果只使用 NumPy 版，需要 `app_numpy.py`、`model_numpy.npz`、`model_numpy_meta.json` 和 `requirements_numpy.txt`。

## PyTorch 版与 NumPy 版一致性

NumPy 版是 PyTorch 模型的离线转换推理实现，与 PyTorch 版共享预处理、候选边界、特征构造、阈值解码和输出协议。

由于底层数值实现不同，边界分数可能存在极小浮点差异；如果某个分数非常接近阈值，切分结果理论上可能出现差异。通常使用时，两者的行为口径是一致的，但不承诺逐 bit 完全一致。

## 快速开始

PyTorch 版：

```bash
pip install -r requirements_runtime.txt
python app.py --host 0.0.0.0 --port 8000
```

NumPy 版：

```bash
pip install -r requirements_numpy.txt
python app_numpy.py --host 0.0.0.0 --port 8000
```

脚本默认启动 HTTP 服务；`--serve` 参数仍然保留，用于兼容旧命令。

启动服务后，请求 `/predict` 接口：

```bash
curl -X POST http://127.0.0.1:8000/predict \
  -H "Content-Type: application/json" \
  --data-raw '{"text":"第一段。第二段。\n\n# 标题\n内容。"}'
```

`index.html` 不是模型发布包的必需文件。本发布包默认不包含网页测试页面，因此浏览器访问根路径时不会显示完整 UI；如需浏览器表单测试页，可额外加入 `index.html`。

## 请求参数

- `text`：必填，要切分的文本。
- `threshold`：可选，边界分数阈值；不传时使用模型默认阈值。
- `include_boundaries`：可选，是否返回候选边界，默认 `true`。
- `include_units`：可选，是否返回中间 unit，默认 `false`。

示例：

```json
{
  "text": "第一段。第二段。\n\n# 标题\n内容。",
  "threshold": 0.85,
  "include_boundaries": true,
  "include_units": false
}
```

## 适用场景

- RAG 知识库入库前的文本切分
- 中文 Markdown、政策、合同、技术文档、表格和代码混合文档切分
- 需要保留语义完整性和文档结构的长文本预处理

## 限制

- 模型主要面向中文和中英混排文档，其他语言效果未充分验证。
- 当前使用阈值切分，不包含全局动态规划解码器。
- 模型只在候选 unit 边界上判断是否切分，不会任意生成新的字符位置。
- 对 OCR 噪声、格式损坏或极端异常结构文档，建议先做清洗。
