DeepSearcher 接入 Docling:本地文件加载与 Web 爬取一体化实战指南
人工智能大模型RAGAI Agent深度研究知识库【免费下载链接】deep-searcherOpen Source Deep Research Alternative to Reason and Search on Private Data. Written in Python.项目地址https://gitcode.com/gh_mirrors/de/deep-searcher点击查看免费下载本指南讲解如何在 DeepSearcher 中通过 Docling 同时完成本地文件加载与 Web 内容爬取覆盖配置初始化、代码实现、运行方式与底层原理。读完你将掌握 DoclingLoader 与 DoclingCrawler 的完整接入流程并能基于源码理解其文档转换、层级分块与向量入库的调用链路。Docling 在 DeepSearcher 中的定位DeepSearcher 是面向私有数据的开源深度研究工具其知识注入分为两大通道load_from_local_files负责把本地文件解析入库load_from_website负责抓取网页内容入库二者最终都由向量数据库承载供后续 RAG 检索与问答使用。Docling 是一套统一的文档解析能力可同时充当文件加载器与网页爬虫让同一套解析与分块逻辑贯穿本地与线上数据源这正是本示例的核心价值。代码示例DoclingLoader 与 DoclingCrawler 完整接入以下代码来自仓库 examples/load_and_crawl_using_docling.py完整演示了从配置到查询的四个步骤import logging import os from deepsearcher.offline_loading import load_from_local_files, load_from_website from deepsearcher.online_query import query from deepsearcher.configuration import Configuration, init_config # Suppress unnecessary logging from third-party libraries logging.getLogger(httpx).setLevel(logging.WARNING) def main(): # Step 1: Initialize configuration config Configuration() # Configure Vector Database and Docling providers config.set_provider_config(vector_db, Milvus, {}) config.set_provider_config(file_loader, DoclingLoader, {}) config.set_provider_config(web_crawler, DoclingCrawler, {}) # Apply the configuration init_config(config) # Step 2a: Load data from a local file using DoclingLoader local_file your_local_file_or_directory local_collection_name DoclingLocalFiles local_collection_description Milvus Documents loaded using DoclingLoader print(\n Loading local files using DoclingLoader ) try: load_from_local_files( paths_or_directorylocal_file, collection_namelocal_collection_name, collection_descriptionlocal_collection_description, force_new_collectionTrue ) print(fSuccessfully loaded: {local_file}) except ValueError as e: print(fValidation error: {str(e)}) except Exception as e: print(fError: {str(e)}) print(Successfully loaded all local files) # Step 2b: Crawl URLs using DoclingCrawler urls [ # Markdown documentation files https://milvus.io/docs/quickstart.md, https://milvus.io/docs/overview.md, # PDF example - can handle various URL formats https://arxiv.org/pdf/2408.09869, ] web_collection_name DoclingWebCrawl web_collection_description Milvus Documentation crawled using DoclingCrawler print(\n Crawling web pages using DoclingCrawler ) load_from_website( urlsurls, collection_nameweb_collection_name, collection_descriptionweb_collection_description, force_new_collectionTrue ) print(Successfully crawled all URLs) # Step 3: Query the loaded data question What is Milvus? result query(question) if __name__ __main__: main()步骤一初始化配置并启用 Docling示例通过Configuration().set_provider_config(...)以代码方式声明三大组件vector_db使用Milvus配置为空字典时采用 deepsearcher/config.yaml 中的默认参数uri: ./milvus.db、token: root:Milvus、db: default、default_collection: deepsearcherfile_loader切换为DoclingLoaderweb_crawler切换为DoclingCrawler。从 configuration.py 的源码看init_config(config)会通过ModuleFactory依据 provider 名称动态实例化全部模块LLM、Embedding、文件加载器、爬虫、向量数据库并进一步构建DeepSearch、ChainOfRAG与NaiveRAG三个检索 Agent。因此本示例中只显式设置了向量库、加载器和爬虫LLM 与 Embedding 仍沿用 config.yaml 中默认的 OpenAI 配置如需更换模型只需按 docs/configuration/llm.md 与 docs/configuration/embedding.md 调整。步骤二 aDoclingLoader 加载本地文件load_from_local_files接受单个路径或路径列表也可以是目录核心参数如下均来自 offline_loading.py 的函数签名参数默认值说明paths_or_directory必填本地文件或目录路径传入目录时递归加载其中所有支持类型的文件collection_nameNone使用默认集合向量库集合名内部会将其中的空格与-替换为_collection_descriptionNone集合描述写入向量库元数据force_new_collectionFalse为True时先删除已有同名集合再重建适合重复实验chunk_size1500分块字符数chunk_overlap100相邻块重叠字符数batch_size256向量化时的批量大小加载流程在源码中清晰可见先按 Embedding 维度初始化集合再逐个路径调用file_loader.load_file目录则走load_directory将全部文档交给 splitter.py 做RecursiveCharacterTextSplitter分块并附加前后 300 字符的wider_text上下文窗口最后批量 Embedding 并写入向量库。步骤二 bDoclingCrawler 抓取 Web 内容load_from_website接受单个 URL 或 URL 列表同样支持collection_name、collection_description、force_new_collection、chunk_size、chunk_overlap、batch_size参数额外还透传**crawl_kwargs给爬虫见 offline_loading.py。示例中的 URL 混合了 Markdown 文档与 PDF 两种格式用于演示 Docling 对多种 URL 形态的统一处理。步骤三查询已加载的数据数据入库后直接调用query(question)即可触发默认RAGRouter路由到 DeepSearch 或 ChainOfRAG Agent 进行多轮检索与答案生成实现见 online_query.py。运行示例安装 DeepSearcher 与 Doclingpip install deepsearcher docling将your_local_file_or_directory替换为实际的文件或目录路径运行脚本python load_and_crawl_using_docling.py底层原理文档转换与层级分块两个 Docling 组件共享同一套核心机制见 docling_loader.py 与 docling_crawler.py初始化构造DocumentConverter与HierarchicalChunker实例转换converter.convert(...)将本地文件路径或 URL 统一转换为 Docling 文档对象这正是本地与网页共用同一套解析能力的根基分块chunker.chunk(docling_document)依据文档结构标题层级、段落等生成语义连贯的层级分块产出每个 chunk 被封装为langchain_core.documents.Documentpage_content为块文本metadata记录reference文件路径或 URL与text原文供后续检索引用溯源。Docling 支持的文件类型supported_file_types属性包括PDFOffice 格式 DOCX、XLSX、PPTXMarkdownAsciiDocadoc/asciidocHTML、XHTMLCSV以及 PNG、JPEG、TIFF、BMP 等图片格式。load_directory通过 BaseLoader 的os.walk递归遍历目录只对上述扩展名文件调用load_file。测试用例 test_docling_loader.py 与 test_docling_crawler.py 验证了这些行为转换与分块各被调用一次、reference元数据正确写入、文件不存在抛FileNotFoundError、不支持的扩展名抛ValueError、处理失败统一包装为IOError。关键概念与易错点双通道复用Docling 同时充当 file_loader 与 web_crawler本地与网页数据经同一套转换-分块管线进入向量库保证解析质量一致错误处理示例对加载过程做了try/except包装而源码层面load_file对不存在的文件抛FileNotFoundError、对不支持类型抛ValueError、对解析失败抛IOErrorcrawl_url对 URL 处理失败同样抛IOError均会先通过log.color_print输出带颜色的错误信息集合管理force_new_collectionTrue会重建集合重复运行时避免旧数据残留干扰网络与依赖Docling 解析 PDF 与部分网页时会联网下载模型或访问目标站点需保证网络可达DoclingCrawler 不负责渲染 JavaScript 等动态内容抓取能力取决于 Docling 自身的文档解析范围。赞分享人工智能大模型RAGAI Agent深度研究知识库【免费下载链接】deep-searcherOpen Source Deep Research Alternative to Reason and Search on Private Data. Written in Python.项目地址https://gitcode.com/gh_mirrors/de/deep-searcher点击查看免费下载相关推荐DeepSearcher 网络爬虫配置指南接入 FireCrawl、Crawl4AI、Jina Reader 与 Docling 实现网页数据入库DeepSearcher 网络爬虫配置指南接入 FireCrawl、Crawl4AI、Jina Reader 与 Docling 实现网页数据入库 DeepS人工智能大模型RAGAI Agent深度研究知识库DeepSearcher 配置体系详解一套统一入口管理 LLM、Embedding、向量库、文件加载器与网页爬虫DeepSearcher 配置体系详解一套统一入口管理 LLM、Embedding、向量库、文件加载器与网页爬虫 DeepSearcher 将系统拆分为 LL人工智能大模型RAGAI Agent深度研究知识库Astryx Pagination 组件契约全解析解剖结构、Theming 目标与委派控制的实现验证Astryx Pagination 组件契约全解析解剖结构、Theming 目标与委派控制的实现验证 Pagination 是 Astryx 设计系统中用于分人工智能大模型RAGAI Agent深度研究知识库上一篇5个步骤配置Stanford Doggo软件状态机与轨迹控制详解下一篇Step-Audio 2 mini工业级开源语音大模型重构人机交互新范式创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Apex Amp 混合精度训练实战:从 opt_level 到统一 API 的完整指南

