langchain_community.graphs.neo4j_graph.Neo4jGraph

class langchain_community.graphs.neo4j_graph.Neo4jGraph(url: Optional[str] = None, username: Optional[str] = None, password: Optional[str] = None, database: Optional[str] = None, timeout: Optional[float] = None, sanitize: bool = False, refresh_schema: bool = True, *, driver_config: Optional[Dict] = None, enhanced_schema: bool = False)[source]

Neo4j数据库的多种图操作封装。

参数:url (Optional[str]): Neo4j数据库服务器的URL。username (Optional[str]): 数据库认证的用户名。password (Optional[str]): 数据库认证的密码。database (str): 要连接的数据库名称。默认为‘neo4j’。timeout (Optional[float]): 事务的超时时间,单位为秒。

适用于终止长时间运行的查询。默认情况下,未设置超时。

sanitize (bool): 一个标志,指示是否从结果中删除元素超过128个的列表。

对于从数据库响应中删除类似嵌入的属性很有用。默认为False。

refresh_schema (bool): 初始化时是否刷新架构信息的标志。

默认为True。

enhanced_schema (bool): 是否扫描数据库以查找示例值并在图模式中使用它们的标志。

默认为False。

driver_config (Dict): 传递给Neo4j Driver的配置。

安全提示:请确保数据库连接使用凭证

这些仅限于仅包括必要权限的范围。未能这样做可能会导致数据损坏或丢失,因为被调用的代码可能会尝试命令,导致数据被删除、修改或读取敏感数据,如果数据库中存在此类数据。防止这种负面结果的最佳方式是(根据适当的情况)限制与此工具一起使用的凭证所获得的权限。

有关更多信息,请参阅https://python.langchain.ac.cn/docs/security

创建一个新的Neo4j图形包装器实例。

属性

get_schema

返回图形的架构

get_structured_schema

返回图形的标准化架构

方法

__init__([url, username, password, ...])

创建一个新的Neo4j图形包装器实例。

add_graph_documents(graph_documents[, ...])

此方法基于提供的GraphDocument对象在图中构建节点和关系。

query(query[, params])

查询Neo4j数据库。

refresh_schema()

刷新Neo4j图形架构信息。

参数
  • url (可选) – [ str ]

  • username (可选) – [ str ]

  • password (可选) – [ str ]

  • database (可选) – [ str ]

  • timeout (可选) – [ float ]

  • sanitize (布尔值) –

  • refresh_schema (布尔值) –

  • driver_config (可选) – [ Dict ]

  • enhanced_schema (布尔值) –

__init__(url: Optional[str] = None, username: Optional[str] = None, password: Optional[str] = None, database: Optional[str] = None, timeout: Optional[float] = None, sanitize: bool = False, refresh_schema: bool = True, *, driver_config: Optional[Dict] = None, enhanced_schema: bool = False) None[源代码]

创建一个新的Neo4j图形包装器实例。

参数
  • url (可选) – [ str ]

  • username (可选) – [ str ]

  • password (可选) – [ str ]

  • database (可选) – [ str ]

  • timeout (可选) – [ float ]

  • sanitize (布尔值) –

  • refresh_schema (布尔值) –

  • driver_config (可选) – [ Dict ]

  • enhanced_schema (布尔值) –

返回类型

None

add_graph_documents(graph_documents: List[GraphDocument], include_source: bool = False, baseEntityLabel: bool = False) None[source]

此方法基于提供的GraphDocument对象在图中构建节点和关系。

参数: - graph_documents (List[GraphDocument]): 需要添加到图中的节点和关系的 GraphDocument 对象列表。每个 GraphDocument 应封装部分图的机构,包括节点、关系和源文档信息。- include_source (bool, 可选): 如果为 True,则存储源文档并将其通过 MENTIONS 关系链接到图中的节点。这对于跟踪数据的来源很有用。如果有源文档的 metadata 中的 id 属性,则根据该属性合并源文档;否则计算 page_content 的 MD5 哈希以进行合并。默认为 False。- baseEntityLabel (bool, 可选): 如果为 True,则每个新创建的节点都将获得一个次要的 __Entity__ 标签,该标签已索引以提高导入速度和性能。默认为 False。

参数
  • graph_documents (List[GraphDocument]) –

  • include_source (bool) –

  • baseEntityLabel (bool) –

返回类型

None

query(query: str, params: dict = {}) List[Dict[str, Any]][source]

查询Neo4j数据库。

参数
  • query (str) – 要执行的 Cypher 查询。

  • params (dict) – 要传递给查询的参数。

返回

包含查询结果的字典列表。

返回类型

List[Dict[str, Any]]

refresh_schema() None[source]

刷新Neo4j图形架构信息。

返回类型

None

使用Neo4jGraph的示例