LangChain
为 LangChain 提供开箱即用的文档加载器、检索器和代理工具。直接将任意 URL 抓取到您的检索管道中,或将 Crawlbase 暴露为代理可调用的工具。
安装
pip install langchain-crawlbase轻量安装 - 只会带上 langchain-core 和 requests,无需其他 LangChain 附加组件。已在 Python 3.9+ 上测试通过。
文档加载器
可在 LangChain 需要加载器的任何地方使用 CrawlbaseLoader - RAG 管道、向量库摄取、代理上下文均可。
from langchain_crawlbase import CrawlbaseLoader
loader = CrawlbaseLoader(
urls=["https://example.com/blog/post-1", "https://example.com/blog/post-2"],
token="YOUR_TOKEN",
)
docs = loader.load()
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings
vs = Chroma.from_documents(docs, OpenAIEmbeddings())代理工具
将 Crawlbase 暴露为代理工具,让 LLM 能按需抓取 URL。
from langchain_openai import ChatOpenAI
from langchain_crawlbase import CrawlbaseTool
tool = CrawlbaseTool(token="YOUR_TOKEN")
llm = ChatOpenAI(model="gpt-4o").bind_tools([tool])
llm.invoke("What's on the homepage of anthropic.com today?")检索器
CrawlbaseRetriever 抓取一组固定的种子 URL,并返回与查询匹配的文档。当您希望在不搭建向量存储的情况下获取实时结果时非常有用。
from langchain_crawlbase import CrawlbaseRetriever
retriever = CrawlbaseRetriever(
token="YOUR_TOKEN",
urls=[
"https://crawlbase.com/docs/crawling-api",
"https://crawlbase.com/docs/crawling-api#parameters",
],
)
docs = retriever.invoke("how do I render JavaScript pages")v0.1 对抓取到的 Markdown 使用不区分大小写的子串匹配。如需语义检索,请将 CrawlbaseLoader 与您选择的向量存储搭配使用。
JavaScript 渲染页面
对于 SPA 和通过 JavaScript 加载内容的页面,请在同一个 token 参数中传入您的 JavaScript token - Crawlbase 会根据您发送的 token 路由请求。无需额外标志。
额外的 Crawlbase 参数
通过 extra_params 转发任何 Crawlbase API 参数(country、device、page_wait、scroll、css_click_selector、cookies、截图等)。
loader = CrawlbaseLoader(
token="YOUR_TOKEN",
urls=["https://example.com"],
extra_params={"country": "US", "device": "mobile"},
)文档元数据
加载器/检索器返回的每个 Document 都携带来自 Crawlbase 的响应元数据:
source:您请求的 URLresolved_url:经过重定向后的最终 URL(当与 source 不同时)pc_status:Crawlbase 的最终状态码original_status:目标站点返回的 HTTP 状态码content_type:响应的 content-type 头
常见用法
- 对最新抓取内容做 RAG:
使用
CrawlbaseLoader抓取若干种子 URL,切分为块,嵌入,查询。 - 实时网络研究代理:
将
CrawlbaseTool与搜索工具一起注册 - 代理先搜索,然后抓取相关结果。 - 站点监控: 调度加载器每天重新抓取相同的 URL,并将差异写入您的向量存储。