用途:把一批本地 PDF 转成可语义搜索的 Asta 文档索引。每个 PDF 先转 Markdown,再按约 2000 字符切块,写入 asta-documents YAML 索引。
主要能力:assets 目录含三个脚本——extract-pdfs.sh(经 asta pdf-extraction remote 把 PDF 转 Markdown)、chunk-and-index.py(切块并写 YAML 索引)、warm-cache.sh(预热搜索缓存)。支持断点续跑、追加写入、相对路径存储,索引可移植。
使用方式:先向用户确认 PDF 目录、Markdown 输出目录、集合名、是否提取图片;建议 PDF 与 Markdown 同级、索引置于共同父目录。随后统计 PDF 数量与体积并确认,再依次执行:
bash assets/extract-pdfs.sh "$PDF_DIR" "$MARKDOWN_DIR" uv run --with pyyaml python3 assets/chunk-and-index.py "$COLLECTION" "$MARKDOWN_DIR" --index-path "$INDEX_PATH" --pdf-dir "$PDF_DIR" bash assets/warm-cache.sh "$DATASET_ROOT"
搜索示例:asta documents --root "$DATASET_ROOT" search --summary="query" --tags="COLLECTION"。若语料本身是 Markdown,可跳过提取,省略 --pdf-dir 直接切块索引。
适用场景:本地论文、笔记、wiki 等 PDF 或 Markdown 语料的全文检索。
限制:需 PyYAML;索引为追加式,重建需先删 index.yaml;必须预热缓存,否则首次搜索很慢;提取耗时受远程 API 限制(每次 50 页),大批量可用 olmocr;索引体积约为提取文本的 2-3 倍。具体收费与平台支持暂未提供。