Spaces:
Runtime error
Runtime error
| from langchain.graphs.neo4j_graph import Neo4jGraph | |
| SCHEMA_QUERY = """ | |
| CALL llm_util.schema("prompt_ready") | |
| YIELD * | |
| RETURN * | |
| """ | |
| RAW_SCHEMA_QUERY = """ | |
| CALL llm_util.schema("raw") | |
| YIELD * | |
| RETURN * | |
| """ | |
| class MemgraphGraph(Neo4jGraph): | |
| """Memgraph wrapper for graph operations. | |
| *Security note*: Make sure that the database connection uses credentials | |
| that are narrowly-scoped to only include necessary permissions. | |
| Failure to do so may result in data corruption or loss, since the calling | |
| code may attempt commands that would result in deletion, mutation | |
| of data if appropriately prompted or reading sensitive data if such | |
| data is present in the database. | |
| The best way to guard against such negative outcomes is to (as appropriate) | |
| limit the permissions granted to the credentials used with this tool. | |
| See https://python.langchain.com/docs/security for more information. | |
| """ | |
| def __init__( | |
| self, url: str, username: str, password: str, *, database: str = "memgraph" | |
| ) -> None: | |
| """Create a new Memgraph graph wrapper instance.""" | |
| super().__init__(url, username, password, database=database) | |
| def refresh_schema(self) -> None: | |
| """ | |
| Refreshes the Memgraph graph schema information. | |
| """ | |
| db_schema = self.query(SCHEMA_QUERY)[0].get("schema") | |
| assert db_schema is not None | |
| self.schema = db_schema | |
| db_structured_schema = self.query(RAW_SCHEMA_QUERY)[0].get("schema") | |
| assert db_structured_schema is not None | |
| self.structured_schema = db_structured_schema | |