llm-graph-builder——从非结构化数据创建知识图谱

算法容器ClickHouse

知识图谱构建应用

从非结构化数据创建知识图谱,关键特性:

picture.image

LLM Graph Builder

概述

此应用程序旨在将非结构化数据(pdfs, docs, txt, youtube视频, 网页等)转化为存储在Neo4j中的知识图谱。它利用大型语言模型(OpenAI, Gemini等)的强大功能,从文本中提取节点、关系及其属性,并使用Langchain框架创建结构化的知识图谱。

从本地计算机、GCS或S3存储桶或网页源上传文件,选择您的LLM模型并生成知识图谱。

主要功能

知识图谱创建 : 使用LLM将非结构化数据转化为结构化知识图谱。 •提供模式 : 在设置中提供您自己的自定义模式或使用现有模式生成图谱。 •查看图谱 : 在Bloom中同时查看特定来源或多个来源的图谱。 •与数据聊天 : 通过对话查询与Neo4j数据库中的数据进行交互,还可以检索有关响应来源的元数据。

入门

⚠️ 您需要拥有一个安装了APOC的Neo4j[1]数据库 V5.15或更高版本,才能使用此知识图谱构建器。您可以使用任何Neo4j Aura数据库[2](包括免费的数据库)。如果您使用的是Neo4j Desktop,您将无法使用docker-compose,而需要分别部署后端和前端。⚠️

部署

本地部署

通过docker-compose运行

默认情况下,仅启用OpenAI和Diffbot,因为Gemini需要额外的GCP配置。

在您的根文件夹中,创建一个.env文件并包含您的OPENAI和DIFFBOT密钥(如果您想使用两者):


            
OPENAI_API_KEY="your-openai-key"
            
DIFFBOT_API_KEY="your-diffbot-key"
        

如果只想使用OpenAI:


          
LLM_MODELS="diffbot,openai-gpt-3.5,openai-gpt-4"
          
OPENAI_API_KEY="your-openai-key"
      

如果只想使用Diffbot:


          
LLM_MODELS="diffbot"
          
DIFFBOT_API_KEY="your-diffbot-key"
      

然后运行Docker Compose来构建并启动所有组件:


        
            

          docker-compose up --build
        
      

其他配置

默认情况下,输入源将是:本地文件、Youtube、Wikipedia、AWS S3和网页。此默认配置如下:


        
            

          REACT\_APP\_SOURCES="local,youtube,wiki,s3,web"
        
      

如果您需要Google GCS集成,添加gcs和您的Google客户端ID:


          
REACT_APP_SOURCES="local,youtube,wiki,s3,gcs,web"
          
GOOGLE_CLIENT_ID="xxxx"
      

您当然可以组合所有(本地、youtube、wikipedia、s3和gcs)或删除任何不需要的部分。

聊天模式

默认情况下,将启用所有聊天模式:vector、graph+vector和graph。如果聊天模式变量中没有提到模式,将启用所有模式:


        
            

          CHAT\_MODES=""
        
      

如果只想指定vector模式或只指定graph模式,可以在env中指定:


        
            

          CHAT\_MODES="vector,graph+vector"
        
      

分别运行后端和前端(开发环境)

或者,您可以分别运行后端和前端:

前端

1.通过复制粘贴frontend/example.env创建frontend/.env文件。 2.根据需要更改值。


          
cd frontend
          
yarn
          
yarn run dev
      

后端

1.通过复制粘贴backend/example.env创建backend/.env文件。 2.根据需要更改值。


          
cd backend
          
python -m venv envName
          
source envName/bin/activate
          
pip install -r requirements.txt
          
uvicorn score:app --reload
      

部署在云端

要将应用程序和包部署在Google Cloud Platform上,请在Google Cloud Run上运行以下命令:


          
# 前端部署
          
gcloud run deploy
          
源位置:当前目录 > Frontend
          
地区:32 [us-central 1]
          
允许未经身份验证的请求:是
      

          
# 后端部署
          
gcloud run deploy --set-env-vars "OPENAI_API_KEY=" --set-env-vars "DIFFBOT_API_KEY=" --set-env-vars "NEO4J_URI=" --set-env-vars "NEO4J_PASSWORD=" --set-env-vars "NEO4J_USERNAME="
          
源位置:当前目录 > Backend
          
地区:32 [us-central 1]
          
允许未经身份验证的请求:是
      

环境变量

