利用Docling和Python构建开源AI知识库(含教程)


在人工智能(AI)领域,构建能够理解和利用特定领域知识的智能代理变得越来越重要。为AI代理提供访问企业内部数据的能力,可以显著提升其解决问题的能力和效率。例如,提供公司文档、PDF文件和网站数据,能够使AI代理更好地理解公司业务和特定任务。 然而,市面上许多数据提取工具都是闭源的,需要API密钥并涉及将数据发送到第三方平台进行处理,这既增加了成本,也带来了数据安全和隐私方面的担忧。本文将介绍如何使用Docling,一个强大的开源Python库,来构建完全开源的文档提取流程,为您的AI代理提供定制化的知识。

关键要点

Docling是一个强大的开源Python库,用于文档提取和知识库构建。

可以使用Docling免费解析PDF、网页等各类文档。

无需依赖闭源API,保护数据安全和隐私。

本文提供构建开源AI知识库的完整流程和代码示例。

开源文档提取工具Docling

告别闭源API:拥抱开源的数据提取方案

随着ai技术的日益普及,越来越多的企业和开发者开始尝试利用ai代理来解决实际问题。然而,许多ai应用都需要访问特定的知识库才能发挥作用。例如,企业可能希望ai代理能够理解其内部文档,以便更好地服务客户或优化内部流程。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

利用Docling和Python构建开源AI知识库(含教程)

传统的解决方案通常依赖于闭源的API,例如Chatbase、Azure AI Document Intelligence、Amazon Textract和LlamaIndex等。这些API虽然功能强大,但也存在一些问题:

  • 成本高昂:使用这些API通常需要付费,随着数据量的增加,成本也会不断上升。
  • 数据安全风险:需要将敏感数据发送到第三方平台进行处理,存在数据泄露的风险。
  • 缺乏灵活性:闭源API的功能和定制性有限,难以满足所有需求。

Docling的出现,为我们提供了一个全新的选择。它是一个完全开源的Python库,可以帮助您构建自己的文档提取流程,无需依赖任何闭源API。这意味着您可以完全掌控您的数据,并根据自己的需求定制流程。

LlamaParse也是一个数据提取工具,但是Docling是更优秀的开源替代方案。

Docling的优势在于其完全开源的特性。这意味着您可以自由地查看、修改和分发代码,并根据自己的需求进行定制。此外,由于数据处理完全在本地进行,因此可以更好地保护数据安全和隐私。 下表对闭源方案和 Docling 进行了对比:

特性 闭源API(如Chatbase) Docling(开源方案)
成本 免费
数据安全 风险高 安全
灵活性 有限 高,可定制
可控性 高,完全掌控
是否开源

总而言之,Docling是一个强大且灵活的开源解决方案,可以帮助您构建自己的AI知识库,并更好地保护您的数据。

Docling 的主要功能

利用Docling和Python构建开源AI知识库(含教程)

Docling 不仅是一个工具,而是一个强大的文档处理库,它能够将各种文档格式统一转换为标准格式,为你的AI agent提供统一的数据来源。

  1. 通用格式支持: 可以处理PDF, DOCX, XLSX, PPTX, Markdown, HTML, 图片等多种格式。
  2. 强大的 AI 理解能力: 基于 AI 的布局分析和表格结构识别,提供更精准的文档理解。
  3. 灵活的导出选项: 支持导出为 HTML, Markdown, JSON 或纯文本。
  4. 高性能: 可以在本地硬件上高效运行。
  5. 正在开发的功能:
    • 元数据提取,包括标题、作者、参考资料和语言
    • 包含视觉语言模型 (SmolDocling)
    • 图表理解 (Barchart, Piechart, LinePlot 等)
    • 复杂化学物质理解(分子结构)
  6. 易于集成: Docling可以和LangChain, LlamaIndex, Crew AI & Haystack等集成,为agentic AI 提供支持

这些特性使得 Docling 成为构建 AI 知识库的理想选择,无论你是处理 PDF 文档,还是网络内容,Docling 都能提供强大的支持。

准备 Docling 环境

环境配置与依赖安装

在使用 Docling 之前,需要进行一些准备工作。首先,需要安装 Python 环境(推荐使用 3.8 或更高版本)。然后,使用 pip 安装 Docling 及其依赖项:

pip install -r requirements.txt

你还需要设置 OpenAI API 密钥,用于创建 Embeddings, 当然你也可以使用开源模型, 在这一步只是可选的。

利用Docling和Python构建开源AI知识库(含教程)

OPENAI_API_KEY=你的api密钥

使用 Docling 构建知识库

文档内容提取

首先,我们需要从文档中提取内容。Docling 提供了 DocumentConverter 类,可以方便地将各种文档格式转换为统一的内部表示。

音疯 音疯

