|
使用一个本体 + 三个组件几分钟就可以轻松实现一个文档智能检索的应用。 这个文档智能搜索应用背后有一条逻辑主线。 底层:利用文档结构化和向量化将非结构化数据转化为本体对象。 中层:利用对象集变量和语义搜索建立问题与答案的数学关联。 顶层:利用文本输入、对象列表、PDF浏览三大组件构建直观的人机交互界面。 当然这种应用太小儿科,还动用不上AIP的逻辑函数、大模型算子这些高级功能。 本案例涉及到的只是一些AIP一些比较基础的知识点:文档结构化和向量化、本体、Workshop、语义搜索、对象集变量、变量、文本输入框组件、对象列表组件、PDF浏览组件。
(1)一个本体
(2)一个输入文本框组件 输入文本框的数值绑定到一个变量。这个变量在其他地方可以使用,比如在下面的object list中作为过滤变量使用。
(3)一个对象列表组件 用text input组件的输出变量作为过滤变量,去对比文档本体的向量字段,作向量召回,返回关联切片的对象集。然后取出相关文本字段展示在object list组件中。另外给objectlist组件设置一个选中对象用变量。 objectlist支持选择一个或多个对象,存储在一个活动对象集变量当中。
(4)一个PDF浏览组件 绑定一个pdf文档对象 最后一个基于本体和向量召回的文档智能搜索应用就做好了。 实现思路跟AIP Logic中的semantic search逻辑块一样的。总结来看两个要点。基石是文档结构化与向量化,然后灌入Ontology 一切应用的起点都在数据。在进入 Workshop 搭建 UI 之前,我们首先需要解决数据的文档结构化和向量化问题。这是实现智能检索的物理基础。 这个案例中用到一个文档分块类的本体(Ontology)。 首先结构化, 我们不能直接搜索整个 PDF,而是需要通过 AIP 的 Pipeline 将 PDF 解析,并按段落或页码切分为细粒度的分块对象。每个对象包含核心属性:原文内容、所属文件名、页码等。 然后向量化,这是智能的关键。将每个分块的文本内容转化为高维向量(Embedding)。这些向量捕捉了文本的深层语义。 因此,我们的一个本体即为具备向量属性的 Document Chunk 对象。它不再是死板的字符,而是计算机可理解的意义单元。 整个骨架是Workshop 中的变量逻辑(Variables) 打开 Workshop,我们并不是直接拖拽组件,而是先定义应用的神经系统变量(Variables)。在 Palantir Workshop 中,变量连接了前端组件与后端本体。 我们定义两个关键变量。 一个是String Variable(搜索关键词), 用于接收用户输入的自然语言问题。 另一个是Object Set Variable(对象集变量),这是应用的灵魂。初始状态下,它可能包含所有文档分块。需要为其配置一个语义搜索(Semantic Search) 的逻辑,当搜索关键词发生变化时,该对象集会自动根据向量相似度(k-NN 算法),筛选出与问题语义最接近的前 N 个 Document Chunk 对象。 这种动态绑定的逻辑,使得我们无需编写复杂的 SQL 或 API 调用,仅通过配置面板即可实现输入即搜索。 整个过程完全不需要前端代码开发,却实现了一个文档智能企业级搜索应用。这正是 Palantir AIP Workshop 的核心价值所在,它极大地降低了 AI 应用的落地门槛,让开发者可以将精力集中在业务逻辑(本体设计、复杂点的还有函数)和用户体验(组件编排)上,而非由于技术栈的复杂性而停滞不前。 |