知识图谱构建应用
从非结构化数据创建知识图谱,关键特性:
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