音疯是昆仑万维推出的一个AI音乐创作平台,每日可以免费生成6首歌曲。

音疯 178 查看详情 音疯

利用Docling和Python构建开源AI知识库(含教程)

以下是一个提取PDF文档内容的示例:

from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("https://arxiv.org/pdf/2408.09869")
document = result.document
markdown_output = document.export_to_markdown()
json_output = document.export_to_dict()
print(markdown_output)

以下是一个提取网页内容的示例:

result = converter.convert("https://ds4sd.github.io/docling/")
document = result.document
markdown_output = document.export_to_markdown()
print(markdown_output)

如果需要提取整个网站的内容,可以使用 Sitemap:

from utils.sitemap import get_sitemap_urls

sitemap_urls = get_sitemap_urls("https://ds4sd.github.io/docling/")
conv_results_iter = converter.convert_all(sitemap_urls)

docs = []
for result in conv_results_iter:
    if result.document:
        docs.append(document)

内容分块(Chunking)

为了更好地利用提取的内容,我们需要将其分割成更小的块,以便更好地进行索引和检索。Docling 提供了混合分块(Hybrid Chunking)功能,可以根据文档的结构和内容,智能地将文档分割成更小的块。

利用Docling和Python构建开源AI知识库(含教程)

以下是一个使用混合分块的示例:

from docling.chunking import HybridChunker

chunker = HybridChunker()
chunk_iter = chunker.chunk(dl_doc.document)
chunks = list(chunk_iter)

Embedding创建

接下来,我们需要为每个内容块创建 Embedding,以便进行语义搜索。Embedding 是一种将文本转换为向量表示的技术,可以捕捉文本的语义信息。本文使用OpenAI 进行 Embeddings 创建。

利用Docling和Python构建开源AI知识库(含教程)

以下是一个创建 Embedding 并存储到 LanceDB 的示例:

import lancedb
from lancedb.embeddings import get_registry

db = lancedb.connect("./data/lancedb")

# 获取 OpenAI Embedding 函数
func = get_registry().get("openai").create(name="text-embedding-3-large")

class ChunkMetadata(LanceModel):
    filename: str = None
    page_numbers: list[int] = None
    title: str = None

class Chunks(LanceModel):
    text: str = SourceField()
    vector: Vector(func.ndims) = func.VectorField(type=ignore)
    metadata: ChunkMetadata

table = db.create_table("docling", schema=Chunks, mode="overwrite")

# 准备数据
processed_chunks = []
for chunk in chunks:
    processed_chunks.append({
        "text": chunk.text,
        "metadata": {
            "filename": chunk.meta.origin.filename,
            "page_numbers": sorted(chunk.meta.page_no),
            "title": chunk.meta.headings[0] if chunk.meta.headings else None
        }
    })

table.add(processed_chunks)

在这个示例中,我们首先连接到 LanceDB 数据库。然后,我们定义了一个 Pydantic 模型 Chunks,用于描述数据表的结构。这个模型包含了文本内容、Embedding 向量和元数据。

Docling 的优缺点

? Pros

完全开源,免费使用

强大的文档提取和解析能力

支持多种文档格式

可与 LangChain、LlamaIndex 等 AI 框架集成

高效的本地处理能力

? Cons

需要一定的 Python 编程基础

部分高级功能可能需要手动配置

对于某些特殊格式的文档,可能需要自定义提取规则

常见问题解答

Docling 是免费的吗?

是的,Docling 是一个完全开源的项目,您可以免费使用和修改。

我需要 OpenAI API 密钥才能使用 Docling 吗?

使用 OpenAI API 密钥是可选的。Docling 允许你使用开源模型创建embeddings, 但视频为了演示使用了OpenAI, 所以如果需要使用 OpenAI 的 Embedding 功能,您需要提供 API 密钥。

Docling 支持哪些文档格式?

Docling 支持多种文档格式,包括 PDF、DOCX、XLSX、PPTX、Markdown、HTML 等。

如何将 Docling 集成到我的 AI 应用程序中?

Docling 可以轻松地与 LangChain、LlamaIndex 等 AI 框架集成。

相关问题

除了 Docling,还有哪些开源文档提取工具?

除了Docling之外,还有一些其他的开源文档提取工具可供选择,例如: PDFMiner: 这是一个用于从PDF文档中提取文本的Python库。它提供了一种直接的方法来解析PDF文件并提取文本内容,但可能需要额外的处理来处理复杂的布局和格式。 Apache Tika: 这是一个内容分析工具包,可以检测和提取各种文件格式的元数据和文本内容。它支持多种文档格式,包括PDF、Microsoft Office文档和HTML等。 Beautiful Soup: 这是一个用于从HTML和XML文件中提取数据的Python库。它提供了一种简单而灵活的方法来解析文档并提取所需的信息。 虽然这些工具都可以用于文档提取,但Docling的优势在于其完全开源的特性、强大的AI理解能力和对多种文档格式的支持。它提供了一个更全面和灵活的解决方案,可以更好地满足构建AI知识库的需求。 在选择文档提取工具时,需要根据您的具体需求和场景进行评估。如果您需要一个完全开源、功能强大且易于使用的工具,那么Docling是一个不错的选择。

