构建更好的 RAG 流水线:抓取技术文档并生成干净的 Markdown

发布: (2025年12月12日 GMT+8 11:56)
3 min read
原文: Dev.to

Source: Dev.to

通用爬取的问题

如果你仅仅使用 curl 一个文档页面或使用通用爬虫,你的 LLM 上下文会被噪音淹没:

  • 导航菜单 在每个页面上重复出现(例如 “Home > Docs > API…”)。
  • 侧边栏 干扰语义搜索。
  • 页脚、Cookie 横幅和脚本
  • 代码块缺失语言标签 导致破碎。

你的检索系统可能会匹配到页脚中的 “服务条款” 链接,而不是你真正想要的 API 方法。

解决方案:框架感知爬虫

我构建了 Tech Docs to LLM‑Ready Markdown 来解决这个问题。
该 Apify actor 检测文档框架(Docusaurus、GitBook、MkDocs 等),并智能提取 你关心的内容,而不是把每个页面当作一堆 HTML 标签。

Tech Docs 转 Markdown 用于 RAG 与 LLM – Apify

🚀 RAG 流水线的关键特性

1. 智能框架检测

自动识别底层技术栈并应用专门的抽取规则:

  • ✅ Docusaurus
  • ✅ GitBook
  • ✅ MkDocs (Material)
  • ✅ ReadTheDocs
  • ✅ VuePress / Nextra

2. 自动清理

剔除:

  • 侧边栏和顶部导航
  • “编辑此页” 链接
  • 目录(对向量化来说是冗余的)
  • 页脚和法律文本

3. 为 RAG 设计的输出格式 🤖

爬虫输出结构化数据,便于导入向量数据库:

  • doc_id – URL 的稳定唯一哈希(便于去重)
  • section_path – 面包屑路径(例如 Guides > Advanced > Configuration
  • chunk_index – 内置分块支持

示例输出

{
    "doc_id": "acdb145c14f4310b",
    "title": "Introduction | Crawlee",
    "section_path": "Guides > Quick Start > Introduction",
    "content": "# Introduction\n\nCrawlee covers your crawling...",
    "framework": "docusaurus",
    "metadata": {
        "wordCount": 358,
        "crawledAt": "2025-12-12T03:34:46.151Z"
    }
}

🛠️ 与 LangChain 的集成

因为输出已经是结构化的,使用 ApifyDatasetLoader 将其加载到 LangChain 非常简单。

from langchain.document_loaders import ApifyDatasetLoader
from langchain.docstore.document import Document

loader = ApifyDatasetLoader(
    dataset_id="YOUR_DATASET_ID",
    dataset_mapping_function=lambda item: Document(
        page_content=item["content"],
        metadata={
            "source": item["url"],
            "title": item["title"],
            "doc_id": item["doc_id"],
            "section": item["section_path"]  # <--- 稍后可按章节过滤!
        }
    ),
)

docs = loader.load()
print(f"Loaded {len(docs)} clean documents.")

📉 成本与性能

该 actor 基于自定义轻量抽取引擎(在 Cheerio 之上),既快又便宜:

  • 定价: 按结果付费(每 1,000 页 $0.50)
  • 速度: 每分钟可处理数百页

试一试

如果你正在为库、SDK 或内部文档构建 AI 助手,快来试试吧。它能为你节省大量数据清洗时间。

尝试 Tech Docs Scraper

在评论区告诉我还有哪些文档框架希望我加入! 👇

Back to Blog

相关文章

阅读更多 »