Apex Amp 混合精度训练实战:从 opt_level 到统一 API 的完整指南

人工智能大模型音乐生成音频预训练 【免费下载链接】jukebox Code for the paper "Jukebox: A Generative Model for Music" 项目地址: https://gitcode.com/gh_mirrors/ju/jukebox 点击查看 免费下载 本文以 NVIDIA Apex 仓库中 amp.rst 文档为主线&…

2026/9/26 15:48:21 阅读更多 →
使用 AWS SDK for Kotlin 操作 Amazon Data Firehose:创建、写入与删除 Delivery Stream 实战指南

使用 AWS SDK for Kotlin 操作 Amazon Data Firehose:创建、写入与删除 Delivery Stream 实战指南

示例工程教程后端 【免费下载链接】aws-doc-sdk-examples Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below. 项目地…

2026/9/26 15:48:20 阅读更多 →
OpenClaw+LibTV视频生成实测(含安装+配置+分析):ai生成工作流很规范,但画面在“打架“

OpenClaw+LibTV视频生成实测(含安装+配置+分析):ai生成工作流很规范,但画面在“打架“

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 15:48:20 阅读更多 →

最新新闻

验证码识别脚本实战:OpenCV预处理+CNN训练全流程解析

验证码识别脚本实战:OpenCV预处理+CNN训练全流程解析

