展开

Building A Graph+LLM Powered RAG Application from PDF Documents

最后发布时间 : 2024-03-22 18:05:31 浏览量 :

https://medium.com/neo4j/building-a-graph-llm-powered-rag-application-from-pdf-documents-24225a5baf01

https://open.bigmodel.cn/dev/api#glm-4

有足够多的文章和产品讨论如何建立更好的检索增强发电(RAG)解决方案。过去,我解释了RAG的关键方面,主要是从知识存储,索引和检索使用属性图数据库的非结构化数据和结构化数据。

在这里,我想通过演示一个涵盖端到端管道的示例项目,从解析和摄入PDF文档到知识图创建以及为给定的自然语言问题检索图形。

PDF文档解析和内容提取

LLM Sherpa(GitHub)是一个Python库和API,用于PDF文档解析,其中包括层次布局信息,例如文档,部分,句子,句子,表格等。

与正常的块策略相比,只有固定长度加上文本重叠的策略,能够保留文档结构可以提供更灵活的块,从而使生成更完整和相关的环境。

用于知识库的Neo4j AuraDB

Neo4J Auradb是由Neo4J,Inc。提供的全面管理的云服务,它作为基于云的解决方案提供了流行的图形数据库。它旨在为用户提供NEO4J图数据库的强大功能,而无需管理基础架构的复杂性。

Auradb有一个免费的层次进行实验并尝试其功能。有关创建自己实例的详细步骤,您可以遵循在线文档或本文:

Python+Neo4j数据采集驱动程序

PDF 文档中的内容使用 Cypher 查询语言通过 Python 驱动程序加载到 Neo4j 中。

NEO4J矢量索引索引搜索索引

NEO4J为标准数据类型,自由式文本和文本嵌入过程生成的向量提供了本机索引。

用于快速原型的GenAI堆栈

Genai堆栈是由Neo4J与Docker,Langchain和Ollama合作创建的预建立环境。该堆栈旨在创建Genai应用程序,尤其是专注于提高LLMS(大语言模型)中生成的响应的准确性,相关性和出处。

在我们的项目中,我们只需要Langchain零件即可快速开发聊天应用程序。

用于嵌入和文本生成的OpenAI模型

使用OpenAI的嵌入型号,Text-Embedding-ADA-002和LLM GPT-4,因此您需要OpenAI API键。