neo4j+LLM构建成品油&医疗跨领域知识图谱(初)&neo4j查询某个节点

全词查询

MATCH(n) WHERE n.name = '成品油' RETURN n

关键词查询:

MATCH (n) WHERE n.id CONTAINS '油' RETURN n

计算节点数:

MATCH (n) RETURN count(n) AS number_of_nodes;

计算关系数:

MATCH ()-r->() RETURN count(r) AS number_of_relationships;

具体代码如下(仅做备份自查):

python 复制代码
from langchain_core.runnables import (
    RunnableBranch,
    RunnableLambda,
    RunnableParallel,
    RunnablePassthrough,
)
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.prompts.prompt import PromptTemplate
from langchain_core.pydantic_v1 import BaseModel, Field
from typing import Tuple, List, Optional
from langchain_core.messages import AIMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser
import os
from langchain_community.graphs import Neo4jGraph
from langchain.document_loaders import WikipediaLoader
from langchain.text_splitter import TokenTextSplitter
from langchain_openai import ChatOpenAI
from langchain_experimental.graph_transformers import LLMGraphTransformer
from neo4j import GraphDatabase
from yfiles_jupyter_graphs import GraphWidget
from langchain_community.vectorstores import Neo4jVector
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores.neo4j_vector import remove_lucene_chars
from langchain_core.runnables import ConfigurableField, RunnableParallel, RunnablePassthrough

try:
  import google.colab
  from google.colab import output
  output.enable_custom_widget_manager()
except:
  pass
python 复制代码
os.environ["OPENAI_API_KEY"] = "sk-**********"
os.environ["NEO4J_URI"] = "bolt://localhost:7687"
os.environ["NEO4J_USERNAME"] = "neo4j"
os.environ["NEO4J_PASSWORD"] = "123456cys"

graph = Neo4jGraph()
python 复制代码
# 假设你有一个本地文件路径
file_path = 'data/oil072801.txt'  # 替换为你的文件路径

# 读取本地文件内容
with open(file_path, 'r', encoding='utf-8') as file:
    raw_documents = file.read()

# 创建 Document 类,添加 metadata 属性
class Document:
    def __init__(self, content, metadata=None):
        self.page_content = content
        self.metadata = metadata  # 这里添加了 metadata 属性

# 创建文档对象,并设置 metadata 属性
documents = [Document(content, {'source': 'oil0728'}) for content in raw_documents.split('\n')]

# Define chunking strategy
text_splitter = TokenTextSplitter(chunk_size=512, chunk_overlap=24)
split_documents = text_splitter.split_documents(documents)

# Initialize the LLM
llm = ChatOpenAI(temperature=0, model_name="gpt-3.5-turbo-0125")  # gpt-4-0125-preview occasionally has issues
llm_transformer = LLMGraphTransformer(llm=llm)

# Transform documents to graph documents
graph_documents = llm_transformer.convert_to_graph_documents(split_documents)

# 存储到 neo4j
graph.add_graph_documents(
    graph_documents,
    baseEntityLabel=True,
    include_source=True
)
相关推荐
嘿嘿-663 分钟前
GPT-6.1 Sol 实战:做一个可交互的 3D 汽车展厅
人工智能·gpt·3d·chatgpt·汽车
AI你一生一世4 分钟前
当广告采集器成为大模型的“眼睛“:跨站上下文注入的架构与代价
人工智能·架构·大模型·rag·隐私安全·上下文注入·跨站追踪
数字化顾问8 分钟前
(136页PPT)BCGIDG资本中国某省市场Geneva项目商业尽职调查项目报告(附下载方式)
大数据·人工智能
故七月12 分钟前
GEO 工程实践:企业官网结构化改造,提升大模型实体采信度
大数据·人工智能·geo
释厄62318 分钟前
物理发展史·量子力学=节点2·牛顿力学=节点3·宇宙的语言算法AI
人工智能·算法·microsoft
乃嘿仔22 分钟前
AI 热点日报 · 2026-10-01
开发语言·人工智能·php
AAASilverwolf24 分钟前
GPT-6 Sol 与 Luna 上线:Astra 的能力下放,价格却降了 50%?
人工智能·gpt·api
欣欣之王来了25 分钟前
AI合规专项:AI自动化决策的合规管控要点
运维·人工智能·自动化
科技峰行者26 分钟前
Bedrock AgentCore在亚马逊云科技中国区域正式可用,助力企业加速AI Agent规模化部署
人工智能·科技·agent·亚马逊·亚马逊云科技
海盗123436 分钟前
微软技术日报 2026-10-01:VS Code 1.140 让模型互相挑错,EWS 今天起关停
人工智能·驱动开发·microsoft·机器人·aigc