# llm-graph-builder **Repository Path**: longzhaolong/llm-graph-builder ## Basic Information - **Project Name**: llm-graph-builder - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-25 - **Last Updated**: 2025-12-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 知识图谱构建应用 从非结构化数据创建知识图谱 # LLM 图谱构建器 ![Python](https://img.shields.io/badge/Python-yellow) ![FastAPI](https://img.shields.io/badge/FastAPI-green) ![React](https://img.shields.io/badge/React-blue) ## 系统架构 ![平台架构](png/image1.png) ## 概述 本应用程序旨在将非结构化数据(pdf、doc、txt、YouTube视频、网页等)转换为存储在Neo4j中的知识图谱。它利用大型语言模型的能力,从文本中提取节点、关系及其属性,并使用Langchain框架创建结构化知识图谱。 从本地机器、GCS或S3存储桶或网络源上传文件,选择LLM模型并生成知识图谱。 ## 主要特点 - **知识图谱创建**: 使用LLM将非结构化数据转换为结构化知识图谱 - **提供模式**: 提供自定义模式或使用设置中的现有模式来生成图谱 - **查看图谱**: 在Bloom中查看单个或多个数据源的图谱 - **与数据对话**: 通过会话查询与Neo4j数据库中的数据交互,还可以检索查询响应的元数据 ## 技术实现 ### FastAPI后端架构 ![后端架构](png/image2.png) ### 知识图谱示例 #### 实体关系图谱 ![知识图谱预览](png/image3.png) #### 时序图谱 ![时序图谱](png/image4.png) ## 开始使用 :warning: 需要安装了APOC的Neo4j数据库V5.15或更高版本才能使用此知识图谱构建器。:warning: ## 部署 ### 本地部署 #### 通过docker-compose运行 默认情况下,仅启用OpenAI。 根据环境配置模型,这由VITE_LLM_MODELS_PROD变量指示,可以根据需要配置模型。 例如: ```env VITE_LLM_MODELS_PROD="openai_gpt_4o,openai_gpt_4o_mini,diffbot,gemini_1.5_flash" ``` 在根文件夹中,创建一个.env文件,包含OPENAI密钥: ```env OPENAI_API_KEY="your-openai-key" ``` 可以运行Docker Compose来构建和启动所有组件: ```bash docker-compose up --build ``` ### 聊天模式 默认情况下,所有聊天模式都可用:vector、graph_vector、graph、fulltext、graph_vector_fulltext、entity_vector和global_vector。 如果聊天模式变量中未提及任何模式,则所有模式都可用: ```env VITE_CHAT_MODES="" ``` #### 分别运行后端和前端(开发环境) 也可以分别运行后端和前端: - 前端: 1. 通过复制/粘贴frontend/example.env创建frontend/.env文件 2. 根据需要更改值 3. ```bash cd frontend yarn yarn run dev ``` - 后端: 1. 通过复制/粘贴backend/example.env创建backend/.env文件 2. 根据需要更改值 3. ```bash cd backend python -m venv envName source envName/bin/activate pip install -r requirements.txt uvicorn score:app --reload ``` ## 本地LLM(Ollama)设置 1. 拉取ollama的docker镜像 ```bash docker pull ollama/ollama ``` 2. 运行ollama docker镜像 ```bash docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama ``` 3. 执行任何llm模型,例如🦙3 ```bash docker exec -it ollama ollama run llama3 ``` 4. 在docker compose或后端环境中配置env变量 ```env LLM_MODEL_CONFIG_ollama_ #示例 LLM_MODEL_CONFIG_ollama_llama3=${LLM_MODEL_CONFIG_ollama_llama3-llama3, http://host.docker.internal:11434} ``` 5. 配置后端API url ```env VITE_BACKEND_API_URL=${VITE_BACKEND_API_URL-backendurl} ``` 6. 在浏览器中打开应用程序,选择ollama模型进行提取 7. 开始构建图谱 ## 使用方法 1. 通过传递URI和密码或使用Neo4j凭据文件连接到Neo4j Aura实例 2. 从非结构化数据源列表中选择源以创建图谱 3. 如需要,从下拉列表中更改用于生成图谱的LLM 4. 可选择在实体图谱提取设置中定义模式(节点和关系标签) 5. 选择多个文件"生成图谱"或处理所有"新建"状态的文件以创建图谱 6. 使用网格中的"查看"查看单个文件的图谱,或选择一个或多个文件并"预览图谱" 7. 向聊天机器人询问已处理/完成的源相关问题,还可获取LLM生成的答案的详细信息 ## 链接 [Neo4j工作区](https://workspace-preview.neo4j.io/workspace/query)