| 环境变量名称 | 必选/可选 | 默认值 | 描述 | | OPENAI_API_KEY | 必选 | | OpenAI的API密钥 | | DIFFBOT_API_KEY | 必选 | | Diffbot的API密钥 | | EMBEDDING_MODEL | 可选 | all-MiniLM-L6-v2 | 用于生成文本嵌入的模型(all-MiniLM-L6-v2, openai, vertexai) | | IS_EMBEDDING | 可选 | true | 启用文本嵌入的标志 | | KNN_MIN_SCORE | 可选 | 0.94 | KNN算法的最低得分 | | GEMINI_ENABLED | 可选 | False | 启用Gemini的标志 | | GCP_LOG_METRICS_ENABLED | 可选 | False | 启用Google Cloud日志的标志 | | NUMBER_OF_CHUNKS_TO_COMBINE | 可选 | 5 | 处理嵌入时要组合的块数 | | UPDATE_GRAPH_CHUNKS_PROCESSED | 可选 | 20 | 处理进度更新前的块数 | | NEO4J_URI | 可选 | neo4j://database:7687 | Neo4j数据库的URI | | NEO4J_USERNAME | 可选 | neo4j | Neo4j数据库的用户名 | | NEO4J_PASSWORD | 可选 | password | Neo4j数据库的密码 | | LANGCHAIN_API_KEY | 可选 | | Langchain的API密钥 | | LANGCHAIN_PROJECT | 可选 | | Langchain的项目 | | LANGCHAIN_TRACING_V2 | 可选 | true | 启用Langchain跟踪的标志 | | LANGCHAIN_ENDPOINT | 可选 | https://api.smith.langchain.com | Langchain API的端点 | | BACKEND_API_URL | 可选 | http://localhost:8000 | 后端API的URL | | BLOOM_URL | 可选 | https://workspace-preview.neo4j.io/workspace/explore?connectURL={CONNECT\_URL}&search=Show+me+a+graph&featureGenAISuggestions=true&featureGenAISuggestionsInternal=true[3] | Bloom可视化的URL | | REACT_APP_SOURCES | 可选 | local,youtube,wiki,s3 | 可用的输入源列表 | | LLM_MODELS | 可选 | diffbot,openai-gpt-3.5,openai-gpt-4o | 前端可选的模型,用于实体提取和问答 | | CHAT_MODES | 可选 | vector,graph+vector,graph | 可用的聊天模式列表 | | ENV | 可选 | DEV | 应用的环境变量 | | TIME_PER_CHUNK | 可选 | 4 | 每个块的处理时间(秒) | | CHUNK_SIZE | 可选 | 5242880 | 上传文件的每个块的大小(字节) | | GOOGLE_CLIENT_ID | 可选 | | Google身份验证的客户端ID | | GCS_FILE_CACHE | 可选 | False | 如果设置为True,将文件保存到GCS进行处理;如果设置为False,将文件保存在本地 | | ENTITY_EMBEDDING | 可选 | False | 如果设置为True,将为数据库中的每个实体添加嵌入 | | LLM_MODEL_CONFIG_ollama_ | 可选 | | 设置ollama配置为 - model_name, model_local_url用于本地部署 |

使用方法

1.通过传递URI和密码或使用Neo4j凭据文件连接到Neo4j Aura实例。 2.从非结构化源列表中选择您的源以创建图谱。 3.从下拉菜单中更改LLM(如果需要),该LLM将用于生成图谱。 4.可选地,在实体图谱提取设置中定义模式(节点和关系标签)。 5.要么选择多个文件以“生成图谱”,要么处理所有“新”状态的文件以创建图谱。 6.使用网格中的“查看”查看单个文件的图谱,或者选择一个或多个文件并“预览图谱”。 7.提问与已处理/完成的源相关的问题与聊天机器人交互,同时获取LLM生成的答案的详细信息。

链接

LLM Knowledge Graph Builder 应用程序[4]

Neo4j Workspace[5]

参考

应用程序演示[6]

祝您图谱构建愉快!

其他

本文由笔者整理自:

https://github.com/neo4j-labs/llm-graph-builder,如对你有帮助,请帮忙点赞、转发、关注,谢谢!

References

[1] APOC的Neo4j: https://neo4j.com/docs/apoc/current/installation/
[2] Neo4j Aura数据库: https://neo4j.com/cloud/platform/aura-graph-database/
[3] https://workspace-preview.neo4j.io/workspace/explore?connectURL={CONNECT\_URL}&search=Show+me+a+graph&featureGenAISuggestions=true&featureGenAISuggestionsInternal=true: https://workspace-preview.neo4j.io/workspace/explore?connectURL={CONNECT\_URL}&search=Show+me+a+graph&featureGenAISuggestions=true&featureGenAISuggestionsInternal=true
[4] LLM Knowledge Graph Builder 应用程序: https://llm-graph-builder.neo4jlabs.com/
[5] Neo4j Workspace: https://workspace-preview.neo4j.io/terms-and-conditions
[6] 应用程序演示: https://www.youtube.com/watch?v=LlNy5VmV290

0
0
0
0
关于作者
相关资源
高性能存储虚拟化方案 NVMe over Fabric 在火山引擎的演进
在云计算中,虚拟化存储扮演着重要角色,其中 iSCSI 协议在业界开放、流行多年。近年来,拥有更优性能的 NVMe over Fabrics 协议也得到了发展。本次分享介绍了 NVMe over Fabrics 在云原生和虚拟化方向的演进工作和成果。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论