---
title: survive-hfut
canonical_url: "https://www.modelscope.cn/datasets/creeperwater/survive-hfut"
md_url: "https://www.modelscope.cn/datasets/creeperwater/survive-hfut.md"
repository: creeperwater/survive-hfut
chinese_name: "活在肥宣"
last_updated: 2026-10-24
license: CC-BY-SA-4.0
storage_size: "73 MB"
downloads: 203
stars: 0
---

# survive-hfut

> survive-hfut - creeperwater 在 ModelScope 开源的数据集。包含合肥工业大学校园生活的相关信息。

creeperwater/survive-hfut 是 ModelScope 魔搭社区上的数据集，存储大小 73 MB，采用 CC-BY-SA-4.0 许可。

- **Repository**: creeperwater/survive-hfut
- **License**: CC-BY-SA-4.0
- **Storage size**: 73 MB
- **Downloads**: 203
- **Stars**: 0
- **Last updated**: 2026-10-24

Source: https://www.modelscope.cn/datasets/creeperwater/survive-hfut

---

# Survive-HFUT 数据集

## 项目介绍

项目主体为**活在肥宣**文档站。

- 主站：[https://survive-hfut.cc](https://survive-hfut.cc)
- 镜像站：[https://survive-hfut.klps.top](https://survive-hfut.klps.top)
- 开源地址：[https://github.com/Survive-HFUT/survive-hfut.github.io](https://github.com/Survive-HFUT/survive-hfut.github.io)

这是一份面向合工大学生的生活指南，最初主要针对宣城校区编写，目前也在持续完善合肥校区相关内容。

我们希望通过更系统、更易检索的方式，把校园学习、生活、办事与常见问题汇总成一个可靠的入口。

网站内大部分页面都有严谨的引用来源标注，完全无广，纯为爱发电，可安心食用。

## 数据集介绍

本数据集将**活在肥宣**文档站的Markdown文件转换为用于 AI RAG 召回和 LoRA 后训练的数据集。

- `docs/`目录下是文档站的Markdown文件原文。
- `qapair/`目录下是迎新问答表的Excel文件原文。
- `survive-hfut-rag.jsonl` 是用于 RAG 召回的数据集。
- `survive-hfut-sft.jsonl` 是用于 LoRA 后训练（SFT）的问答数据集，由 `qapair/` 中的迎新问答整理而来。
- 更多由 LLM 生成、覆盖全站内容的后训练数据正在研究方案中，后续会发布。

### RAG 数据格式

`survive-hfut-rag.jsonl` 每行是一个检索分块（JSON 对象），由「文档切片」工具（演示站内置按钮）从 `docs/` 下的 Markdown 生成：

```json
{
  "id": "6f80a51c2042b05b470e",
  "text": "# 图书馆\n## 物品存放\n\n每层楼都有储物柜……\n参考来源：\n〔1〕 合肥工业大学图书馆……",
  "title": "图书馆",
  "section": "物品存放",
  "breadcrumbs": ["图书馆", "物品存放"],
  "source": "docs/campus/xc/library.md",
  "url": "https://survive-hfut.cc/campus/xc/library",
  "campus": null,
  "order": null,
  "chunk_index": 4,
  "char_count": 349
}
```

| 字段 | 说明 |
| --- | --- |
| `id` | 分块唯一 ID |
| `text` | 检索正文：Markdown 纯文本化后，含标题路径与本块引用到的参考来源 |
| `title` / `section` / `breadcrumbs` | 页面标题、所在小节、层级路径 |
| `source` / `url` | 源文件路径与文档站对应页面 URL |
| `campus` | 页面标注的校区（`xc` 宣城 / `hf` 合肥），未标注为 `null` |
| `order` | 文档 frontmatter 中的排序值，可能为 `null` |
| `chunk_index` / `char_count` | 页面内分块序号、正文字符数 |

分块规则：以二级标题（`##`）为单位切分，过长小节继续按三级标题/段落拆分（单块约 2000 字符以内，段落间保留少量重叠），过小分块并入相邻块并保留原标题。VitePress/ Vue 特有语法（容器提示块、`:::tabs` 校区选项卡、组件标签等）已转换为纯文本标记，脚注引用以〔n〕标记并附在块尾“参考来源”中。

再生成：打开演示站的「数据流水线 → ① 文档切片」工具（选择 `docs/` 文件夹即可生成并下载 jsonl，无需 Python 环境）。

### LoRA 后训练数据格式

`qapair/常见问题问答.xlsx` 中的迎新问答由 `scripts/build_sft_jsonl.py` 整理为 ShareGPT 格式（LLaMA-Factory / ms-swift 等主流训练框架均直接支持）：

```json
{"conversations": [{"from": "human", "value": "宿舍怎么分"}, {"from": "gpt", "value": "学院抽取宿舍楼 按专业班级随机分配 每个宿舍一位安徽本省同学"}]}
```

整理规则：剔除无答案问题（63 条）与群管理噪音（1 条）；答案中的多条回复整理为 `- ` 列表。源表的排版问题（答案错位、整句重复、拼接错误、与 TOP20 表重复的冗余行等）已由 `scripts/fix_qapair_xlsx.py` 修复。

再生成：`py scripts/build_sft_jsonl.py`（默认读取 `qapair/`，输出 `survive-hfut-sft.jsonl`）。

### Orama 静态检索 Demo

仓库根目录是一个纯静态的 Vite + Vue 示例站，演示对 `survive-hfut-rag.jsonl` 的混合召回（BM25 + 向量）：

- **预构建向量化**（Node）：`scripts/build_index.mjs` 用 `bge-small-zh-v1.5`（权重自托管在 `public/models/`）把每个分块编码为 512 维向量，产出 `public/assets/chunks.json`。
- **浏览器端**：加载 chunks.json 后现场构建 Orama 索引（`@orama/tokenizers/mandarin` 中文分词 + `vector[512]` 属性），搜索时只对查询词做 embedding（带 BGE 检索指令前缀），再走 `mode: 'hybrid'` 检索。
- **数据流水线**（页面内置按钮）：① 文档切片——选择 Markdown 文件夹，生成并下载 `survive-hfut-rag.jsonl`；② 切片向量化——对分块做向量化，生成并下载 `chunks.json` 并重建检索索引。

```sh
npm install
npm run index:build      # （可选）jsonl → 预计算向量 → public/assets/chunks.json
npm run dev              # 启动演示站（vite）
npm run build            # 产出纯静态 dist/，可部署到任意静态路径
```

注意两个中文检索的坑（示例代码里已处理）：Orama 默认分词器把汉字当分隔符，BM25 侧必须换 mandarin 分词器；Orama 向量检索默认相似度阈值是 0.8，对 BGE 的余弦分布太严（相关结果约 0.5~0.7），需显式调低 `similarity`。

## 数据集下载

数据集文件元信息以及数据文件，请浏览“数据集文件”页面获取。

您可以通过如下GIT Clone命令，或者ModelScope SDK来下载数据集

:modelscope-code[]{type="sdk"}

:modelscope-code[]{type="git"}