以上就是利用Docling和Python构建开源AI知识库(含教程)的详细内容,更多请关注其它相关文章!


# python  # 自己的  # 江门地产关键词排名如何  # 罗湖快速网站建设哪里好  # 怎样写seo计划  # 斗牛seo破解  # 古沁玉如何推广市场营销  # 商城网站建设服务  # 注册网站会员app推广  # 金华关键词排名技巧  # 衡水seo公司找5火星  # 财务公司网站seo  # 您可以  # 如何用  # 更好地  # 文档格式  # 您的  # 一键  # 是一个  # 文档  # 开源  # ppt  # app  # 人工智能  # github  # apache  # json  # git  # markdown  # js  # html 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 时间、空间可控的视频生成走进现实,阿里大模型新作VideoComposer火了  站在社会的高度理解人工智能  探索人工智能在物联网领域的影响与改变  “图壤·阅读元宇宙”亮相北京国际图书博览会  华为推出两款商用 AI 大模型存储新品,支持 1200 万 IOPS 性能  华为余承东表示:鸿蒙可能拥有强大的人工智能大模型能力  AI技术加速迭代:周鸿祎视角下的大模型战略  机智云AI离线语音识别模组,让家电变得更加智能便捷  Moka发布AI原生HR SaaS产品“Moka Eva”,布局AGI时代  中兴通讯无人机高空基站助力北京门头沟受灾乡镇保障应急通信  美图第二届影像节发布七款AI影像创作工具  乐天派AI桌面机器人提供的正能量情绪价值直接拉满,妥妥的治愈系  再度重仓 AI 赛道,SaaS 巨头 Salesforce 扩大 AIGC 风投基金规模  13条咒语挖掘GPT-4最大潜力,Github万星AI导师火了,网友:隔行再也不隔山了  QQ音乐业内率先推出「AI一起听」功能,领取你的AI听歌助手  人工智能产业协同创新中心:全产业链资源在这里汇聚  生成式AI与云结合,机遇与挑战并存  生活垃圾智能分类机器人社区展“才能”,征求居民意见  周鸿祎:用超级AI实现室温超导和核聚变,实现能源自由  先进技术在防止全球数据丢失方面的作用  人工智能在重症监护室的未来  GPT-4是如何工作的?哈佛教授亲自讲授  万兴播爆桌面端上线,支持AI数字人搜索、视频编辑等功能  “痴迷”元宇宙,魔珐科技想做什么?  清华&中国气象局大模型登Nature:解决世界级难题,「鬼天气」预报时效首次达3小时  广州团建公司方案 | 绝密飞行 → X-PLANE无人机团建主题团建  第四范式“式说”大模型入选《2025年通用人工智能创新应用案例集》  探展WAIC |万向区块链杜宇:不存在单一技术的iPhone时刻,Web3.0核心将基于AI+区块链+物联网  音乐制作元工具AudioCraft发布开源AI工具  当TS遇上AI,会发生什么?  云米Smart 2E AI立式空调开启预售:新三级能效,到手价3899元  日新月异,脑机接口技术都有哪些新应用?  国网辉南供电:无人机空中巡检 全力护航端午佳节  组建团队,字节跳动要造机器人?  MiracleVision视觉大模型  如何成功实施人工智能?  第 66 届格莱美奖规定,AI 作品将无法获得评奖资格  Valve 将拒绝采用 AI 生成未知版权内容的游戏上架 Steam  特斯拉机器人面世 未来将大幅提振磁材需求,引领人工智能时代  70年前他本想逃避考试,却影响了整个互联网  【搞事】时隔4年 谷歌更新安卓logo 机器人头更饱满了  人工智能和你聊天 成本有多高  苹果推出全新沉浸式 AR 体验应用“Deep Field”  财联社首档运用虚拟人技术播报栏目《AI半小时》今晚上线!敬请期待  报告称 70% 程序员已使用各种 AI 工具编程  DreamAvatar数字人使用教程  微软推出人工智能模型 CoDi,可互动和生成多模态内容  即时 AI再次升级 30秒生成自带动效的网页 生成速度提升100%  湖北科技职业学院举行工业机器人及智能制造技术专精特新产业学院建设启动仪式  从GOXR到PartyOn,XRSPACE致力打造多元共赢的元宇宙世界 

 2025-12-21

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.