指南)
人工智能大模型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 內(nèi)容爬取覆蓋配置初始化、代碼實現(xiàn)、運行方式與底層原理。讀完你將掌握 DoclingLoader 與 DoclingCrawler 的完整接入流程并能基于源碼理解其文檔轉(zhuǎn)換、層級分塊與向量入庫的調(diào)用鏈路。Docling 在 DeepSearcher 中的定位DeepSearcher 是面向私有數(shù)據(jù)的開源深度研究工具其知識注入分為兩大通道load_from_local_files負(fù)責(zé)把本地文件解析入庫load_from_website負(fù)責(zé)抓取網(wǎng)頁內(nèi)容入庫二者最終都由向量數(shù)據(jù)庫承載供后續(xù) RAG 檢索與問答使用。Docling 是一套統(tǒng)一的文檔解析能力可同時充當(dāng)文件加載器與網(wǎng)頁爬蟲讓同一套解析與分塊邏輯貫穿本地與線上數(shù)據(jù)源這正是本示例的核心價值。代碼示例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 中的默認(rèn)參數(shù)uri: ./milvus.db、token: root:Milvus、db: default、default_collection: deepsearcherfile_loader切換為DoclingLoaderweb_crawler切換為DoclingCrawler。從 configuration.py 的源碼看init_config(config)會通過ModuleFactory依據(jù) provider 名稱動態(tài)實例化全部模塊LLM、Embedding、文件加載器、爬蟲、向量數(shù)據(jù)庫并進(jìn)一步構(gòu)建DeepSearch、ChainOfRAG與NaiveRAG三個檢索 Agent。因此本示例中只顯式設(shè)置了向量庫、加載器和爬蟲LLM 與 Embedding 仍沿用 config.yaml 中默認(rèn)的 OpenAI 配置如需更換模型只需按 docs/configuration/llm.md 與 docs/configuration/embedding.md 調(diào)整。步驟二 aDoclingLoader 加載本地文件load_from_local_files接受單個路徑或路徑列表也可以是目錄核心參數(shù)如下均來自 offline_loading.py 的函數(shù)簽名參數(shù)默認(rèn)值說明paths_or_directory必填本地文件或目錄路徑傳入目錄時遞歸加載其中所有支持類型的文件collection_nameNone使用默認(rèn)集合向量庫集合名內(nèi)部會將其中的空格與-替換為_collection_descriptionNone集合描述寫入向量庫元數(shù)據(jù)force_new_collectionFalse為True時先刪除已有同名集合再重建適合重復(fù)實驗chunk_size1500分塊字符數(shù)chunk_overlap100相鄰塊重疊字符數(shù)batch_size256向量化時的批量大小加載流程在源碼中清晰可見先按 Embedding 維度初始化集合再逐個路徑調(diào)用file_loader.load_file目錄則走load_directory將全部文檔交給 splitter.py 做RecursiveCharacterTextSplitter分塊并附加前后 300 字符的wider_text上下文窗口最后批量 Embedding 并寫入向量庫。步驟二 bDoclingCrawler 抓取 Web 內(nèi)容load_from_website接受單個 URL 或 URL 列表同樣支持collection_name、collection_description、force_new_collection、chunk_size、chunk_overlap、batch_size參數(shù)額外還透傳**crawl_kwargs給爬蟲見 offline_loading.py。示例中的 URL 混合了 Markdown 文檔與 PDF 兩種格式用于演示 Docling 對多種 URL 形態(tài)的統(tǒng)一處理。步驟三查詢已加載的數(shù)據(jù)數(shù)據(jù)入庫后直接調(diào)用query(question)即可觸發(fā)默認(rèn)RAGRouter路由到 DeepSearch 或 ChainOfRAG Agent 進(jìn)行多輪檢索與答案生成實現(xiàn)見 online_query.py。運行示例安裝 DeepSearcher 與 Doclingpip install deepsearcher docling將your_local_file_or_directory替換為實際的文件或目錄路徑運行腳本python load_and_crawl_using_docling.py底層原理文檔轉(zhuǎn)換與層級分塊兩個 Docling 組件共享同一套核心機制見 docling_loader.py 與 docling_crawler.py初始化構(gòu)造DocumentConverter與HierarchicalChunker實例轉(zhuǎn)換converter.convert(...)將本地文件路徑或 URL 統(tǒng)一轉(zhuǎn)換為 Docling 文檔對象這正是本地與網(wǎng)頁共用同一套解析能力的根基分塊chunker.chunk(docling_document)依據(jù)文檔結(jié)構(gòu)標(biāo)題層級、段落等生成語義連貫的層級分塊產(chǎn)出每個 chunk 被封裝為langchain_core.documents.Documentpage_content為塊文本metadata記錄reference文件路徑或 URL與text原文供后續(xù)檢索引用溯源。Docling 支持的文件類型supported_file_types屬性包括PDFOffice 格式 DOCX、XLSX、PPTXMarkdownAsciiDocadoc/asciidocHTML、XHTMLCSV以及 PNG、JPEG、TIFF、BMP 等圖片格式。load_directory通過 BaseLoader 的os.walk遞歸遍歷目錄只對上述擴展名文件調(diào)用load_file。測試用例 test_docling_loader.py 與 test_docling_crawler.py 驗證了這些行為轉(zhuǎn)換與分塊各被調(diào)用一次、reference元數(shù)據(jù)正確寫入、文件不存在拋FileNotFoundError、不支持的擴展名拋ValueError、處理失敗統(tǒng)一包裝為IOError。關(guān)鍵概念與易錯點雙通道復(fù)用Docling 同時充當(dāng) file_loader 與 web_crawler本地與網(wǎng)頁數(shù)據(jù)經(jīng)同一套轉(zhuǎn)換-分塊管線進(jìn)入向量庫保證解析質(zhì)量一致錯誤處理示例對加載過程做了try/except包裝而源碼層面load_file對不存在的文件拋FileNotFoundError、對不支持類型拋ValueError、對解析失敗拋IOErrorcrawl_url對 URL 處理失敗同樣拋IOError均會先通過log.color_print輸出帶顏色的錯誤信息集合管理force_new_collectionTrue會重建集合重復(fù)運行時避免舊數(shù)據(jù)殘留干擾網(wǎng)絡(luò)與依賴Docling 解析 PDF 與部分網(wǎng)頁時會聯(lián)網(wǎng)下載模型或訪問目標(biāo)站點需保證網(wǎng)絡(luò)可達(dá)DoclingCrawler 不負(fù)責(zé)渲染 JavaScript 等動態(tài)內(nèi)容抓取能力取決于 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點擊查看免費下載相關(guān)推薦DeepSearcher 網(wǎng)絡(luò)爬蟲配置指南接入 FireCrawl、Crawl4AI、Jina Reader 與 Docling 實現(xiàn)網(wǎng)頁數(shù)據(jù)入庫DeepSearcher 網(wǎng)絡(luò)爬蟲配置指南接入 FireCrawl、Crawl4AI、Jina Reader 與 Docling 實現(xiàn)網(wǎng)頁數(shù)據(jù)入庫 DeepS人工智能大模型RAGAI Agent深度研究知識庫DeepSearcher 配置體系詳解一套統(tǒng)一入口管理 LLM、Embedding、向量庫、文件加載器與網(wǎng)頁爬蟲DeepSearcher 配置體系詳解一套統(tǒng)一入口管理 LLM、Embedding、向量庫、文件加載器與網(wǎng)頁爬蟲 DeepSearcher 將系統(tǒng)拆分為 LL人工智能大模型RAGAI Agent深度研究知識庫Astryx Pagination 組件契約全解析解剖結(jié)構(gòu)、Theming 目標(biāo)與委派控制的實現(xiàn)驗證Astryx Pagination 組件契約全解析解剖結(jié)構(gòu)、Theming 目標(biāo)與委派控制的實現(xiàn)驗證 Pagination 是 Astryx 設(shè)計系統(tǒng)中用于分人工智能大模型RAGAI Agent深度研究知識庫上一篇5個步驟配置Stanford Doggo軟件狀態(tài)機與軌跡控制詳解下一篇Step-Audio 2 mini工業(yè)級開源語音大模型重構(gòu)人機交互新范式創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考