Docs 菜单
Docs 主页
/

使用向量搜索和大型语言模型构建 PDF 搜索应用程序

通过集成 MongoDB Atlas Vector Search、Superduper.io 和 LLM,利用强大的 PDF 搜索功能简化运营和索赔处理。

使用案例: Gen AI

行业: 保险金融服务制造和移动零售

产品: MongoDB AtlasMongoDB Atlas Vector Search

合作伙伴: Superduper.io, FastAPI

保险公司在很大程度上依赖于数据处理。为了做出投资决策或处理索赔,保险公司需要利用大量非结构化数据。核保人员和理赔人员需要翻阅大量的指南、合同和报告,这些文档通常是 PDF 格式的。手动查找和审查每一条信息非常耗时,并且很容易导致代价高昂的错误,例如错误的风险估计。

检索增强生成 (RAG) 应用程序改变了保险公司的游戏规则,使其能够利用非结构化数据的力量,同时提高可访问性和灵活性。它们对于常见但难以搜索的 PDF 文件特别有用。RAG 使 PDF 搜索更高效、更准确。现在,用户可以用自然语言输入问题,应用程序将筛选公司数据,提供回答,总结文档内容,并指出信息的来源,包括找到信息的页面和段落。

在此 GitHub 存储库中,您将找到关于如何构建结合 MongoDB、Superduper 和 LLMs 的 PDF 搜索应用程序的详细分步说明。我们这一解决方案的用例侧重于处理特定案件的理赔人员或核保人员。分析与特定客户相关的 PDF 指南,有助于确定发生事故时的损失金额或续保时的新保费。该应用程序通过回答问题并显示文档的相关部分来提供帮助。

结合 Atlas Vector SearchLLMs 构建 RAG 应用程序,可以直接提升保险公司的盈利能力。要试用语义搜索工具,请访问 Atlas Vector Search 快速入门。

结合 MongoDB 和 Superduper,您可以轻松构建信息检索系统。该过程涉及以下步骤:

  1. 用户添加需要搜索的 PDF 文件。

  2. 一个脚本扫描 PDF,创建数据块并对其进行向量化(参见图 1)。为确保不会丢失数据块之间的过渡数据,脚本使用滑动窗口方法生成重叠的数据块。

  3. 向量和数据块元数据存储在 MongoDB 中,并创建了一个向量搜索索引(参见图 2)。

  4. 这些 PDF 文档现已支持检索查询。用户选择客户,提出问题,系统返回回答,显示找到信息的页面和段落,并用红框突出显示特定部分(见图 2)。

图 1:由 Superduper.io 编排的 PDF 分块、嵌入创建和存储

图 1.由 Superduper.io 编排的 PDF 分块、嵌入创建和存储

每位客户的账户都有一份与居住国相关的 PDF 指南。当用户选择客户并提出问题时,系统仅对特定文档运行向量搜索查询,无缝过滤掉不相关的文档。这是通过索引和搜索查询中包含的过滤器字段(请参阅下面的代码片段)实现的。

Atlas Vector Search 还利用了 MongoDB 新的 Search Nodes专用架构,能够更好地优化资源配置水平,以满足特定的工作负载需求。Search Nodes 为 Atlas Search 和 Vector Search 工作负载提供专用基础架构,使您能够优化计算资源,并独立于数据库全面扩展搜索需求。搜索节点提供工作负载隔离、更高的可用性,并能更好地优化资源使用。

图 2:由 Superduper.io 编排的 PDF 查询流程

图 2.由 Superduper.io 编排的 PDF 查询流程

{
"fields": [
{
"numDimensions": 1536,
"path": "_outputs.elements.text-embedding.0",
"similarity": "cosine",
"type": "vector"
},
{
"path": "_outputs.elements.chunk.0.source_elements.metadata.filename",
"type": "filter"
}
]
}
vector_query = [
{
"$vectorSearch": {
'index': INDEX_NAME,
'path': "_outputs.elements.text-embedding.0",
'queryVector': query_embedding,
'numCandidates': vector_search_top_k,
'limit': vector_search_top_k,
'filter': {'_outputs.elements.chunk.0.source_elements.metadata.filename': filename}
}
},
{
"$project": {
"_outputs.elements.text-embedding.0": 0,
"score": { "$meta": "vectorSearchScore" }
}
}
]

Superduper.io 是一个开源 Python 框架,用于将 AI 模型和工作流直接与主要数据库集成,或跨主要数据库集成,从而实现更灵活和可扩展的定制企业 AI 解决方案。该框架使开发者能够在现有的数据基础设施和数据上构建、部署和管理 AI,同时使用首选工具,消除数据迁移和重复。

借助 Superduper.io,开发者可以:

  • 将 AI 引入他们的数据库,消除数据管道,最大限度地减少工程工作量、投产时间和计算资源。

  • 使用任何 AI 模型和 API,在任何类型的数据上实现 AI 工作流。

  • 通过从 API 切换到托管并在自有基础设施上微调自有模型,确保数据安全。

  • 从嵌入模型切换到其他 API 提供商。他们还可以在 HuggingFace 或其他平台上托管自己的模型。

Superduper.io 提供了一系列示例使用案例和开发手册,开发者可以通过这些资源快速上手,包括使用 MongoDB 进行向量搜索、嵌入生成、多模态搜索、RAG、迁移学习等。此解决方案的演示改编自 Superduper.io 此前开发的一款应用程序

按照此 Github 存储库中的说明构建解决方案。该解决方案由两个步骤组成:

  1. 初始化脚本将 PDF 分解为数据块,然后将其转换为矢量嵌入。

  2. 查询步骤允许用户检索文档。

  • 嵌入可以使用不同的模型和部署选项:如果数据需要保留在服务器上,可以在本地部署模型。否则,您可以调用 API 来获取向量嵌入,具体操作如本教程所述。您可以使用 Voyage AI 或开源模型。在构建您的系统时,请考虑隐私和安全要求。

  • Superduper 整合了 AI 模型与工作流:Superduper 是一个框架,通过简单而标准的接口与向量搜索和 LLM 进行交互。

  • Luca Napoli,行业解决方案,MongoDB

  • Clarence Ondieki,解决方案架构师,MongoDB

  • Pedro Bereilh,行业解决方案,MongoDB

后退

人工智能增强的索赔调整

在此页面上