新闻详情

新闻详情

首页 / 资讯中心 / 详情

DeepSearcher 接入 Docling:本地文件加载与 Web 爬取一体化实战指南

发布时间:2026/9/26 15:47:58来源:尧图网络
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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

API Error 400 排查实录:messages[1].role 反序列化失败,TaoToken 统一通道下的 JSON 骨架修复 2026/9/26 16:34:46

API Error 400 排查实录:messages[1].role 反序列化失败,TaoToken 统一通道下的 JSON 骨架修复

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

阅读更多 →
零代码搭建本地知识库:FireCrawl爬取+CherryStudio构建实战指南(TaoToken 统一 Key 配置版) 2026/9/26 16:34:40

零代码搭建本地知识库:FireCrawl爬取+CherryStudio构建实战指南(TaoToken 统一 Key 配置版)

/* 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 16:34:34

自由窗口弹窗越缩越偏:锚点坐标、窗口坐标和屏幕坐标别混用

自由窗口弹窗越缩越偏:锚点坐标、窗口坐标和屏幕坐标别混用 全屏时点击工具栏按钮,弹窗正好出现在按钮下方;把应用拖成自由窗口并移动到屏幕右侧,弹窗开始偏几十像素,连续缩放后甚至跑到另一个窗口上。问题通常不是弹…

阅读更多 →
贝立非标定制包装生产线规模怎么样,研发能力强吗 2026/9/26 16:34:28

贝立非标定制包装生产线规模怎么样,研发能力强吗

从后国内制造业萌芽起步,到如今智能制造浪潮席卷全国,制造环节的自动化转型早已从可选升级变为必答题。在后段包装这一制造环节的最后一公里,很长一段时间里都存在着自动化程度参差不齐的痛点:大量工厂的后段包装仍依赖人工完成重…

阅读更多 →
跨设备连接成功却收不到第二条消息:UIAbility 会话世代与文本协议怎么设计 2026/9/26 16:34:28

跨设备连接成功却收不到第二条消息:UIAbility 会话世代与文本协议怎么设计

跨设备连接成功却收不到第二条消息:UIAbility 会话世代与文本协议怎么设计 手表端成功拉起手机端应用,第一条“开始拍照”能收到;断线重连后第二条消息没有反应,旧手机页面却偶尔执行了一次。官方跨设备连接指南说明,…

阅读更多 →
自由窗口切回前台选中项变了:窗口焦点和业务焦点为什么必须分开 2026/9/26 16:34:28

自由窗口切回前台选中项变了:窗口焦点和业务焦点为什么必须分开

自由窗口切回前台选中项变了:窗口焦点和业务焦点为什么必须分开 两个自由窗口并排工作:用户在左侧列表选中一条记录,点击右侧浏览器查资料,再切回应用,列表高亮却跳到了第一项。官方自由窗口文档指出,窗口…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