Skip to main content
兼容性:仅适用于 Node.js 环境。
本笔记本提供了快速入门 RecursiveUrlLoader 文档加载器 的概述。有关 RecursiveUrlLoader 所有功能和配置的详细文档,请参阅 API 参考

概述

集成详情

本地可序列化Python 支持
RecursiveUrlLoader@langchain/communitybeta

加载器特性

来源网页加载器仅限 Node 环境
RecursiveUrlLoader
从网站加载内容时,我们可能希望处理并加载页面上的所有 URL。 例如,让我们看看 LangChain.js 的介绍文档。 它有许多有趣的子页面,我们可能希望批量加载、分割并在之后检索。 挑战在于遍历子页面的树结构并组装列表! 我们使用 RecursiveUrlLoader 来实现这一点。 这还使我们能够灵活地排除某些子页面、自定义提取器等。

设置

要访问 RecursiveUrlLoader 文档加载器,您需要安装 @langchain/community 集成包以及 jsdom 包。

凭证

如果您希望自动跟踪模型调用,还可以通过取消注释以下内容来设置您的 LangSmith API 密钥:
# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"

安装

LangChain RecursiveUrlLoader 集成位于 @langchain/community 包中:
npm install @langchain/community @langchain/core jsdom
</CodeGroup>

我们还建议添加诸如 [`html-to-text`](https://www.npmjs.com/package/html-to-text) 或
[`@mozilla/readability`](https://www.npmjs.com/package/@mozilla/readability) 之类的包,用于从页面提取原始文本。

<CodeGroup>
```bash npm
npm install html-to-text
我们还建议添加诸如 html-to-text@mozilla/readability 之类的包,用于从页面提取原始文本。
npm install html-to-text
我们还建议添加诸如 html-to-text@mozilla/readability 之类的包,用于从页面提取原始文本。

实例化

现在我们可以实例化模型对象并加载文档:
import { RecursiveUrlLoader } from "@langchain/community/document_loaders/web/recursive_url"
import { compile } from "html-to-text";

const compiledConvert = compile({ wordwrap: 130 }); // 返回 (text: string) => string;

const loader = new RecursiveUrlLoader("https://langchain.com/",  {
  extractor: compiledConvert,
  maxDepth: 1,
  excludeDirs: ["/docs/api/"],
})

加载

const docs = await loader.load()
docs[0]
{
  pageContent: '\n' +
    '/\n' +
    '产品\n' +
    '\n' +
    'LangChain [/langchain]LangSmith [/langsmith]LangGraph [/langgraph]\n' +
    '方法\n' +
    '\n' +
    '检索 [/retrieval]智能体 [/agents]评估 [/evaluation]\n' +
    '资源\n' +
    '\n' +
    '博客 [https://blog.langchain.dev/]案例研究 [/case-studies]用例灵感 [/use-cases]专家 [/experts]更新日志\n' +
    '[https://changelog.langchain.com/]\n' +
    '文档\n' +
    '\n' +
    'LangChain 文档 [https://python.langchain.com/v0.2/docs/introduction/]LangSmith 文档 [https://docs.smith.langchain.com/]\n' +
    '公司\n' +
    '\n' +
    '关于 [/about]招聘 [/careers]\n' +
    '定价 [/pricing]\n' +
    '获取演示 [/contact-sales]\n' +
    '注册 [https://smith.langchain.com/]\n' +
    '\n' +
    '\n' +
    '\n' +
    '\n' +
    'LangChain 的产品套件支持开发者在 LLM 应用生命周期的每一步。\n' +
    '\n' +
    '\n' +
    '能够推理的应用程序。由 LANGCHAIN 驱动。\n' +
    '\n' +
    '获取演示 [/contact-sales]免费注册 [https://smith.langchain.com/]\n' +
    '\n' +
    '\n' +
    '\n' +
    '从初创公司到全球企业,\n' +
    '雄心勃勃的构建者选择\n' +
    'LANGCHAIN 产品。\n' +
    '\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7c22746faa78338532_logo_Ally.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7c08e67bb7eefba4c2_logo_Rakuten.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7c576fdde32d03c1a0_logo_Elastic.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7c6d5592036dae24e5_logo_BCG.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/667f19528c3557c2c19c3086_the-home-depot-2%201.png][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7cbcf6473519b06d84_logo_IDEO.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7cb5f96dcc100ee3b7_logo_Zapier.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/6606183e52d49bc369acc76c_mdy_logo_rgb_moodysblue.png][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7c8ad7db6ed6ec611e_logo_Adyen.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7c737d50036a62768b_logo_Infor.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/667f59d98444a5f98aabe21c_acxiom-vector-logo-2022%201.png][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7c09a158ffeaab0bd2_logo_Replit.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7c9d2b23d292a0cab0_logo_Retool.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7c44e67a3d0a996bf3_logo_Databricks.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/667f5a1299d6ba453c78a849_image%20(19).png][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ca3b7c63af578816bafcc3_logo_Instacart.svg][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/665dc1dabc940168384d9596_podium%20logo.svg]\n' +
    '\n' +
    '构建\n' +
    '\n' +
    'LangChain 是一个通过链接可互操作组件来构建 LLM 应用的框架。LangGraph 是构建可控智能体工作流的框架。\n' +
    '\n' +
    '\n' +
    '\n' +
    '运行\n' +
    '\n' +
    '使用 LangGraph Cloud(我们专为智能体构建的基础设施)大规模部署您的 LLM 应用程序。\n' +
    '\n' +
    '\n' +
    '\n' +
    '管理\n' +
    '\n' +
    "在 LangSmith 中调试、协作、测试和监控您的 LLM 应用——无论它是否使用 LangChain 框架构建。\n" +
    '\n' +
    '\n' +
    '\n' +
    '\n' +
    '使用 LANGCHAIN 构建您的应用\n' +
    '\n' +
    '使用 LangChain 灵活的框架构建上下文感知、能够推理的应用程序,该框架利用您公司的数据和 API。\n' +
    '通过将供应商可选性作为 LLM 基础设施设计的一部分,使您的应用程序面向未来。\n' +
    '\n' +
    '了解更多关于 LangChain\n' +
    '\n' +
    '[/langchain]\n' +
    '\n' +
    '\n' +
    '使用 LANGGRAPH CLOUD 大规模运行\n' +
    '\n' +
    '使用 LangGraph Cloud 部署您的 LangGraph 应用,以获得容错可扩展性——包括对异步后台作业、内置持久性和分布式任务队列的支持。\n' +
    '\n' +
    '了解更多关于 LangGraph\n' +
    '\n' +
    '[/langgraph]\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/667c6d7284e58f4743a430e6_Langgraph%20UI-home-2.webp]\n' +
    '\n' +
    '\n' +
    '使用 LANGSMITH 管理 LLM 性能\n' +
    '\n' +
    '通过 LangSmith 的调试、测试、部署和监控工作流程更快地交付。不要依赖“感觉”——为您的 LLM 开发工作流程增加工程严谨性,无论您是否使用 LangChain 构建。\n' +
    '\n' +
    '了解更多关于 LangSmith\n' +
    '\n' +
    '[/langsmith]\n' +
    '\n' +
    '\n' +
    '听听我们满意的客户怎么说\n' +
    '\n' +
    'LangChain、LangGraph 和 LangSmith 帮助各种规模、各行各业的团队——从雄心勃勃的初创公司到成熟的企业。\n' +
    '\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65c5308aee06d9826765c897_Retool_logo%201.png]\n' +
    '\n' +
    '“LangSmith 帮助我们提高了 Retool 微调模型的准确性和性能。我们不仅通过使用 LangSmith 迭代交付了更好的产品,而且现在只需花费以前所需时间的一小部分就能向用户发布新的 AI 功能。”\n' +
    '\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65c5308abdd2dbbdde5a94a1_Jamie%20Cuffe.png]\n' +
    'Jamie Cuffe\n' +
    '自助服务和新产品负责人\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65c5308a04d37cf7d3eb1341_Rakuten_Global_Brand_Logo.png]\n' +
    '\n' +
    '“通过结合 LangSmith 的优势并站在庞大的开源社区的肩膀上,我们能够更快地确定在企业环境中使用 LLM 的正确方法。”\n' +
    '\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65c5308a8b6137d44c621cb4_Yusuke%20Kaji.png]\n' +
    'Yusuke Kaji\n' +
    'AI 总经理\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65c5308aea1371b447cc4af9_elastic-ar21.png]\n' +
    '\n' +
    '“与 LangChain 和 LangSmith 合作开发 Elastic AI Assistant 对整体开发速度和交付体验产生了显著的积极影响。没有 LangChain,我们无法实现交付给客户的产品体验;没有 LangSmith,我们无法以同样的速度完成。”\n' +
    '\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65c5308a4095d5a871de7479_James%20Spiteri.png]\n' +
    'James Spiteri\n' +
    '安全产品总监\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65c530539f4824b828357352_Logo_de_Fintual%201.png]\n' +
    '\n' +
    '“我们一听说 LangSmith,就将整个开发堆栈迁移到了上面。我们本可以在内部构建评估、测试和监控工具,但使用 LangSmith,我们只花了十分之一的时间就获得了一个好一千倍的工具。”\n' +
    '\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65c53058acbff86f4c2dcee2_jose%20pena.png]\n' +
    'Jose Peña\n' +
    '高级经理\n' +
    '\n' +
    '\n' +
    '\n' +
    '\n' +
    '企业采用的成功参考架构。\n' +
    '\n' +
    'LangChain 的产品套件可以独立使用,也可以堆叠在一起以产生倍增效应——指导您完成 LLM 应用的构建、运行和管理。\n' +
    '\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/6695b116b0b60c78fd4ef462_15.07.24%20-Updated%20stack%20diagram%20-%20lightfor%20website-3.webp][https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/667d392696fc0bc3e17a6d04_New%20LC%20stack%20-%20light-2.webp]\n' +
    '1500万+\n' +
    '月下载量\n' +
    '10万+\n' +
    '应用支持\n' +
    '7.5万+\n' +
    'GitHub 星标\n' +
    '3000+\n' +
    '贡献者\n' +
    '\n' +
    '\n' +
    '生成式 AI 领域最大的开发者社区\n' +
    '\n' +
    '与 100 多万推动行业发展的开发者一起学习。\n' +
    '\n' +
    '探索 LangChain\n' +
    '\n' +
    '[/langchain]\n' +
    '\n' +
    '\n' +
    '立即开始使用 LANGSMITH 平台\n' +
    '\n' +
    '获取演示 [/contact-sales]免费注册 [https://smith.langchain.com/]\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65ccf12801bc39bf912a58f3_Home%20C.webp]\n' +
    '\n' +
    '使用 LangChain 构建的团队正在提高运营效率、增强发现和个性化,并交付能够产生收入的优质产品。\n' +
    '\n' +
    '发现用例\n' +
    '\n' +
    '[/use-cases]\n' +
    '\n' +
    '\n' +
    '从已经成功的企业中获得灵感。\n' +
    '\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65bcd7ee85507bdf350399c3_Ally_Financial%201.svg]\n' +
    '金融服务\n' +
    '\n' +
    '[https://blog.langchain.dev/ally-financial-collaborates-with-langchain-to-deliver-critical-coding-module-to-mask-personal-identifying-information-in-a-compliant-and-safe-manner/]\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65bcd8b3ae4dc901daa3037a_Adyen_Corporate_Logo%201.svg]\n' +
    '金融科技\n' +
    '\n' +
    '[https://blog.langchain.dev/llms-accelerate-adyens-support-team-through-smart-ticket-routing-and-support-agent-copilot/]\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65c534b3fa387379c0f4ebff_elastic-ar21%20(1).png]\n' +
    '科技\n' +
    '\n' +
    '[https://blog.langchain.dev/langchain-partners-with-elastic-to-launch-the-elastic-ai-assistant/]\n' +
    '\n' +
    '\n' +
    'LANGSMITH 是为 LLM 构建的企业级 DEVOPS 平台。\n' +
    '\n' +
    '探索 LangSmith\n' +
    '\n' +
    '[/langsmith]\n' +
    '获得可见性,以便在成本、延迟和质量之间做出权衡。\n' +
    '提高开发者的生产力。\n' +
    '消除手动、易出错的测试。\n' +
    '减少幻觉并提高可靠性。\n' +
    '企业部署选项以保持数据安全。\n' +
    '\n' +
    '\n' +
    '准备好开始更快地交付可靠的生成式 AI 应用了吗?\n' +
    '\n' +
    '开始使用 LangChain、LangGraph 和 LangSmith 来增强您的 LLM 应用开发,从原型到生产。\n' +
    '\n' +
    '获取演示 [/contact-sales]免费注册 [https://smith.langchain.com/]\n' +
    '产品\n' +
    'LangChain [/langchain]LangSmith [/langsmith]LangGraph [/langgraph]智能体 [/agents]评估 [/evaluation]检索 [/retrieval]\n' +
    '资源\n' +
    'Python 文档 [https://python.langchain.com/]JS/TS 文档 [https://js.langchain.com/docs/get_started/introduction/]GitHub\n' +
    '[https://github.com/langchain-ai]集成 [https://python.langchain.com/v0.2/docs/integrations/platforms/]模板\n' +
    '[https://templates.langchain.com/]更新日志 [https://changelog.langchain.com/]LangSmith 信任门户\n' +
    '[https://trust.langchain.com/]\n' +
    '公司\n' +
    '关于 [/about]博客 [https://blog.langchain.dev/]Twitter [https://twitter.com/LangChain]LinkedIn\n' +
    '[https://www.linkedin.com/company/langchain/]YouTube [https://www.youtube.com/@LangChain]社区 [/join-community]营销\n' +
    '素材 [https://drive.google.com/drive/folders/17xybjzmVBdsQA-VxouuGLxF6bDsHDe80?usp=sharing]\n' +
    '注册我们的新闻通讯以保持最新\n' +
    '谢谢!您的提交已收到!\n' +
    '糟糕!提交表单时出了点问题。\n' +
    '[https://cdn.prod.website-files.com/65b8cd72835ceeacd4449a53/65c6a38f9c53ec71f5fc73de_langchain-word.svg]\n' +
    '所有系统运行正常\n' +
    '[https://status.smith.langchain.com/]隐私政策 [/'... 还有 111 个字符,
  metadata: {
    source: 'https://langchain.com/',
    title: 'LangChain',
    description: 'LangChain 的产品套件支持开发者在他们开发旅程的每一步。',
    language: 'en'
  }
}
console.log(docs[0].metadata)
{
  source: 'https://langchain.com/',
  title: 'LangChain',
  description: 'LangChain 的产品套件支持开发者在他们开发旅程的每一步。',
  language: 'en'
}

选项

interface Options {
  excludeDirs?: string[]; // 要排除的网页目录。
  extractor?: (text: string) => string; // 用于从网页提取文档文本的函数,默认情况下它按原样返回页面。建议使用 html-to-text 等工具来提取文本。默认情况下,它只是按原样返回页面。
  maxDepth?: number; // 要爬取的最大深度。默认设置为 2。如果需要爬取整个网站,将其设置为足够大的数字即可。
  timeout?: number; // 每个请求的超时时间,单位为秒。默认设置为 10000(10 秒)。
  preventOutside?: boolean; // 是否防止爬取根 URL 之外的内容。默认设置为 true。
  callerOptions?: AsyncCallerConstructorParams; // 调用 AsyncCaller 的选项,例如设置最大并发数(默认为 64)
}
然而,由于很难执行完美的过滤,您可能仍然会在结果中看到一些不相关的内容。如果需要,您可以自己对返回的文档执行过滤。大多数时候,返回的结果已经足够好。

API 参考

有关 RecursiveUrlLoader 所有功能和配置的详细文档,请参阅 API 参考