能做什么
01
网页文档
将 Markdown 放入 LlamaIndex Document,使用 URL 作为稳定的文档 ID。
02
保留来源的文本块
使用 SentenceSplitter 生成带重叠区的文本块,并在元数据中保留来源 URL。
03
RAG 入库资料
将生成的节点交给应用已配置的索引或文档入库流程。
准备工作
- 具有 API Key 和可用积分的 AdsCrawl 账号。
- Python 3.10 或更高版本,建议使用虚拟环境。
接入方式 01
准备文档与节点
使用 Python SDK 获取页面,通过 LlamaIndex Core 转换文档并完成分块。
安装依赖
在应用目录中运行以下命令。
pip install adscrawl llama-index-core配置 API Key
在服务端环境或本地终端设置变量,用自己的密钥替换占位符,不要将其放入前端构建产物或提交到代码仓库。
export ADSCRAWL_API_KEY="your_adscrawl_api_key"保存为 web_documents.py
脚本创建文档、保留来源元数据,并打印每个文本块。这一步无需调用嵌入模型或 LLM API。
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())运行并接入下一步
预期每个节点都保留 https://example.com 作为 source,并包含网页文本。需要检索时,先配置嵌入模型和向量存储,再将节点建立索引;问答引擎还需配置用于生成回答的模型。
python web_documents.py
用量与限制
- 示例用于准备 RAG 输入,不会生成向量、持久化索引或回答问题。分块大小以 token 计量,模型与存储费用和 AdsCrawl 积分分开计算。
- 每次页面请求消耗 AdsCrawl 积分。示例读取单个公开 URL;动态页面可能需要调整 waitUntil,或增加浏览器交互步骤。
- 保留内容的来源 URL。处理长页面时,在传入模型前选择合适的分块方式或上下文长度策略。