跳转到主要内容
全部集成

AI 开发

在 LlamaIndex 中使用 AdsCrawl

通过 AdsCrawl Python SDK,为 LlamaIndex RAG 流程准备网页资料。获取渲染后的 Markdown,创建带来源元数据的 Document,再拆分为节点,随后接入所选的嵌入模型和索引。

能做什么

01

网页文档

将 Markdown 放入 LlamaIndex Document,使用 URL 作为稳定的文档 ID。

02

保留来源的文本块

使用 SentenceSplitter 生成带重叠区的文本块,并在元数据中保留来源 URL。

03

RAG 入库资料

将生成的节点交给应用已配置的索引或文档入库流程。

准备工作

  • 具有 API Key 和可用积分的 AdsCrawl 账号。
  • Python 3.10 或更高版本,建议使用虚拟环境。

接入方式 01

准备文档与节点

使用 Python SDK 获取页面,通过 LlamaIndex Core 转换文档并完成分块。

  1. 安装依赖

    在应用目录中运行以下命令。

    Shell
    pip install adscrawl llama-index-core
  2. 配置 API Key

    在服务端环境或本地终端设置变量,用自己的密钥替换占位符,不要将其放入前端构建产物或提交到代码仓库。

    Shell
    export ADSCRAWL_API_KEY="your_adscrawl_api_key"
  3. 保存为 web_documents.py

    脚本创建文档、保留来源元数据,并打印每个文本块。这一步无需调用嵌入模型或 LLM API。

    Python
    import os
    from adscrawl import AdsCrawl
    from llama_index.core import Document
    from llama_index.core.node_parser import SentenceSplitter
    
    client = AdsCrawl(api_key=os.environ["ADSCRAWL_API_KEY"])
    url = "https://example.com"
    markdown = client.markdown({"url": url, "waitUntil": "domcontentloaded"})
    if not markdown.strip():
        raise ValueError("The page returned no text")
    
    document = Document(text=markdown, metadata={"source": url}, id_=url)
    splitter = SentenceSplitter(chunk_size=512, chunk_overlap=64)
    nodes = splitter.get_nodes_from_documents([document])
    
    for node in nodes:
        print(node.metadata["source"])
        print(node.get_content())
  4. 运行并接入下一步

    预期每个节点都保留 https://example.com 作为 source,并包含网页文本。需要检索时,先配置嵌入模型和向量存储,再将节点建立索引;问答引擎还需配置用于生成回答的模型。

    Shell
    python web_documents.py

用量与限制

  • 示例用于准备 RAG 输入,不会生成向量、持久化索引或回答问题。分块大小以 token 计量,模型与存储费用和 AdsCrawl 积分分开计算。
  • 每次页面请求消耗 AdsCrawl 积分。示例读取单个公开 URL;动态页面可能需要调整 waitUntil,或增加浏览器交互步骤。
  • 保留内容的来源 URL。处理长页面时,在传入模型前选择合适的分块方式或上下文长度策略。
查看价格与积分换算

继续阅读

LlamaIndex 官方文档AdsCrawl Python SDK