lemooljiang avatar

将Neo4j封装进Agent / ai #55

lemooljiang

Published: 23 Jun 2026 › Updated: 23 Jun 2026

将Neo4j封装进Agent / ai #55

Neo4j的各项功能跑通了,应该将其封装进Agent做为应用。LangGraph中有专门的ReAct Agent,可将其Neo4j做为一个工具导入,就是一个好用的Agent啰!

neoagent.jpg
Agent(由AIJoe生成)

from dotenv import dotenv_values
from langchain_openai import ChatOpenAI
from langchain_neo4j import Neo4jGraph
from langchain_neo4j import GraphCypherQAChain
from langchain_core.tools import tool
from pydantic import BaseModel, Field
import json
from langgraph.prebuilt import create_react_agent

 
env_vars = dotenv_values('.env')
OPENAI_KEY = env_vars['OPENAI_API_KEY'] 
OPENAI_BASE_URL = env_vars['OPENAI_API_BASE'] 

# 创建图数据库示例
graph = Neo4jGraph(url='neo4j+s://a2f9xcxx.databases.neo4j.io', 
      username="a2f9xxxx", 
      password="gh7EJn9Ik1xxxxx.xx",
      database="a2f9xxxx"
)

graph_llm = ChatOpenAI(temperature=0, model_name="gpt-5.4-mini" ,api_key=OPENAI_KEY,base_url=OPENAI_BASE_URL)


class DiseaseQuery(BaseModel):
    query: str = Field(description="Questions for disease queries")

@tool(args_schema=DiseaseQuery)
def get_disease_info(query):
    """
    get disease information, built on a graph-based knowledge base, excels at answering broad and comprehensive questions.
    """
    cypher_chain = GraphCypherQAChain.from_llm(
        graph=graph,
        cypher_llm=graph_llm,
        qa_llm=graph_llm,
        validate_cypher=True, 
        verbose=True,
        allow_dangerous_requests=True
    )
    response = cypher_chain.invoke({"query": query})
    print(362, response["result"])
    
    data = response["result"]
    return json.dumps(data)


tools = [get_disease_info]
agentGraph = create_react_agent(graph_llm, tools=tools)


finan_response = agentGraph.invoke({"messages":["苯中毒要如何防治"]})
print(668, finan_response["messages"][-1].content)  

逻辑还是比较简洁直接,将Neo4j封装成ReAct Agent的一个工具,直接跑就可以啰!

Leave 将Neo4j封装进Agent / ai #55 to:

Written by

Designer , Poet , Technology enthusiasts

Read more #cn posts


Best Posts From lemooljiang

We have not curated any of lemooljiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From lemooljiang