之前关于知识图谱写了几篇系列文章,【知识图谱】4、LLM大模型结合neo4j图数据库实现AI问答的功能 有读者留言本地大预言模型, 自己本地电脑确实有点卡, 我一般借助API完成对应的需求, 对我而言,API更有性价比。
今天无意中看到一个开源项目GenAI Stack, 利用Langchain + Docker + Neo4j + Ollama 实现 ,这里分享下。
先简单介绍下这个项目
GenAI Stack是一套由Docker Compose编排的Docker容器,包括一个用于本地LLM的管理工具(Ollama)、一个用于基础的数据库(Neo4j)和基于LangChain的GenAI应用。这些容器提供了一个预建的、支持代理应用的开发环境,具有数据导入和响应生成用例。您可以尝试导入知识图谱中的不同信息,并检查底层基础信息的多样性如何影响用户界面中LLM生成的响应。
GenAI Stack包括:
1、应用程序容器(使用LangChain构建的Python应用程序逻辑,用于编排和Streamlit用于UI)。
2、带有向量索引和图搜索的数据库容器(Neo4j)。
3、LLM容器Ollama(如果你使用的是Linux)。如果您使用的是MacOS,请在Docker外部安装Ollama。这些容器通过Docker compose联系在一起。Docker compose有一个观察模式设置,任何时候您对应用程序代码进行更改,都会重建相关容器,允许快速反馈循环和良好的开发者体验。
您可以使用GenAI Stack快速实验构建和运行GenAI应用程序在一个可信的环境中,具有现成的、代码优先的示例。设置毫不费力,所有组件都保证运行并协同工作。
GenAI Stack为您提供了一种快速尝试和评估知识检索搜索和总结的不同方法的方式,以便您为用户找到最准确、可解释和相关的响应。最后,您可以轻松地在样本代码之上构建自己的需求。
既然本文重心是 知识图谱,我们就以第二个应用举例:
这个例子,主要是将某些标记的 Stack Overflow 数据导入到 KG 中,嵌入问题和答案并将其存储在 Vector Index 中。 UI 界面包括 选择标签、运行导入、查看进度、数据库中数据的一些统计信息。加载排名靠前的问题(不考虑标签)以支持 App 1 的工单生成功能。
数据导入应用程序通过API请求从Stack Overflow获取数据,然后使用LangChain Embeddings嵌入内容,并将问题-答案数据存储到Neo4j中。此外,它创建了一个向量搜索索引,以确保聊天或其他应用程序可以轻松快速地检索相关信息。
数据导入应用程序允许用户指定一个标签和要从StackOverflow API导入的最近问题的数量(每批100个)。
数据加载器将使用以下模式导入图形。
最后感慨一句,其实你想做的很多事情,大部分别人都已经做过了, 关键在于你怎么找到它。
领取专属 10元无门槛券
私享最新 技术干货