简介:面向计算机相关专业学习者与机器学习初学者的实战项目,基于机器学习算法实现验证码识别,包含可直接运行测试的完整源码与说明文档,适用于课程设计、毕业设计或企业初期项目演示,具有较高的学习借鉴价值。压缩包共…

2026/9/26 16:36:42 阅读更多 →
基于自适应关键帧的微表情识别算法实现与避坑指南

基于自适应关键帧的微表情识别算法实现与避坑指南

简介:这份资源面向情感计算与计算机视觉方向的研究者、学生及开发者,提供一套基于自适应关键帧的视频微表情识别算法完整实现,用于解决微表情持续时间短、识别难度大、计算开销高等问题。压缩包共14个文件,约404KB,以6…

2026/9/26 16:36:42 阅读更多 →
科研成果申报管理系统源码:从跑通到改造的完整指南

科研成果申报管理系统源码:从跑通到改造的完整指南

简介:这份科研成果申报管理系统源码面向计算机专业学生及需要完成毕业设计的开发者,提供一套覆盖项目申报、评审管理、进度跟踪与文档管理等环节的完整Web应用实现,帮助读者理解科研管理业务的数字化流程与软件工程落地方式。压缩包共155个文…

2026/9/26 16:36:42 阅读更多 →
基于Zi-Pi指标的微生物网络关键物种识别:R语言实现与社区分析指南

基于Zi-Pi指标的微生物网络关键物种识别:R语言实现与社区分析指南

简介:面向微生物网络分析中节点模块内连通度与模块间连通度的量化需求,这份资源提供了基于R语言的完整计算方案,适用于生态学、生物信息学等领域研究者。压缩包内共2个文件,包含1个R脚本和1个graphml网络文件,脚本可直…

2026/9/26 16:36:42 阅读更多 →
宠物管理系统全栈教学闭环:原型→数据库→源码实战

宠物管理系统全栈教学闭环:原型→数据库→源码实战

简介:本资源是一套完整的宠物管理系统开发学习套件,面向Java或Web全栈初学者及课程设计学生,聚焦宠物服务类信息化管理场景,涵盖需求分析、界面交互与数据持久化全流程实践。压缩包共4个文件,含2个ZIP(分别…

2026/9/26 16:36:42 阅读更多 →
python的智能制造导论工业场景模拟第一百二十九篇:仿真物料来料波动场景,测试工艺系统自适应调整能力,统计不同来料下产品不良率变化。

python的智能制造导论工业场景模拟第一百二十九篇:仿真物料来料波动场景,测试工艺系统自适应调整能力,统计不同来料下产品不良率变化。

仿真物料来料波动场景,测试工艺系统自适应调整能力,统计不同来料下产品不良率变化周四下午两点,质量部的小陈抱着一摞首件检验报告冲进工艺办公室,脸色不太好看。"你看这组数据,"她把报告摊在桌上&#xff0…

2026/9/26 16:35:42 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →