From ad0f8b29474086983be114604937eed80611fb97 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Fri, 11 Jul 2025 21:13:24 +0800 Subject: [PATCH] 'commit' --- ...resql支持工作空间的代码修改.txt | 8 + ...rages · Issue #1244 · HKUDS_LightRAG.pdf | Bin 0 -> 528301 bytes dsLightRag/Doc/postgres_impl.py | 2575 +++++++++++++++++ dsLightRag/Test/T1_WriteToPg.py | 2 +- dsLightRag/Util/LightRagUtil.py | 4 +- 5 files changed, 2586 insertions(+), 3 deletions(-) create mode 100644 dsLightRag/Doc/Postgresql支持工作空间的代码修改.txt create mode 100644 dsLightRag/Doc/[Feature Suggestion]_ Change _ Pass Workspace Name in PgSQL Storages · Issue #1244 · HKUDS_LightRAG.pdf create mode 100644 dsLightRag/Doc/postgres_impl.py diff --git a/dsLightRag/Doc/Postgresql支持工作空间的代码修改.txt b/dsLightRag/Doc/Postgresql支持工作空间的代码修改.txt new file mode 100644 index 00000000..5ab3f8c2 --- /dev/null +++ b/dsLightRag/Doc/Postgresql支持工作空间的代码修改.txt @@ -0,0 +1,8 @@ +https://github.com/HKUDS/LightRAG/issues/1244 + +# 源码路径 +D:\anaconda3\envs\py310\Lib\site-packages\lightrag + +# 用VScode打开编辑,可以全局搜索 + +D:\anaconda3\envs\py310\Lib\site-packages\lightrag\kg\postgres_impl.py \ No newline at end of file diff --git a/dsLightRag/Doc/[Feature Suggestion]_ Change _ Pass Workspace Name in PgSQL Storages · Issue #1244 · HKUDS_LightRAG.pdf b/dsLightRag/Doc/[Feature Suggestion]_ Change _ Pass Workspace Name in PgSQL Storages · Issue #1244 · HKUDS_LightRAG.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c900a9c14020aac7167ebff50dca58acc0228c60 GIT binary patch literal 528301 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%0DtGwVX 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 DZD$Td literal 0 HcmV?d00001 diff --git a/dsLightRag/Doc/postgres_impl.py b/dsLightRag/Doc/postgres_impl.py new file mode 100644 index 00000000..f02ad79f --- /dev/null +++ b/dsLightRag/Doc/postgres_impl.py @@ -0,0 +1,2575 @@ +import asyncio +import json +import os +import datetime +from datetime import timezone +from dataclasses import dataclass, field +from typing import Any, Union, final +import numpy as np +import configparser + +from lightrag.types import KnowledgeGraph, KnowledgeGraphNode, KnowledgeGraphEdge + +from tenacity import ( + retry, + retry_if_exception_type, + stop_after_attempt, + wait_exponential, +) + +from ..base import ( + BaseGraphStorage, + BaseKVStorage, + BaseVectorStorage, + DocProcessingStatus, + DocStatus, + DocStatusStorage, +) +from ..namespace import NameSpace, is_namespace +from ..utils import logger + +import pipmaster as pm + +if not pm.is_installed("asyncpg"): + pm.install("asyncpg") + +import asyncpg # type: ignore +from asyncpg import Pool # type: ignore + +from dotenv import load_dotenv + +# use the .env that is inside the current folder +# allows to use different .env file for each lightrag instance +# the OS environment variables take precedence over the .env file +load_dotenv(dotenv_path=".env", override=False) + +# Get maximum number of graph nodes from environment variable, default is 1000 +MAX_GRAPH_NODES = int(os.getenv("MAX_GRAPH_NODES", 1000)) + + +class PostgreSQLDB: + def __init__(self, config: dict[str, Any], **kwargs: Any): + self.host = config["host"] + self.port = config["port"] + self.user = config["user"] + self.password = config["password"] + self.database = config["database"] + self.workspace = config["workspace"] + self.max = int(config["max_connections"]) + self.increment = 1 + self.pool: Pool | None = None + + if self.user is None or self.password is None or self.database is None: + raise ValueError("Missing database user, password, or database") + + async def initdb(self): + try: + self.pool = await asyncpg.create_pool( # type: ignore + user=self.user, + password=self.password, + database=self.database, + host=self.host, + port=self.port, + min_size=1, + max_size=self.max, + ) + + logger.info( + f"PostgreSQL, Connected to database at {self.host}:{self.port}/{self.database}" + ) + except Exception as e: + logger.error( + f"PostgreSQL, Failed to connect database at {self.host}:{self.port}/{self.database}, Got:{e}" + ) + raise + + @staticmethod + async def configure_age(connection: asyncpg.Connection, graph_name: str) -> None: + """Set the Apache AGE environment and creates a graph if it does not exist. + + This method: + - Sets the PostgreSQL `search_path` to include `ag_catalog`, ensuring that Apache AGE functions can be used without specifying the schema. + - Attempts to create a new graph with the provided `graph_name` if it does not already exist. + - Silently ignores errors related to the graph already existing. + + """ + try: + await connection.execute( # type: ignore + 'SET search_path = ag_catalog, "$user", public' + ) + await connection.execute( # type: ignore + f"select create_graph('{graph_name}')" + ) + except ( + asyncpg.exceptions.InvalidSchemaNameError, + asyncpg.exceptions.UniqueViolationError, + ): + pass + + async def _migrate_llm_cache_add_chunk_id(self): + """Add chunk_id column to LIGHTRAG_LLM_CACHE table if it doesn't exist""" + try: + # Check if chunk_id column exists + check_column_sql = """ + SELECT column_name + FROM information_schema.columns + WHERE table_name = 'lightrag_llm_cache' + AND column_name = 'chunk_id' + """ + + column_info = await self.query(check_column_sql) + if not column_info: + logger.info("Adding chunk_id column to LIGHTRAG_LLM_CACHE table") + add_column_sql = """ + ALTER TABLE LIGHTRAG_LLM_CACHE + ADD COLUMN chunk_id VARCHAR(255) NULL + """ + await self.execute(add_column_sql) + logger.info( + "Successfully added chunk_id column to LIGHTRAG_LLM_CACHE table" + ) + else: + logger.info( + "chunk_id column already exists in LIGHTRAG_LLM_CACHE table" + ) + except Exception as e: + logger.warning(f"Failed to add chunk_id column to LIGHTRAG_LLM_CACHE: {e}") + + async def _migrate_timestamp_columns(self): + """Migrate timestamp columns in tables to timezone-aware types, assuming original data is in UTC time""" + # Tables and columns that need migration + tables_to_migrate = { + "LIGHTRAG_VDB_ENTITY": ["create_time", "update_time"], + "LIGHTRAG_VDB_RELATION": ["create_time", "update_time"], + "LIGHTRAG_DOC_CHUNKS": ["create_time", "update_time"], + } + + for table_name, columns in tables_to_migrate.items(): + for column_name in columns: + try: + # Check if column exists + check_column_sql = f""" + SELECT column_name, data_type + FROM information_schema.columns + WHERE table_name = '{table_name.lower()}' + AND column_name = '{column_name}' + """ + + column_info = await self.query(check_column_sql) + if not column_info: + logger.warning( + f"Column {table_name}.{column_name} does not exist, skipping migration" + ) + continue + + # Check column type + data_type = column_info.get("data_type") + if data_type == "timestamp with time zone": + logger.info( + f"Column {table_name}.{column_name} is already timezone-aware, no migration needed" + ) + continue + + # Execute migration, explicitly specifying UTC timezone for interpreting original data + logger.info( + f"Migrating {table_name}.{column_name} to timezone-aware type" + ) + migration_sql = f""" + ALTER TABLE {table_name} + ALTER COLUMN {column_name} TYPE TIMESTAMP(0) WITH TIME ZONE + USING {column_name} AT TIME ZONE 'UTC' + """ + + await self.execute(migration_sql) + logger.info( + f"Successfully migrated {table_name}.{column_name} to timezone-aware type" + ) + except Exception as e: + # Log error but don't interrupt the process + logger.warning(f"Failed to migrate {table_name}.{column_name}: {e}") + + async def check_tables(self): + # First create all tables + for k, v in TABLES.items(): + try: + await self.query(f"SELECT 1 FROM {k} LIMIT 1") + except Exception: + try: + logger.info(f"PostgreSQL, Try Creating table {k} in database") + await self.execute(v["ddl"]) + logger.info( + f"PostgreSQL, Creation success table {k} in PostgreSQL database" + ) + except Exception as e: + logger.error( + f"PostgreSQL, Failed to create table {k} in database, Please verify the connection with PostgreSQL database, Got: {e}" + ) + raise e + + # Create index for id column in each table + try: + index_name = f"idx_{k.lower()}_id" + check_index_sql = f""" + SELECT 1 FROM pg_indexes + WHERE indexname = '{index_name}' + AND tablename = '{k.lower()}' + """ + index_exists = await self.query(check_index_sql) + + if not index_exists: + create_index_sql = f"CREATE INDEX {index_name} ON {k}(id)" + logger.info(f"PostgreSQL, Creating index {index_name} on table {k}") + await self.execute(create_index_sql) + except Exception as e: + logger.error( + f"PostgreSQL, Failed to create index on table {k}, Got: {e}" + ) + + # After all tables are created, attempt to migrate timestamp fields + try: + await self._migrate_timestamp_columns() + except Exception as e: + logger.error(f"PostgreSQL, Failed to migrate timestamp columns: {e}") + # Don't throw an exception, allow the initialization process to continue + + # Migrate LLM cache table to add chunk_id field if needed + try: + await self._migrate_llm_cache_add_chunk_id() + except Exception as e: + logger.error(f"PostgreSQL, Failed to migrate LLM cache chunk_id field: {e}") + # Don't throw an exception, allow the initialization process to continue + + async def query( + self, + sql: str, + params: dict[str, Any] | None = None, + multirows: bool = False, + with_age: bool = False, + graph_name: str | None = None, + ) -> dict[str, Any] | None | list[dict[str, Any]]: + # start_time = time.time() + # logger.info(f"PostgreSQL, Querying:\n{sql}") + + async with self.pool.acquire() as connection: # type: ignore + if with_age and graph_name: + await self.configure_age(connection, graph_name) # type: ignore + elif with_age and not graph_name: + raise ValueError("Graph name is required when with_age is True") + + try: + if params: + rows = await connection.fetch(sql, *params.values()) + else: + rows = await connection.fetch(sql) + + if multirows: + if rows: + columns = [col for col in rows[0].keys()] + data = [dict(zip(columns, row)) for row in rows] + else: + data = [] + else: + if rows: + columns = rows[0].keys() + data = dict(zip(columns, rows[0])) + else: + data = None + + # query_time = time.time() - start_time + # logger.info(f"PostgreSQL, Query result len: {len(data)}") + # logger.info(f"PostgreSQL, Query execution time: {query_time:.4f}s") + + return data + except Exception as e: + logger.error(f"PostgreSQL database, error:{e}") + raise + + async def execute( + self, + sql: str, + data: dict[str, Any] | None = None, + upsert: bool = False, + ignore_if_exists: bool = False, + with_age: bool = False, + graph_name: str | None = None, + ): + try: + async with self.pool.acquire() as connection: # type: ignore + if with_age and graph_name: + await self.configure_age(connection, graph_name) + elif with_age and not graph_name: + raise ValueError("Graph name is required when with_age is True") + + if data is None: + await connection.execute(sql) + else: + await connection.execute(sql, *data.values()) + except ( + asyncpg.exceptions.UniqueViolationError, + asyncpg.exceptions.DuplicateTableError, + asyncpg.exceptions.DuplicateObjectError, # Catch "already exists" error + asyncpg.exceptions.InvalidSchemaNameError, # Also catch for AGE extension "already exists" + ) as e: + if ignore_if_exists: + # If the flag is set, just ignore these specific errors + pass + elif upsert: + print("Key value duplicate, but upsert succeeded.") + else: + logger.error(f"Upsert error: {e}") + except Exception as e: + logger.error(f"PostgreSQL database,\nsql:{sql},\ndata:{data},\nerror:{e}") + raise + + +class ClientManager: + _instances: dict[str, Any] = {"db": None, "ref_count": 0} + _lock = asyncio.Lock() + + @staticmethod + #def get_config() -> dict[str, Any]: + def get_config(global_config: dict[str, Any] | None = None) -> dict[str, Any]: + # First try to get workspace from global config + workspace = None + if global_config and "vector_db_storage_cls_kwargs" in global_config: + workspace = global_config["vector_db_storage_cls_kwargs"].get("workspace") + + # Read standard config + config = configparser.ConfigParser() + config.read("config.ini", "utf-8") + + return { + "host": os.environ.get( + "POSTGRES_HOST", + config.get("postgres", "host", fallback="localhost"), + ), + "port": os.environ.get( + "POSTGRES_PORT", config.get("postgres", "port", fallback=5432) + ), + "user": os.environ.get( + "POSTGRES_USER", config.get("postgres", "user", fallback="postgres") + ), + "password": os.environ.get( + "POSTGRES_PASSWORD", + config.get("postgres", "password", fallback=None), + ), + "database": os.environ.get( + "POSTGRES_DATABASE", + config.get("postgres", "database", fallback="postgres"), + ), + # Use workspace from global config if available, otherwise fall back to env/config.ini + "workspace": workspace or os.environ.get( + "POSTGRES_WORKSPACE", + config.get("postgres", "workspace", fallback="default"), + ), + "max_connections": os.environ.get( + "POSTGRES_MAX_CONNECTIONS", + config.get("postgres", "max_connections", fallback=20), + ), + } + + @classmethod + #async def get_client(cls) -> PostgreSQLDB: + async def get_client(cls, global_config: dict[str, Any] | None = None) -> PostgreSQLDB: + async with cls._lock: + if cls._instances["db"] is None: + #config = ClientManager.get_config() + config = cls.get_config(global_config) + db = PostgreSQLDB(config) + await db.initdb() + await db.check_tables() + cls._instances["db"] = db + cls._instances["ref_count"] = 0 + cls._instances["ref_count"] += 1 + return cls._instances["db"] + + @classmethod + async def release_client(cls, db: PostgreSQLDB): + async with cls._lock: + if db is not None: + if db is cls._instances["db"]: + cls._instances["ref_count"] -= 1 + if cls._instances["ref_count"] == 0: + await db.pool.close() + logger.info("Closed PostgreSQL database connection pool") + cls._instances["db"] = None + else: + await db.pool.close() + + +@final +@dataclass +class PGKVStorage(BaseKVStorage): + db: PostgreSQLDB = field(default=None) + + def __post_init__(self): + namespace_prefix = self.global_config.get("namespace_prefix") + self.base_namespace = self.namespace.replace(namespace_prefix, "") + self._max_batch_size = self.global_config["embedding_batch_num"] + + async def initialize(self): + if self.db is None: + #self.db = await ClientManager.get_client() + self.db = await ClientManager.get_client(self.global_config) + + async def finalize(self): + if self.db is not None: + await ClientManager.release_client(self.db) + self.db = None + + ################ QUERY METHODS ################ + async def get_all(self) -> dict[str, Any]: + """Get all data from storage + + Returns: + Dictionary containing all stored data + """ + table_name = namespace_to_table_name(self.namespace) + if not table_name: + logger.error(f"Unknown namespace for get_all: {self.namespace}") + return {} + + sql = f"SELECT * FROM {table_name} WHERE workspace=$1" + params = {"workspace": self.db.workspace} + + try: + results = await self.db.query(sql, params, multirows=True) + + if is_namespace(self.namespace, NameSpace.KV_STORE_LLM_RESPONSE_CACHE): + result_dict = {} + for row in results: + mode = row["mode"] + if mode not in result_dict: + result_dict[mode] = {} + result_dict[mode][row["id"]] = row + return result_dict + else: + return {row["id"]: row for row in results} + except Exception as e: + logger.error(f"Error retrieving all data from {self.namespace}: {e}") + return {} + + async def get_by_id(self, id: str) -> dict[str, Any] | None: + """Get doc_full data by id.""" + sql = SQL_TEMPLATES["get_by_id_" + self.namespace] + params = {"workspace": self.db.workspace, "id": id} + if is_namespace(self.namespace, NameSpace.KV_STORE_LLM_RESPONSE_CACHE): + array_res = await self.db.query(sql, params, multirows=True) + res = {} + for row in array_res: + res[row["id"]] = row + return res if res else None + else: + response = await self.db.query(sql, params) + return response if response else None + + async def get_by_mode_and_id(self, mode: str, id: str) -> Union[dict, None]: + """Specifically for llm_response_cache.""" + sql = SQL_TEMPLATES["get_by_mode_id_" + self.namespace] + params = {"workspace": self.db.workspace, "mode": mode, "id": id} + if is_namespace(self.namespace, NameSpace.KV_STORE_LLM_RESPONSE_CACHE): + array_res = await self.db.query(sql, params, multirows=True) + res = {} + for row in array_res: + res[row["id"]] = row + return res + else: + return None + + # Query by id + async def get_by_ids(self, ids: list[str]) -> list[dict[str, Any]]: + """Get doc_chunks data by id""" + sql = SQL_TEMPLATES["get_by_ids_" + self.namespace].format( + ids=",".join([f"'{id}'" for id in ids]) + ) + params = {"workspace": self.db.workspace} + if is_namespace(self.namespace, NameSpace.KV_STORE_LLM_RESPONSE_CACHE): + array_res = await self.db.query(sql, params, multirows=True) + modes = set() + dict_res: dict[str, dict] = {} + for row in array_res: + modes.add(row["mode"]) + for mode in modes: + if mode not in dict_res: + dict_res[mode] = {} + for row in array_res: + dict_res[row["mode"]][row["id"]] = row + return [{k: v} for k, v in dict_res.items()] + else: + return await self.db.query(sql, params, multirows=True) + + async def get_by_status(self, status: str) -> Union[list[dict[str, Any]], None]: + """Specifically for llm_response_cache.""" + SQL = SQL_TEMPLATES["get_by_status_" + self.namespace] + params = {"workspace": self.db.workspace, "status": status} + return await self.db.query(SQL, params, multirows=True) + + async def filter_keys(self, keys: set[str]) -> set[str]: + """Filter out duplicated content""" + sql = SQL_TEMPLATES["filter_keys"].format( + table_name=namespace_to_table_name(self.namespace), + ids=",".join([f"'{id}'" for id in keys]), + ) + params = {"workspace": self.db.workspace} + try: + res = await self.db.query(sql, params, multirows=True) + if res: + exist_keys = [key["id"] for key in res] + else: + exist_keys = [] + new_keys = set([s for s in keys if s not in exist_keys]) + return new_keys + except Exception as e: + logger.error( + f"PostgreSQL database,\nsql:{sql},\nparams:{params},\nerror:{e}" + ) + raise + + ################ INSERT METHODS ################ + async def upsert(self, data: dict[str, dict[str, Any]]) -> None: + logger.debug(f"Inserting {len(data)} to {self.namespace}") + if not data: + return + + if is_namespace(self.namespace, NameSpace.KV_STORE_TEXT_CHUNKS): + pass + elif is_namespace(self.namespace, NameSpace.KV_STORE_FULL_DOCS): + for k, v in data.items(): + upsert_sql = SQL_TEMPLATES["upsert_doc_full"] + _data = { + "id": k, + "content": v["content"], + "workspace": self.db.workspace, + } + await self.db.execute(upsert_sql, _data) + elif is_namespace(self.namespace, NameSpace.KV_STORE_LLM_RESPONSE_CACHE): + for mode, items in data.items(): + for k, v in items.items(): + upsert_sql = SQL_TEMPLATES["upsert_llm_response_cache"] + _data = { + "workspace": self.db.workspace, + "id": k, + "original_prompt": v["original_prompt"], + "return_value": v["return"], + "mode": mode, + "chunk_id": v.get("chunk_id"), + } + + await self.db.execute(upsert_sql, _data) + + async def index_done_callback(self) -> None: + # PG handles persistence automatically + pass + + async def delete(self, ids: list[str]) -> None: + """Delete specific records from storage by their IDs + + Args: + ids (list[str]): List of document IDs to be deleted from storage + + Returns: + None + """ + if not ids: + return + + table_name = namespace_to_table_name(self.namespace) + if not table_name: + logger.error(f"Unknown namespace for deletion: {self.namespace}") + return + + delete_sql = f"DELETE FROM {table_name} WHERE workspace=$1 AND id = ANY($2)" + + try: + await self.db.execute( + delete_sql, {"workspace": self.db.workspace, "ids": ids} + ) + logger.debug( + f"Successfully deleted {len(ids)} records from {self.namespace}" + ) + except Exception as e: + logger.error(f"Error while deleting records from {self.namespace}: {e}") + + async def drop_cache_by_modes(self, modes: list[str] | None = None) -> bool: + """Delete specific records from storage by cache mode + + Args: + modes (list[str]): List of cache modes to be dropped from storage + + Returns: + bool: True if successful, False otherwise + """ + if not modes: + return False + + try: + table_name = namespace_to_table_name(self.namespace) + if not table_name: + return False + + if table_name != "LIGHTRAG_LLM_CACHE": + return False + + sql = f""" + DELETE FROM {table_name} + WHERE workspace = $1 AND mode = ANY($2) + """ + params = {"workspace": self.db.workspace, "modes": modes} + + logger.info(f"Deleting cache by modes: {modes}") + await self.db.execute(sql, params) + return True + except Exception as e: + logger.error(f"Error deleting cache by modes {modes}: {e}") + return False + + async def drop(self) -> dict[str, str]: + """Drop the storage""" + try: + table_name = namespace_to_table_name(self.namespace) + if not table_name: + return { + "status": "error", + "message": f"Unknown namespace: {self.namespace}", + } + + drop_sql = SQL_TEMPLATES["drop_specifiy_table_workspace"].format( + table_name=table_name + ) + await self.db.execute(drop_sql, {"workspace": self.db.workspace}) + return {"status": "success", "message": "data dropped"} + except Exception as e: + return {"status": "error", "message": str(e)} + + +@final +@dataclass +class PGVectorStorage(BaseVectorStorage): + db: PostgreSQLDB | None = field(default=None) + + def __post_init__(self): + self._max_batch_size = self.global_config["embedding_batch_num"] + namespace_prefix = self.global_config.get("namespace_prefix") + self.base_namespace = self.namespace.replace(namespace_prefix, "") + config = self.global_config.get("vector_db_storage_cls_kwargs", {}) + cosine_threshold = config.get("cosine_better_than_threshold") + if cosine_threshold is None: + raise ValueError( + "cosine_better_than_threshold must be specified in vector_db_storage_cls_kwargs" + ) + self.cosine_better_than_threshold = cosine_threshold + + async def initialize(self): + if self.db is None: + #self.db = await ClientManager.get_client() + self.db = await ClientManager.get_client(self.global_config) + + async def finalize(self): + if self.db is not None: + await ClientManager.release_client(self.db) + self.db = None + + def _upsert_chunks( + self, item: dict[str, Any], current_time: datetime.datetime + ) -> tuple[str, dict[str, Any]]: + try: + upsert_sql = SQL_TEMPLATES["upsert_chunk"] + data: dict[str, Any] = { + "workspace": self.db.workspace, + "id": item["__id__"], + "tokens": item["tokens"], + "chunk_order_index": item["chunk_order_index"], + "full_doc_id": item["full_doc_id"], + "content": item["content"], + "content_vector": json.dumps(item["__vector__"].tolist()), + "file_path": item["file_path"], + "create_time": current_time, + "update_time": current_time, + } + except Exception as e: + logger.error(f"Error to prepare upsert,\nsql: {e}\nitem: {item}") + raise + + return upsert_sql, data + + def _upsert_entities( + self, item: dict[str, Any], current_time: datetime.datetime + ) -> tuple[str, dict[str, Any]]: + upsert_sql = SQL_TEMPLATES["upsert_entity"] + source_id = item["source_id"] + if isinstance(source_id, str) and "" in source_id: + chunk_ids = source_id.split("") + else: + chunk_ids = [source_id] + + data: dict[str, Any] = { + "workspace": self.db.workspace, + "id": item["__id__"], + "entity_name": item["entity_name"], + "content": item["content"], + "content_vector": json.dumps(item["__vector__"].tolist()), + "chunk_ids": chunk_ids, + "file_path": item.get("file_path", None), + "create_time": current_time, + "update_time": current_time, + } + return upsert_sql, data + + def _upsert_relationships( + self, item: dict[str, Any], current_time: datetime.datetime + ) -> tuple[str, dict[str, Any]]: + upsert_sql = SQL_TEMPLATES["upsert_relationship"] + source_id = item["source_id"] + if isinstance(source_id, str) and "" in source_id: + chunk_ids = source_id.split("") + else: + chunk_ids = [source_id] + + data: dict[str, Any] = { + "workspace": self.db.workspace, + "id": item["__id__"], + "source_id": item["src_id"], + "target_id": item["tgt_id"], + "content": item["content"], + "content_vector": json.dumps(item["__vector__"].tolist()), + "chunk_ids": chunk_ids, + "file_path": item.get("file_path", None), + "create_time": current_time, + "update_time": current_time, + } + return upsert_sql, data + + async def upsert(self, data: dict[str, dict[str, Any]]) -> None: + logger.debug(f"Inserting {len(data)} to {self.namespace}") + if not data: + return + + # Get current time with UTC timezone + current_time = datetime.datetime.now(timezone.utc) + list_data = [ + { + "__id__": k, + **{k1: v1 for k1, v1 in v.items()}, + } + for k, v in data.items() + ] + contents = [v["content"] for v in data.values()] + batches = [ + contents[i : i + self._max_batch_size] + for i in range(0, len(contents), self._max_batch_size) + ] + + embedding_tasks = [self.embedding_func(batch) for batch in batches] + embeddings_list = await asyncio.gather(*embedding_tasks) + + embeddings = np.concatenate(embeddings_list) + for i, d in enumerate(list_data): + d["__vector__"] = embeddings[i] + for item in list_data: + if is_namespace(self.namespace, NameSpace.VECTOR_STORE_CHUNKS): + upsert_sql, data = self._upsert_chunks(item, current_time) + elif is_namespace(self.namespace, NameSpace.VECTOR_STORE_ENTITIES): + upsert_sql, data = self._upsert_entities(item, current_time) + elif is_namespace(self.namespace, NameSpace.VECTOR_STORE_RELATIONSHIPS): + upsert_sql, data = self._upsert_relationships(item, current_time) + else: + raise ValueError(f"{self.namespace} is not supported") + + await self.db.execute(upsert_sql, data) + + #################### query method ############### + async def query( + self, query: str, top_k: int, ids: list[str] | None = None + ) -> list[dict[str, Any]]: + embeddings = await self.embedding_func( + [query], _priority=5 + ) # higher priority for query + embedding = embeddings[0] + embedding_string = ",".join(map(str, embedding)) + # Use parameterized document IDs (None means search across all documents) + sql = SQL_TEMPLATES[self.namespace].format(embedding_string=embedding_string) + params = { + "workspace": self.db.workspace, + "doc_ids": ids, + "better_than_threshold": self.cosine_better_than_threshold, + "top_k": top_k, + } + results = await self.db.query(sql, params=params, multirows=True) + return results + + async def index_done_callback(self) -> None: + # PG handles persistence automatically + pass + + async def delete(self, ids: list[str]) -> None: + """Delete vectors with specified IDs from the storage. + + Args: + ids: List of vector IDs to be deleted + """ + if not ids: + return + + table_name = namespace_to_table_name(self.namespace) + if not table_name: + logger.error(f"Unknown namespace for vector deletion: {self.namespace}") + return + + delete_sql = f"DELETE FROM {table_name} WHERE workspace=$1 AND id = ANY($2)" + + try: + await self.db.execute( + delete_sql, {"workspace": self.db.workspace, "ids": ids} + ) + logger.debug( + f"Successfully deleted {len(ids)} vectors from {self.namespace}" + ) + except Exception as e: + logger.error(f"Error while deleting vectors from {self.namespace}: {e}") + + async def delete_entity(self, entity_name: str) -> None: + """Delete an entity by its name from the vector storage. + + Args: + entity_name: The name of the entity to delete + """ + try: + # Construct SQL to delete the entity + delete_sql = """DELETE FROM LIGHTRAG_VDB_ENTITY + WHERE workspace=$1 AND entity_name=$2""" + + await self.db.execute( + delete_sql, {"workspace": self.db.workspace, "entity_name": entity_name} + ) + logger.debug(f"Successfully deleted entity {entity_name}") + except Exception as e: + logger.error(f"Error deleting entity {entity_name}: {e}") + + async def delete_entity_relation(self, entity_name: str) -> None: + """Delete all relations associated with an entity. + + Args: + entity_name: The name of the entity whose relations should be deleted + """ + try: + # Delete relations where the entity is either the source or target + delete_sql = """DELETE FROM LIGHTRAG_VDB_RELATION + WHERE workspace=$1 AND (source_id=$2 OR target_id=$2)""" + + await self.db.execute( + delete_sql, {"workspace": self.db.workspace, "entity_name": entity_name} + ) + logger.debug(f"Successfully deleted relations for entity {entity_name}") + except Exception as e: + logger.error(f"Error deleting relations for entity {entity_name}: {e}") + + async def get_by_id(self, id: str) -> dict[str, Any] | None: + """Get vector data by its ID + + Args: + id: The unique identifier of the vector + + Returns: + The vector data if found, or None if not found + """ + table_name = namespace_to_table_name(self.namespace) + if not table_name: + logger.error(f"Unknown namespace for ID lookup: {self.namespace}") + return None + + query = f"SELECT *, EXTRACT(EPOCH FROM create_time)::BIGINT as created_at FROM {table_name} WHERE workspace=$1 AND id=$2" + params = {"workspace": self.db.workspace, "id": id} + + try: + result = await self.db.query(query, params) + if result: + return dict(result) + return None + except Exception as e: + logger.error(f"Error retrieving vector data for ID {id}: {e}") + return None + + async def get_by_ids(self, ids: list[str]) -> list[dict[str, Any]]: + """Get multiple vector data by their IDs + + Args: + ids: List of unique identifiers + + Returns: + List of vector data objects that were found + """ + if not ids: + return [] + + table_name = namespace_to_table_name(self.namespace) + if not table_name: + logger.error(f"Unknown namespace for IDs lookup: {self.namespace}") + return [] + + ids_str = ",".join([f"'{id}'" for id in ids]) + query = f"SELECT *, EXTRACT(EPOCH FROM create_time)::BIGINT as created_at FROM {table_name} WHERE workspace=$1 AND id IN ({ids_str})" + params = {"workspace": self.db.workspace} + + try: + results = await self.db.query(query, params, multirows=True) + return [dict(record) for record in results] + except Exception as e: + logger.error(f"Error retrieving vector data for IDs {ids}: {e}") + return [] + + async def drop(self) -> dict[str, str]: + """Drop the storage""" + try: + table_name = namespace_to_table_name(self.namespace) + if not table_name: + return { + "status": "error", + "message": f"Unknown namespace: {self.namespace}", + } + + drop_sql = SQL_TEMPLATES["drop_specifiy_table_workspace"].format( + table_name=table_name + ) + await self.db.execute(drop_sql, {"workspace": self.db.workspace}) + return {"status": "success", "message": "data dropped"} + except Exception as e: + return {"status": "error", "message": str(e)} + + +@final +@dataclass +class PGDocStatusStorage(DocStatusStorage): + db: PostgreSQLDB = field(default=None) + + async def initialize(self): + if self.db is None: + #self.db = await ClientManager.get_client() + self.db = await ClientManager.get_client(self.global_config) + + async def finalize(self): + if self.db is not None: + await ClientManager.release_client(self.db) + self.db = None + + async def filter_keys(self, keys: set[str]) -> set[str]: + """Filter out duplicated content""" + sql = SQL_TEMPLATES["filter_keys"].format( + table_name=namespace_to_table_name(self.namespace), + ids=",".join([f"'{id}'" for id in keys]), + ) + params = {"workspace": self.db.workspace} + try: + res = await self.db.query(sql, params, multirows=True) + if res: + exist_keys = [key["id"] for key in res] + else: + exist_keys = [] + new_keys = set([s for s in keys if s not in exist_keys]) + print(f"keys: {keys}") + print(f"new_keys: {new_keys}") + return new_keys + except Exception as e: + logger.error( + f"PostgreSQL database,\nsql:{sql},\nparams:{params},\nerror:{e}" + ) + raise + + async def get_by_id(self, id: str) -> Union[dict[str, Any], None]: + sql = "select * from LIGHTRAG_DOC_STATUS where workspace=$1 and id=$2" + params = {"workspace": self.db.workspace, "id": id} + result = await self.db.query(sql, params, True) + if result is None or result == []: + return None + else: + return dict( + content=result[0]["content"], + content_length=result[0]["content_length"], + content_summary=result[0]["content_summary"], + status=result[0]["status"], + chunks_count=result[0]["chunks_count"], + created_at=result[0]["created_at"], + updated_at=result[0]["updated_at"], + file_path=result[0]["file_path"], + ) + + async def get_by_ids(self, ids: list[str]) -> list[dict[str, Any]]: + """Get doc_chunks data by multiple IDs.""" + if not ids: + return [] + + sql = "SELECT * FROM LIGHTRAG_DOC_STATUS WHERE workspace=$1 AND id = ANY($2)" + params = {"workspace": self.db.workspace, "ids": ids} + + results = await self.db.query(sql, params, True) + + if not results: + return [] + return [ + { + "content": row["content"], + "content_length": row["content_length"], + "content_summary": row["content_summary"], + "status": row["status"], + "chunks_count": row["chunks_count"], + "created_at": row["created_at"], + "updated_at": row["updated_at"], + "file_path": row["file_path"], + } + for row in results + ] + + async def get_status_counts(self) -> dict[str, int]: + """Get counts of documents in each status""" + sql = """SELECT status as "status", COUNT(1) as "count" + FROM LIGHTRAG_DOC_STATUS + where workspace=$1 GROUP BY STATUS + """ + result = await self.db.query(sql, {"workspace": self.db.workspace}, True) + counts = {} + for doc in result: + counts[doc["status"]] = doc["count"] + return counts + + async def get_docs_by_status( + self, status: DocStatus + ) -> dict[str, DocProcessingStatus]: + """all documents with a specific status""" + sql = "select * from LIGHTRAG_DOC_STATUS where workspace=$1 and status=$2" + params = {"workspace": self.db.workspace, "status": status.value} + result = await self.db.query(sql, params, True) + docs_by_status = { + element["id"]: DocProcessingStatus( + content=element["content"], + content_summary=element["content_summary"], + content_length=element["content_length"], + status=element["status"], + created_at=element["created_at"], + updated_at=element["updated_at"], + chunks_count=element["chunks_count"], + file_path=element["file_path"], + ) + for element in result + } + return docs_by_status + + async def index_done_callback(self) -> None: + # PG handles persistence automatically + pass + + async def delete(self, ids: list[str]) -> None: + """Delete specific records from storage by their IDs + + Args: + ids (list[str]): List of document IDs to be deleted from storage + + Returns: + None + """ + if not ids: + return + + table_name = namespace_to_table_name(self.namespace) + if not table_name: + logger.error(f"Unknown namespace for deletion: {self.namespace}") + return + + delete_sql = f"DELETE FROM {table_name} WHERE workspace=$1 AND id = ANY($2)" + + try: + await self.db.execute( + delete_sql, {"workspace": self.db.workspace, "ids": ids} + ) + logger.debug( + f"Successfully deleted {len(ids)} records from {self.namespace}" + ) + except Exception as e: + logger.error(f"Error while deleting records from {self.namespace}: {e}") + + async def upsert(self, data: dict[str, dict[str, Any]]) -> None: + """Update or insert document status + + Args: + data: dictionary of document IDs and their status data + """ + logger.debug(f"Inserting {len(data)} to {self.namespace}") + if not data: + return + + def parse_datetime(dt_str): + if dt_str is None: + return None + if isinstance(dt_str, (datetime.date, datetime.datetime)): + # If it's a datetime object without timezone info, remove timezone info + if isinstance(dt_str, datetime.datetime): + # Remove timezone info, return naive datetime object + return dt_str.replace(tzinfo=None) + return dt_str + try: + # Process ISO format string with timezone + dt = datetime.datetime.fromisoformat(dt_str) + # Remove timezone info, return naive datetime object + return dt.replace(tzinfo=None) + except (ValueError, TypeError): + logger.warning(f"Unable to parse datetime string: {dt_str}") + return None + + # Modified SQL to include created_at and updated_at in both INSERT and UPDATE operations + # Both fields are updated from the input data in both INSERT and UPDATE cases + sql = """insert into LIGHTRAG_DOC_STATUS(workspace,id,content,content_summary,content_length,chunks_count,status,file_path,created_at,updated_at) + values($1,$2,$3,$4,$5,$6,$7,$8,$9,$10) + on conflict(id,workspace) do update set + content = EXCLUDED.content, + content_summary = EXCLUDED.content_summary, + content_length = EXCLUDED.content_length, + chunks_count = EXCLUDED.chunks_count, + status = EXCLUDED.status, + file_path = EXCLUDED.file_path, + created_at = EXCLUDED.created_at, + updated_at = EXCLUDED.updated_at""" + for k, v in data.items(): + # Remove timezone information, store utc time in db + created_at = parse_datetime(v.get("created_at")) + updated_at = parse_datetime(v.get("updated_at")) + + # chunks_count is optional + await self.db.execute( + sql, + { + "workspace": self.db.workspace, + "id": k, + "content": v["content"], + "content_summary": v["content_summary"], + "content_length": v["content_length"], + "chunks_count": v["chunks_count"] if "chunks_count" in v else -1, + "status": v["status"], + "file_path": v["file_path"], + "created_at": created_at, # Use the converted datetime object + "updated_at": updated_at, # Use the converted datetime object + }, + ) + + async def drop(self) -> dict[str, str]: + """Drop the storage""" + try: + table_name = namespace_to_table_name(self.namespace) + if not table_name: + return { + "status": "error", + "message": f"Unknown namespace: {self.namespace}", + } + + drop_sql = SQL_TEMPLATES["drop_specifiy_table_workspace"].format( + table_name=table_name + ) + await self.db.execute(drop_sql, {"workspace": self.db.workspace}) + return {"status": "success", "message": "data dropped"} + except Exception as e: + return {"status": "error", "message": str(e)} + + +class PGGraphQueryException(Exception): + """Exception for the AGE queries.""" + + def __init__(self, exception: Union[str, dict[str, Any]]) -> None: + if isinstance(exception, dict): + self.message = exception["message"] if "message" in exception else "unknown" + self.details = exception["details"] if "details" in exception else "unknown" + else: + self.message = exception + self.details = "unknown" + + def get_message(self) -> str: + return self.message + + def get_details(self) -> Any: + return self.details + + +@final +@dataclass +class PGGraphStorage(BaseGraphStorage): + def __post_init__(self): + self.graph_name = self.namespace or os.environ.get("AGE_GRAPH_NAME", "lightrag") + self.db: PostgreSQLDB | None = None + + @staticmethod + def _normalize_node_id(node_id: str) -> str: + """ + Normalize node ID to ensure special characters are properly handled in Cypher queries. + + Args: + node_id: The original node ID + + Returns: + Normalized node ID suitable for Cypher queries + """ + # Escape backslashes + normalized_id = node_id + normalized_id = normalized_id.replace("\\", "\\\\") + normalized_id = normalized_id.replace('"', '\\"') + return normalized_id + + async def initialize(self): + if self.db is None: + self.db = await ClientManager.get_client() + + # Execute each statement separately and ignore errors + queries = [ + f"SELECT create_graph('{self.graph_name}')", + f"SELECT create_vlabel('{self.graph_name}', 'base');", + f"SELECT create_elabel('{self.graph_name}', 'DIRECTED');", + # f'CREATE INDEX CONCURRENTLY vertex_p_idx ON {self.graph_name}."_ag_label_vertex" (id)', + f'CREATE INDEX CONCURRENTLY vertex_idx_node_id ON {self.graph_name}."_ag_label_vertex" (ag_catalog.agtype_access_operator(properties, \'"entity_id"\'::agtype))', + # f'CREATE INDEX CONCURRENTLY edge_p_idx ON {self.graph_name}."_ag_label_edge" (id)', + f'CREATE INDEX CONCURRENTLY edge_sid_idx ON {self.graph_name}."_ag_label_edge" (start_id)', + f'CREATE INDEX CONCURRENTLY edge_eid_idx ON {self.graph_name}."_ag_label_edge" (end_id)', + f'CREATE INDEX CONCURRENTLY edge_seid_idx ON {self.graph_name}."_ag_label_edge" (start_id,end_id)', + f'CREATE INDEX CONCURRENTLY directed_p_idx ON {self.graph_name}."DIRECTED" (id)', + f'CREATE INDEX CONCURRENTLY directed_eid_idx ON {self.graph_name}."DIRECTED" (end_id)', + f'CREATE INDEX CONCURRENTLY directed_sid_idx ON {self.graph_name}."DIRECTED" (start_id)', + f'CREATE INDEX CONCURRENTLY directed_seid_idx ON {self.graph_name}."DIRECTED" (start_id,end_id)', + f'CREATE INDEX CONCURRENTLY entity_p_idx ON {self.graph_name}."base" (id)', + f'CREATE INDEX CONCURRENTLY entity_idx_node_id ON {self.graph_name}."base" (ag_catalog.agtype_access_operator(properties, \'"entity_id"\'::agtype))', + f'CREATE INDEX CONCURRENTLY entity_node_id_gin_idx ON {self.graph_name}."base" using gin(properties)', + f'ALTER TABLE {self.graph_name}."DIRECTED" CLUSTER ON directed_sid_idx', + ] + + for query in queries: + # Use the new flag to silently ignore "already exists" errors + # at the source, preventing log spam. + await self.db.execute( + query, + upsert=True, + ignore_if_exists=True, # Pass the new flag + with_age=True, + graph_name=self.graph_name, + ) + + async def finalize(self): + if self.db is not None: + await ClientManager.release_client(self.db) + self.db = None + + async def index_done_callback(self) -> None: + # PG handles persistence automatically + pass + + @staticmethod + def _record_to_dict(record: asyncpg.Record) -> dict[str, Any]: + """ + Convert a record returned from an age query to a dictionary + + Args: + record (): a record from an age query result + + Returns: + dict[str, Any]: a dictionary representation of the record where + the dictionary key is the field name and the value is the + value converted to a python type + """ + # result holder + d = {} + + # prebuild a mapping of vertex_id to vertex mappings to be used + # later to build edges + vertices = {} + for k in record.keys(): + v = record[k] + # agtype comes back '{key: value}::type' which must be parsed + if isinstance(v, str) and "::" in v: + if v.startswith("[") and v.endswith("]"): + if "::vertex" not in v: + continue + v = v.replace("::vertex", "") + vertexes = json.loads(v) + for vertex in vertexes: + vertices[vertex["id"]] = vertex.get("properties") + else: + dtype = v.split("::")[-1] + v = v.split("::")[0] + if dtype == "vertex": + vertex = json.loads(v) + vertices[vertex["id"]] = vertex.get("properties") + + # iterate returned fields and parse appropriately + for k in record.keys(): + v = record[k] + if isinstance(v, str) and "::" in v: + if v.startswith("[") and v.endswith("]"): + if "::vertex" in v: + v = v.replace("::vertex", "") + d[k] = json.loads(v) + + elif "::edge" in v: + v = v.replace("::edge", "") + d[k] = json.loads(v) + else: + print("WARNING: unsupported type") + continue + + else: + dtype = v.split("::")[-1] + v = v.split("::")[0] + if dtype == "vertex": + d[k] = json.loads(v) + elif dtype == "edge": + d[k] = json.loads(v) + else: + d[k] = v # Keep as string + + return d + + @staticmethod + def _format_properties( + properties: dict[str, Any], _id: Union[str, None] = None + ) -> str: + """ + Convert a dictionary of properties to a string representation that + can be used in a cypher query insert/merge statement. + + Args: + properties (dict[str,str]): a dictionary containing node/edge properties + _id (Union[str, None]): the id of the node or None if none exists + + Returns: + str: the properties dictionary as a properly formatted string + """ + props = [] + # wrap property key in backticks to escape + for k, v in properties.items(): + prop = f"`{k}`: {json.dumps(v)}" + props.append(prop) + if _id is not None and "id" not in properties: + props.append( + f"id: {json.dumps(_id)}" if isinstance(_id, str) else f"id: {_id}" + ) + return "{" + ", ".join(props) + "}" + + async def _query( + self, + query: str, + readonly: bool = True, + upsert: bool = False, + ) -> list[dict[str, Any]]: + """ + Query the graph by taking a cypher query, converting it to an + age compatible query, executing it and converting the result + + Args: + query (str): a cypher query to be executed + + Returns: + list[dict[str, Any]]: a list of dictionaries containing the result set + """ + try: + if readonly: + data = await self.db.query( + query, + multirows=True, + with_age=True, + graph_name=self.graph_name, + ) + else: + data = await self.db.execute( + query, + upsert=upsert, + with_age=True, + graph_name=self.graph_name, + ) + + except Exception as e: + raise PGGraphQueryException( + { + "message": f"Error executing graph query: {query}", + "wrapped": query, + "detail": str(e), + } + ) from e + + if data is None: + result = [] + # decode records + else: + result = [self._record_to_dict(d) for d in data] + + return result + + async def has_node(self, node_id: str) -> bool: + entity_name_label = self._normalize_node_id(node_id) + + query = """SELECT * FROM cypher('%s', $$ + MATCH (n:base {entity_id: "%s"}) + RETURN count(n) > 0 AS node_exists + $$) AS (node_exists bool)""" % (self.graph_name, entity_name_label) + + single_result = (await self._query(query))[0] + + return single_result["node_exists"] + + async def has_edge(self, source_node_id: str, target_node_id: str) -> bool: + src_label = self._normalize_node_id(source_node_id) + tgt_label = self._normalize_node_id(target_node_id) + + query = """SELECT * FROM cypher('%s', $$ + MATCH (a:base {entity_id: "%s"})-[r]-(b:base {entity_id: "%s"}) + RETURN COUNT(r) > 0 AS edge_exists + $$) AS (edge_exists bool)""" % ( + self.graph_name, + src_label, + tgt_label, + ) + + single_result = (await self._query(query))[0] + + return single_result["edge_exists"] + + async def get_node(self, node_id: str) -> dict[str, str] | None: + """Get node by its label identifier, return only node properties""" + + label = self._normalize_node_id(node_id) + query = """SELECT * FROM cypher('%s', $$ + MATCH (n:base {entity_id: "%s"}) + RETURN n + $$) AS (n agtype)""" % (self.graph_name, label) + record = await self._query(query) + if record: + node = record[0] + node_dict = node["n"]["properties"] + + # Process string result, parse it to JSON dictionary + if isinstance(node_dict, str): + try: + import json + + node_dict = json.loads(node_dict) + except json.JSONDecodeError: + logger.warning(f"Failed to parse node string: {node_dict}") + + return node_dict + return None + + async def node_degree(self, node_id: str) -> int: + label = self._normalize_node_id(node_id) + + query = """SELECT * FROM cypher('%s', $$ + MATCH (n:base {entity_id: "%s"})-[r]-() + RETURN count(r) AS total_edge_count + $$) AS (total_edge_count integer)""" % (self.graph_name, label) + record = (await self._query(query))[0] + if record: + edge_count = int(record["total_edge_count"]) + return edge_count + + async def edge_degree(self, src_id: str, tgt_id: str) -> int: + src_degree = await self.node_degree(src_id) + trg_degree = await self.node_degree(tgt_id) + + # Convert None to 0 for addition + src_degree = 0 if src_degree is None else src_degree + trg_degree = 0 if trg_degree is None else trg_degree + + degrees = int(src_degree) + int(trg_degree) + + return degrees + + async def get_edge( + self, source_node_id: str, target_node_id: str + ) -> dict[str, str] | None: + """Get edge properties between two nodes""" + + src_label = self._normalize_node_id(source_node_id) + tgt_label = self._normalize_node_id(target_node_id) + + query = """SELECT * FROM cypher('%s', $$ + MATCH (a:base {entity_id: "%s"})-[r]-(b:base {entity_id: "%s"}) + RETURN properties(r) as edge_properties + LIMIT 1 + $$) AS (edge_properties agtype)""" % ( + self.graph_name, + src_label, + tgt_label, + ) + record = await self._query(query) + if record and record[0] and record[0]["edge_properties"]: + result = record[0]["edge_properties"] + + # Process string result, parse it to JSON dictionary + if isinstance(result, str): + try: + import json + + result = json.loads(result) + except json.JSONDecodeError: + logger.warning(f"Failed to parse edge string: {result}") + + return result + + async def get_node_edges(self, source_node_id: str) -> list[tuple[str, str]] | None: + """ + Retrieves all edges (relationships) for a particular node identified by its label. + :return: list of dictionaries containing edge information + """ + label = self._normalize_node_id(source_node_id) + + query = """SELECT * FROM cypher('%s', $$ + MATCH (n:base {entity_id: "%s"}) + OPTIONAL MATCH (n)-[]-(connected:base) + RETURN n.entity_id AS source_id, connected.entity_id AS connected_id + $$) AS (source_id text, connected_id text)""" % ( + self.graph_name, + label, + ) + + results = await self._query(query) + edges = [] + for record in results: + source_id = record["source_id"] + connected_id = record["connected_id"] + + if source_id and connected_id: + edges.append((source_id, connected_id)) + + return edges + + @retry( + stop=stop_after_attempt(3), + wait=wait_exponential(multiplier=1, min=4, max=10), + retry=retry_if_exception_type((PGGraphQueryException,)), + ) + async def upsert_node(self, node_id: str, node_data: dict[str, str]) -> None: + """ + Upsert a node in the Neo4j database. + + Args: + node_id: The unique identifier for the node (used as label) + node_data: Dictionary of node properties + """ + if "entity_id" not in node_data: + raise ValueError( + "PostgreSQL: node properties must contain an 'entity_id' field" + ) + + label = self._normalize_node_id(node_id) + properties = self._format_properties(node_data) + + query = """SELECT * FROM cypher('%s', $$ + MERGE (n:base {entity_id: "%s"}) + SET n += %s + RETURN n + $$) AS (n agtype)""" % ( + self.graph_name, + label, + properties, + ) + + try: + await self._query(query, readonly=False, upsert=True) + + except Exception: + logger.error(f"POSTGRES, upsert_node error on node_id: `{node_id}`") + raise + + @retry( + stop=stop_after_attempt(3), + wait=wait_exponential(multiplier=1, min=4, max=10), + retry=retry_if_exception_type((PGGraphQueryException,)), + ) + async def upsert_edge( + self, source_node_id: str, target_node_id: str, edge_data: dict[str, str] + ) -> None: + """ + Upsert an edge and its properties between two nodes identified by their labels. + + Args: + source_node_id (str): Label of the source node (used as identifier) + target_node_id (str): Label of the target node (used as identifier) + edge_data (dict): dictionary of properties to set on the edge + """ + src_label = self._normalize_node_id(source_node_id) + tgt_label = self._normalize_node_id(target_node_id) + edge_properties = self._format_properties(edge_data) + + query = """SELECT * FROM cypher('%s', $$ + MATCH (source:base {entity_id: "%s"}) + WITH source + MATCH (target:base {entity_id: "%s"}) + MERGE (source)-[r:DIRECTED]-(target) + SET r += %s + SET r += %s + RETURN r + $$) AS (r agtype)""" % ( + self.graph_name, + src_label, + tgt_label, + edge_properties, + edge_properties, # https://github.com/HKUDS/LightRAG/issues/1438#issuecomment-2826000195 + ) + + try: + await self._query(query, readonly=False, upsert=True) + + except Exception: + logger.error( + f"POSTGRES, upsert_edge error on edge: `{source_node_id}`-`{target_node_id}`" + ) + raise + + async def delete_node(self, node_id: str) -> None: + """ + Delete a node from the graph. + + Args: + node_id (str): The ID of the node to delete. + """ + label = self._normalize_node_id(node_id) + + query = """SELECT * FROM cypher('%s', $$ + MATCH (n:base {entity_id: "%s"}) + DETACH DELETE n + $$) AS (n agtype)""" % (self.graph_name, label) + + try: + await self._query(query, readonly=False) + except Exception as e: + logger.error("Error during node deletion: {%s}", e) + raise + + async def remove_nodes(self, node_ids: list[str]) -> None: + """ + Remove multiple nodes from the graph. + + Args: + node_ids (list[str]): A list of node IDs to remove. + """ + node_ids = [self._normalize_node_id(node_id) for node_id in node_ids] + node_id_list = ", ".join([f'"{node_id}"' for node_id in node_ids]) + + query = """SELECT * FROM cypher('%s', $$ + MATCH (n:base) + WHERE n.entity_id IN [%s] + DETACH DELETE n + $$) AS (n agtype)""" % (self.graph_name, node_id_list) + + try: + await self._query(query, readonly=False) + except Exception as e: + logger.error("Error during node removal: {%s}", e) + raise + + async def remove_edges(self, edges: list[tuple[str, str]]) -> None: + """ + Remove multiple edges from the graph. + + Args: + edges (list[tuple[str, str]]): A list of edges to remove, where each edge is a tuple of (source_node_id, target_node_id). + """ + for source, target in edges: + src_label = self._normalize_node_id(source) + tgt_label = self._normalize_node_id(target) + + query = """SELECT * FROM cypher('%s', $$ + MATCH (a:base {entity_id: "%s"})-[r]-(b:base {entity_id: "%s"}) + DELETE r + $$) AS (r agtype)""" % (self.graph_name, src_label, tgt_label) + + try: + await self._query(query, readonly=False) + logger.debug(f"Deleted edge from '{source}' to '{target}'") + except Exception as e: + logger.error(f"Error during edge deletion: {str(e)}") + raise + + async def get_nodes_batch(self, node_ids: list[str]) -> dict[str, dict]: + """ + Retrieve multiple nodes in one query using UNWIND. + + Args: + node_ids: List of node entity IDs to fetch. + + Returns: + A dictionary mapping each node_id to its node data (or None if not found). + """ + if not node_ids: + return {} + + # Format node IDs for the query + formatted_ids = ", ".join( + ['"' + self._normalize_node_id(node_id) + '"' for node_id in node_ids] + ) + + query = """SELECT * FROM cypher('%s', $$ + UNWIND [%s] AS node_id + MATCH (n:base {entity_id: node_id}) + RETURN node_id, n + $$) AS (node_id text, n agtype)""" % (self.graph_name, formatted_ids) + + results = await self._query(query) + + # Build result dictionary + nodes_dict = {} + for result in results: + if result["node_id"] and result["n"]: + node_dict = result["n"]["properties"] + + # Process string result, parse it to JSON dictionary + if isinstance(node_dict, str): + try: + import json + + node_dict = json.loads(node_dict) + except json.JSONDecodeError: + logger.warning( + f"Failed to parse node string in batch: {node_dict}" + ) + + # Remove the 'base' label if present in a 'labels' property + if "labels" in node_dict: + node_dict["labels"] = [ + label for label in node_dict["labels"] if label != "base" + ] + nodes_dict[result["node_id"]] = node_dict + + return nodes_dict + + async def node_degrees_batch(self, node_ids: list[str]) -> dict[str, int]: + """ + Retrieve the degree for multiple nodes in a single query using UNWIND. + Calculates the total degree by counting distinct relationships. + Uses separate queries for outgoing and incoming edges. + + Args: + node_ids: List of node labels (entity_id values) to look up. + + Returns: + A dictionary mapping each node_id to its degree (total number of relationships). + If a node is not found, its degree will be set to 0. + """ + if not node_ids: + return {} + + # Format node IDs for the query + formatted_ids = ", ".join( + ['"' + self._normalize_node_id(node_id) + '"' for node_id in node_ids] + ) + + outgoing_query = """SELECT * FROM cypher('%s', $$ + UNWIND [%s] AS node_id + MATCH (n:base {entity_id: node_id}) + OPTIONAL MATCH (n)-[r]->(a) + RETURN node_id, count(a) AS out_degree + $$) AS (node_id text, out_degree bigint)""" % ( + self.graph_name, + formatted_ids, + ) + + incoming_query = """SELECT * FROM cypher('%s', $$ + UNWIND [%s] AS node_id + MATCH (n:base {entity_id: node_id}) + OPTIONAL MATCH (n)<-[r]-(b) + RETURN node_id, count(b) AS in_degree + $$) AS (node_id text, in_degree bigint)""" % ( + self.graph_name, + formatted_ids, + ) + + outgoing_results = await self._query(outgoing_query) + incoming_results = await self._query(incoming_query) + + out_degrees = {} + in_degrees = {} + + for result in outgoing_results: + if result["node_id"] is not None: + out_degrees[result["node_id"]] = int(result["out_degree"]) + + for result in incoming_results: + if result["node_id"] is not None: + in_degrees[result["node_id"]] = int(result["in_degree"]) + + degrees_dict = {} + for node_id in node_ids: + out_degree = out_degrees.get(node_id, 0) + in_degree = in_degrees.get(node_id, 0) + degrees_dict[node_id] = out_degree + in_degree + + return degrees_dict + + async def edge_degrees_batch( + self, edges: list[tuple[str, str]] + ) -> dict[tuple[str, str], int]: + """ + Calculate the combined degree for each edge (sum of the source and target node degrees) + in batch using the already implemented node_degrees_batch. + + Args: + edges: List of (source_node_id, target_node_id) tuples + + Returns: + Dictionary mapping edge tuples to their combined degrees + """ + if not edges: + return {} + + # Use node_degrees_batch to get all node degrees efficiently + all_nodes = set() + for src, tgt in edges: + all_nodes.add(src) + all_nodes.add(tgt) + + node_degrees = await self.node_degrees_batch(list(all_nodes)) + + # Calculate edge degrees + edge_degrees_dict = {} + for src, tgt in edges: + src_degree = node_degrees.get(src, 0) + tgt_degree = node_degrees.get(tgt, 0) + edge_degrees_dict[(src, tgt)] = src_degree + tgt_degree + + return edge_degrees_dict + + async def get_edges_batch( + self, pairs: list[dict[str, str]] + ) -> dict[tuple[str, str], dict]: + """ + Retrieve edge properties for multiple (src, tgt) pairs in one query. + Get forward and backward edges seperately and merge them before return + + Args: + pairs: List of dictionaries, e.g. [{"src": "node1", "tgt": "node2"}, ...] + + Returns: + A dictionary mapping (src, tgt) tuples to their edge properties. + """ + if not pairs: + return {} + + src_nodes = [] + tgt_nodes = [] + for pair in pairs: + src_nodes.append(self._normalize_node_id(pair["src"])) + tgt_nodes.append(self._normalize_node_id(pair["tgt"])) + + src_array = ", ".join([f'"{src}"' for src in src_nodes]) + tgt_array = ", ".join([f'"{tgt}"' for tgt in tgt_nodes]) + + forward_query = f"""SELECT * FROM cypher('{self.graph_name}', $$ + WITH [{src_array}] AS sources, [{tgt_array}] AS targets + UNWIND range(0, size(sources)-1) AS i + MATCH (a:base {{entity_id: sources[i]}})-[r:DIRECTED]->(b:base {{entity_id: targets[i]}}) + RETURN sources[i] AS source, targets[i] AS target, properties(r) AS edge_properties + $$) AS (source text, target text, edge_properties agtype)""" + + backward_query = f"""SELECT * FROM cypher('{self.graph_name}', $$ + WITH [{src_array}] AS sources, [{tgt_array}] AS targets + UNWIND range(0, size(sources)-1) AS i + MATCH (a:base {{entity_id: sources[i]}})<-[r:DIRECTED]-(b:base {{entity_id: targets[i]}}) + RETURN sources[i] AS source, targets[i] AS target, properties(r) AS edge_properties + $$) AS (source text, target text, edge_properties agtype)""" + + forward_results = await self._query(forward_query) + backward_results = await self._query(backward_query) + + edges_dict = {} + + for result in forward_results: + if result["source"] and result["target"] and result["edge_properties"]: + edge_props = result["edge_properties"] + + # Process string result, parse it to JSON dictionary + if isinstance(edge_props, str): + try: + import json + + edge_props = json.loads(edge_props) + except json.JSONDecodeError: + logger.warning( + f"Failed to parse edge properties string: {edge_props}" + ) + continue + + edges_dict[(result["source"], result["target"])] = edge_props + + for result in backward_results: + if result["source"] and result["target"] and result["edge_properties"]: + edge_props = result["edge_properties"] + + # Process string result, parse it to JSON dictionary + if isinstance(edge_props, str): + try: + import json + + edge_props = json.loads(edge_props) + except json.JSONDecodeError: + logger.warning( + f"Failed to parse edge properties string: {edge_props}" + ) + continue + + edges_dict[(result["source"], result["target"])] = edge_props + + return edges_dict + + async def get_nodes_edges_batch( + self, node_ids: list[str] + ) -> dict[str, list[tuple[str, str]]]: + """ + Get all edges (both outgoing and incoming) for multiple nodes in a single batch operation. + + Args: + node_ids: List of node IDs to get edges for + + Returns: + Dictionary mapping node IDs to lists of (source, target) edge tuples + """ + if not node_ids: + return {} + + # Format node IDs for the query + formatted_ids = ", ".join( + ['"' + self._normalize_node_id(node_id) + '"' for node_id in node_ids] + ) + + outgoing_query = """SELECT * FROM cypher('%s', $$ + UNWIND [%s] AS node_id + MATCH (n:base {entity_id: node_id}) + OPTIONAL MATCH (n:base)-[]->(connected:base) + RETURN node_id, connected.entity_id AS connected_id + $$) AS (node_id text, connected_id text)""" % ( + self.graph_name, + formatted_ids, + ) + + incoming_query = """SELECT * FROM cypher('%s', $$ + UNWIND [%s] AS node_id + MATCH (n:base {entity_id: node_id}) + OPTIONAL MATCH (n:base)<-[]-(connected:base) + RETURN node_id, connected.entity_id AS connected_id + $$) AS (node_id text, connected_id text)""" % ( + self.graph_name, + formatted_ids, + ) + + outgoing_results = await self._query(outgoing_query) + incoming_results = await self._query(incoming_query) + + nodes_edges_dict = {node_id: [] for node_id in node_ids} + + for result in outgoing_results: + if result["node_id"] and result["connected_id"]: + nodes_edges_dict[result["node_id"]].append( + (result["node_id"], result["connected_id"]) + ) + + for result in incoming_results: + if result["node_id"] and result["connected_id"]: + nodes_edges_dict[result["node_id"]].append( + (result["connected_id"], result["node_id"]) + ) + + return nodes_edges_dict + + async def get_all_labels(self) -> list[str]: + """ + Get all labels (node IDs) in the graph. + + Returns: + list[str]: A list of all labels in the graph. + """ + query = ( + """SELECT * FROM cypher('%s', $$ + MATCH (n:base) + WHERE n.entity_id IS NOT NULL + RETURN DISTINCT n.entity_id AS label + ORDER BY n.entity_id + $$) AS (label text)""" + % self.graph_name + ) + + results = await self._query(query) + labels = [] + for result in results: + if result and isinstance(result, dict) and "label" in result: + labels.append(result["label"]) + return labels + + async def _bfs_subgraph( + self, node_label: str, max_depth: int, max_nodes: int + ) -> KnowledgeGraph: + """ + Implements a true breadth-first search algorithm for subgraph retrieval. + This method is used as a fallback when the standard Cypher query is too slow + or when we need to guarantee BFS ordering. + + Args: + node_label: Label of the starting node + max_depth: Maximum depth of the subgraph + max_nodes: Maximum number of nodes to return + + Returns: + KnowledgeGraph object containing nodes and edges + """ + from collections import deque + + result = KnowledgeGraph() + visited_nodes = set() + visited_node_ids = set() + visited_edges = set() + visited_edge_pairs = set() + + # Get starting node data + label = self._normalize_node_id(node_label) + query = """SELECT * FROM cypher('%s', $$ + MATCH (n:base {entity_id: "%s"}) + RETURN id(n) as node_id, n + $$) AS (node_id bigint, n agtype)""" % (self.graph_name, label) + + node_result = await self._query(query) + if not node_result or not node_result[0].get("n"): + return result + + # Create initial KnowledgeGraphNode + start_node_data = node_result[0]["n"] + entity_id = start_node_data["properties"]["entity_id"] + internal_id = str(start_node_data["id"]) + + start_node = KnowledgeGraphNode( + id=internal_id, + labels=[entity_id], + properties=start_node_data["properties"], + ) + + # Initialize BFS queue, each element is a tuple of (node, depth) + queue = deque([(start_node, 0)]) + + visited_nodes.add(entity_id) + visited_node_ids.add(internal_id) + result.nodes.append(start_node) + + result.is_truncated = False + + # BFS search main loop + while queue: + # Get all nodes at the current depth + current_level_nodes = [] + current_depth = None + + # Determine current depth + if queue: + current_depth = queue[0][1] + + # Extract all nodes at current depth from the queue + while queue and queue[0][1] == current_depth: + node, depth = queue.popleft() + if depth > max_depth: + continue + current_level_nodes.append(node) + + if not current_level_nodes: + continue + + # Check depth limit + if current_depth > max_depth: + continue + + # Prepare node IDs list + node_ids = [node.labels[0] for node in current_level_nodes] + formatted_ids = ", ".join( + [f'"{self._normalize_node_id(node_id)}"' for node_id in node_ids] + ) + + # Construct batch query for outgoing edges + outgoing_query = f"""SELECT * FROM cypher('{self.graph_name}', $$ + UNWIND [{formatted_ids}] AS node_id + MATCH (n:base {{entity_id: node_id}}) + OPTIONAL MATCH (n)-[r]->(neighbor:base) + RETURN node_id AS current_id, + id(n) AS current_internal_id, + id(neighbor) AS neighbor_internal_id, + neighbor.entity_id AS neighbor_id, + id(r) AS edge_id, + r, + neighbor, + true AS is_outgoing + $$) AS (current_id text, current_internal_id bigint, neighbor_internal_id bigint, + neighbor_id text, edge_id bigint, r agtype, neighbor agtype, is_outgoing bool)""" + + # Construct batch query for incoming edges + incoming_query = f"""SELECT * FROM cypher('{self.graph_name}', $$ + UNWIND [{formatted_ids}] AS node_id + MATCH (n:base {{entity_id: node_id}}) + OPTIONAL MATCH (n)<-[r]-(neighbor:base) + RETURN node_id AS current_id, + id(n) AS current_internal_id, + id(neighbor) AS neighbor_internal_id, + neighbor.entity_id AS neighbor_id, + id(r) AS edge_id, + r, + neighbor, + false AS is_outgoing + $$) AS (current_id text, current_internal_id bigint, neighbor_internal_id bigint, + neighbor_id text, edge_id bigint, r agtype, neighbor agtype, is_outgoing bool)""" + + # Execute queries + outgoing_results = await self._query(outgoing_query) + incoming_results = await self._query(incoming_query) + + # Combine results + neighbors = outgoing_results + incoming_results + + # Create mapping from node ID to node object + node_map = {node.labels[0]: node for node in current_level_nodes} + + # Process all results in a single loop + for record in neighbors: + if not record.get("neighbor") or not record.get("r"): + continue + + # Get current node information + current_entity_id = record["current_id"] + current_node = node_map[current_entity_id] + + # Get neighbor node information + neighbor_entity_id = record["neighbor_id"] + neighbor_internal_id = str(record["neighbor_internal_id"]) + is_outgoing = record["is_outgoing"] + + # Determine edge direction + if is_outgoing: + source_id = current_node.id + target_id = neighbor_internal_id + else: + source_id = neighbor_internal_id + target_id = current_node.id + + if not neighbor_entity_id: + continue + + # Get edge and node information + b_node = record["neighbor"] + rel = record["r"] + edge_id = str(record["edge_id"]) + + # Create neighbor node object + neighbor_node = KnowledgeGraphNode( + id=neighbor_internal_id, + labels=[neighbor_entity_id], + properties=b_node["properties"], + ) + + # Sort entity_ids to ensure (A,B) and (B,A) are treated as the same edge + sorted_pair = tuple(sorted([current_entity_id, neighbor_entity_id])) + + # Create edge object + edge = KnowledgeGraphEdge( + id=edge_id, + type=rel["label"], + source=source_id, + target=target_id, + properties=rel["properties"], + ) + + if neighbor_internal_id in visited_node_ids: + # Add backward edge if neighbor node is already visited + if ( + edge_id not in visited_edges + and sorted_pair not in visited_edge_pairs + ): + result.edges.append(edge) + visited_edges.add(edge_id) + visited_edge_pairs.add(sorted_pair) + else: + if len(visited_node_ids) < max_nodes and current_depth < max_depth: + # Add new node to result and queue + result.nodes.append(neighbor_node) + visited_nodes.add(neighbor_entity_id) + visited_node_ids.add(neighbor_internal_id) + + # Add node to queue with incremented depth + queue.append((neighbor_node, current_depth + 1)) + + # Add forward edge + if ( + edge_id not in visited_edges + and sorted_pair not in visited_edge_pairs + ): + result.edges.append(edge) + visited_edges.add(edge_id) + visited_edge_pairs.add(sorted_pair) + else: + if current_depth < max_depth: + result.is_truncated = True + + return result + + async def get_knowledge_graph( + self, + node_label: str, + max_depth: int = 3, + max_nodes: int = MAX_GRAPH_NODES, + ) -> KnowledgeGraph: + """ + Retrieve a connected subgraph of nodes where the label includes the specified `node_label`. + + Args: + node_label: Label of the starting node, * means all nodes + max_depth: Maximum depth of the subgraph, Defaults to 3 + max_nodes: Maxiumu nodes to return, Defaults to 1000 + + Returns: + KnowledgeGraph object containing nodes and edges, with an is_truncated flag + indicating whether the graph was truncated due to max_nodes limit + """ + kg = KnowledgeGraph() + + # Handle wildcard query - get all nodes + if node_label == "*": + # First check total node count to determine if graph should be truncated + count_query = f"""SELECT * FROM cypher('{self.graph_name}', $$ + MATCH (n:base) + RETURN count(distinct n) AS total_nodes + $$) AS (total_nodes bigint)""" + + count_result = await self._query(count_query) + total_nodes = count_result[0]["total_nodes"] if count_result else 0 + is_truncated = total_nodes > max_nodes + + # Get max_nodes with highest degrees + query_nodes = f"""SELECT * FROM cypher('{self.graph_name}', $$ + MATCH (n:base) + OPTIONAL MATCH (n)-[r]->() + RETURN id(n) as node_id, count(r) as degree + $$) AS (node_id BIGINT, degree BIGINT) + ORDER BY degree DESC + LIMIT {max_nodes}""" + node_results = await self._query(query_nodes) + + node_ids = [str(result["node_id"]) for result in node_results] + + logger.info(f"Total nodes: {total_nodes}, Selected nodes: {len(node_ids)}") + + if node_ids: + formatted_ids = ", ".join(node_ids) + # Construct batch query for subgraph within max_nodes + query = f"""SELECT * FROM cypher('{self.graph_name}', $$ + WITH [{formatted_ids}] AS node_ids + MATCH (a) + WHERE id(a) IN node_ids + OPTIONAL MATCH (a)-[r]->(b) + WHERE id(b) IN node_ids + RETURN a, r, b + $$) AS (a AGTYPE, r AGTYPE, b AGTYPE)""" + results = await self._query(query) + + # Process query results, deduplicate nodes and edges + nodes_dict = {} + edges_dict = {} + for result in results: + # Process node a + if result.get("a") and isinstance(result["a"], dict): + node_a = result["a"] + node_id = str(node_a["id"]) + if node_id not in nodes_dict and "properties" in node_a: + nodes_dict[node_id] = KnowledgeGraphNode( + id=node_id, + labels=[node_a["properties"]["entity_id"]], + properties=node_a["properties"], + ) + + # Process node b + if result.get("b") and isinstance(result["b"], dict): + node_b = result["b"] + node_id = str(node_b["id"]) + if node_id not in nodes_dict and "properties" in node_b: + nodes_dict[node_id] = KnowledgeGraphNode( + id=node_id, + labels=[node_b["properties"]["entity_id"]], + properties=node_b["properties"], + ) + + # Process edge r + if result.get("r") and isinstance(result["r"], dict): + edge = result["r"] + edge_id = str(edge["id"]) + if edge_id not in edges_dict: + edges_dict[edge_id] = KnowledgeGraphEdge( + id=edge_id, + type=edge["label"], + source=str(edge["start_id"]), + target=str(edge["end_id"]), + properties=edge["properties"], + ) + + kg = KnowledgeGraph( + nodes=list(nodes_dict.values()), + edges=list(edges_dict.values()), + is_truncated=is_truncated, + ) + else: + # For single node query, use BFS algorithm + kg = await self._bfs_subgraph(node_label, max_depth, max_nodes) + + logger.info( + f"Subgraph query successful | Node count: {len(kg.nodes)} | Edge count: {len(kg.edges)}" + ) + else: + # For non-wildcard queries, use the BFS algorithm + kg = await self._bfs_subgraph(node_label, max_depth, max_nodes) + logger.info( + f"Subgraph query for '{node_label}' successful | Node count: {len(kg.nodes)} | Edge count: {len(kg.edges)}" + ) + + return kg + + async def drop(self) -> dict[str, str]: + """Drop the storage""" + try: + drop_query = f"""SELECT * FROM cypher('{self.graph_name}', $$ + MATCH (n) + DETACH DELETE n + $$) AS (result agtype)""" + + await self._query(drop_query, readonly=False) + return {"status": "success", "message": "graph data dropped"} + except Exception as e: + logger.error(f"Error dropping graph: {e}") + return {"status": "error", "message": str(e)} + + +NAMESPACE_TABLE_MAP = { + NameSpace.KV_STORE_FULL_DOCS: "LIGHTRAG_DOC_FULL", + NameSpace.KV_STORE_TEXT_CHUNKS: "LIGHTRAG_DOC_CHUNKS", + NameSpace.VECTOR_STORE_CHUNKS: "LIGHTRAG_DOC_CHUNKS", + NameSpace.VECTOR_STORE_ENTITIES: "LIGHTRAG_VDB_ENTITY", + NameSpace.VECTOR_STORE_RELATIONSHIPS: "LIGHTRAG_VDB_RELATION", + NameSpace.DOC_STATUS: "LIGHTRAG_DOC_STATUS", + NameSpace.KV_STORE_LLM_RESPONSE_CACHE: "LIGHTRAG_LLM_CACHE", +} + + +def namespace_to_table_name(namespace: str) -> str: + for k, v in NAMESPACE_TABLE_MAP.items(): + if is_namespace(namespace, k): + return v + + +TABLES = { + "LIGHTRAG_DOC_FULL": { + "ddl": """CREATE TABLE LIGHTRAG_DOC_FULL ( + id VARCHAR(255), + workspace VARCHAR(255), + doc_name VARCHAR(1024), + content TEXT, + meta JSONB, + create_time TIMESTAMP(0), + update_time TIMESTAMP(0), + CONSTRAINT LIGHTRAG_DOC_FULL_PK PRIMARY KEY (workspace, id) + )""" + }, + "LIGHTRAG_DOC_CHUNKS": { + "ddl": """CREATE TABLE LIGHTRAG_DOC_CHUNKS ( + id VARCHAR(255), + workspace VARCHAR(255), + full_doc_id VARCHAR(256), + chunk_order_index INTEGER, + tokens INTEGER, + content TEXT, + content_vector VECTOR, + file_path VARCHAR(256), + create_time TIMESTAMP(0) WITH TIME ZONE, + update_time TIMESTAMP(0) WITH TIME ZONE, + CONSTRAINT LIGHTRAG_DOC_CHUNKS_PK PRIMARY KEY (workspace, id) + )""" + }, + "LIGHTRAG_VDB_ENTITY": { + "ddl": """CREATE TABLE LIGHTRAG_VDB_ENTITY ( + id VARCHAR(255), + workspace VARCHAR(255), + entity_name VARCHAR(255), + content TEXT, + content_vector VECTOR, + create_time TIMESTAMP(0) WITH TIME ZONE, + update_time TIMESTAMP(0) WITH TIME ZONE, + chunk_ids VARCHAR(255)[] NULL, + file_path TEXT NULL, + CONSTRAINT LIGHTRAG_VDB_ENTITY_PK PRIMARY KEY (workspace, id) + )""" + }, + "LIGHTRAG_VDB_RELATION": { + "ddl": """CREATE TABLE LIGHTRAG_VDB_RELATION ( + id VARCHAR(255), + workspace VARCHAR(255), + source_id VARCHAR(256), + target_id VARCHAR(256), + content TEXT, + content_vector VECTOR, + create_time TIMESTAMP(0) WITH TIME ZONE, + update_time TIMESTAMP(0) WITH TIME ZONE, + chunk_ids VARCHAR(255)[] NULL, + file_path TEXT NULL, + CONSTRAINT LIGHTRAG_VDB_RELATION_PK PRIMARY KEY (workspace, id) + )""" + }, + "LIGHTRAG_LLM_CACHE": { + "ddl": """CREATE TABLE LIGHTRAG_LLM_CACHE ( + workspace varchar(255) NOT NULL, + id varchar(255) NOT NULL, + mode varchar(32) NOT NULL, + original_prompt TEXT, + return_value TEXT, + chunk_id VARCHAR(255) NULL, + create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + update_time TIMESTAMP, + CONSTRAINT LIGHTRAG_LLM_CACHE_PK PRIMARY KEY (workspace, mode, id) + )""" + }, + "LIGHTRAG_DOC_STATUS": { + "ddl": """CREATE TABLE LIGHTRAG_DOC_STATUS ( + workspace varchar(255) NOT NULL, + id varchar(255) NOT NULL, + content TEXT NULL, + content_summary varchar(255) NULL, + content_length int4 NULL, + chunks_count int4 NULL, + status varchar(64) NULL, + file_path TEXT NULL, + created_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NULL, + updated_at timestamp with time zone DEFAULT CURRENT_TIMESTAMP NULL, + CONSTRAINT LIGHTRAG_DOC_STATUS_PK PRIMARY KEY (workspace, id) + )""" + }, +} + + +SQL_TEMPLATES = { + # SQL for KVStorage + "get_by_id_full_docs": """SELECT id, COALESCE(content, '') as content + FROM LIGHTRAG_DOC_FULL WHERE workspace=$1 AND id=$2 + """, + "get_by_id_text_chunks": """SELECT id, tokens, COALESCE(content, '') as content, + chunk_order_index, full_doc_id, file_path + FROM LIGHTRAG_DOC_CHUNKS WHERE workspace=$1 AND id=$2 + """, + "get_by_id_llm_response_cache": """SELECT id, original_prompt, COALESCE(return_value, '') as "return", mode, chunk_id + FROM LIGHTRAG_LLM_CACHE WHERE workspace=$1 AND mode=$2 + """, + "get_by_mode_id_llm_response_cache": """SELECT id, original_prompt, COALESCE(return_value, '') as "return", mode, chunk_id + FROM LIGHTRAG_LLM_CACHE WHERE workspace=$1 AND mode=$2 AND id=$3 + """, + "get_by_ids_full_docs": """SELECT id, COALESCE(content, '') as content + FROM LIGHTRAG_DOC_FULL WHERE workspace=$1 AND id IN ({ids}) + """, + "get_by_ids_text_chunks": """SELECT id, tokens, COALESCE(content, '') as content, + chunk_order_index, full_doc_id, file_path + FROM LIGHTRAG_DOC_CHUNKS WHERE workspace=$1 AND id IN ({ids}) + """, + "get_by_ids_llm_response_cache": """SELECT id, original_prompt, COALESCE(return_value, '') as "return", mode, chunk_id + FROM LIGHTRAG_LLM_CACHE WHERE workspace=$1 AND mode= IN ({ids}) + """, + "filter_keys": "SELECT id FROM {table_name} WHERE workspace=$1 AND id IN ({ids})", + "upsert_doc_full": """INSERT INTO LIGHTRAG_DOC_FULL (id, content, workspace) + VALUES ($1, $2, $3) + ON CONFLICT (workspace,id) DO UPDATE + SET content = $2, update_time = CURRENT_TIMESTAMP + """, + "upsert_llm_response_cache": """INSERT INTO LIGHTRAG_LLM_CACHE(workspace,id,original_prompt,return_value,mode,chunk_id) + VALUES ($1, $2, $3, $4, $5, $6) + ON CONFLICT (workspace,mode,id) DO UPDATE + SET original_prompt = EXCLUDED.original_prompt, + return_value=EXCLUDED.return_value, + mode=EXCLUDED.mode, + chunk_id=EXCLUDED.chunk_id, + update_time = CURRENT_TIMESTAMP + """, + "upsert_chunk": """INSERT INTO LIGHTRAG_DOC_CHUNKS (workspace, id, tokens, + chunk_order_index, full_doc_id, content, content_vector, file_path, + create_time, update_time) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) + ON CONFLICT (workspace,id) DO UPDATE + SET tokens=EXCLUDED.tokens, + chunk_order_index=EXCLUDED.chunk_order_index, + full_doc_id=EXCLUDED.full_doc_id, + content = EXCLUDED.content, + content_vector=EXCLUDED.content_vector, + file_path=EXCLUDED.file_path, + update_time = EXCLUDED.update_time + """, + # SQL for VectorStorage + "upsert_entity": """INSERT INTO LIGHTRAG_VDB_ENTITY (workspace, id, entity_name, content, + content_vector, chunk_ids, file_path, create_time, update_time) + VALUES ($1, $2, $3, $4, $5, $6::varchar[], $7, $8, $9) + ON CONFLICT (workspace,id) DO UPDATE + SET entity_name=EXCLUDED.entity_name, + content=EXCLUDED.content, + content_vector=EXCLUDED.content_vector, + chunk_ids=EXCLUDED.chunk_ids, + file_path=EXCLUDED.file_path, + update_time=EXCLUDED.update_time + """, + "upsert_relationship": """INSERT INTO LIGHTRAG_VDB_RELATION (workspace, id, source_id, + target_id, content, content_vector, chunk_ids, file_path, create_time, update_time) + VALUES ($1, $2, $3, $4, $5, $6, $7::varchar[], $8, $9, $10) + ON CONFLICT (workspace,id) DO UPDATE + SET source_id=EXCLUDED.source_id, + target_id=EXCLUDED.target_id, + content=EXCLUDED.content, + content_vector=EXCLUDED.content_vector, + chunk_ids=EXCLUDED.chunk_ids, + file_path=EXCLUDED.file_path, + update_time = EXCLUDED.update_time + """, + "relationships": """ + WITH relevant_chunks AS ( + SELECT id as chunk_id + FROM LIGHTRAG_DOC_CHUNKS + WHERE $2::varchar[] IS NULL OR full_doc_id = ANY($2::varchar[]) + ) + SELECT source_id as src_id, target_id as tgt_id, EXTRACT(EPOCH FROM create_time)::BIGINT as created_at + FROM ( + SELECT r.id, r.source_id, r.target_id, r.create_time, 1 - (r.content_vector <=> '[{embedding_string}]'::vector) as distance + FROM LIGHTRAG_VDB_RELATION r + JOIN relevant_chunks c ON c.chunk_id = ANY(r.chunk_ids) + WHERE r.workspace=$1 + ) filtered + WHERE distance>$3 + ORDER BY distance DESC + LIMIT $4 + """, + "entities": """ + WITH relevant_chunks AS ( + SELECT id as chunk_id + FROM LIGHTRAG_DOC_CHUNKS + WHERE $2::varchar[] IS NULL OR full_doc_id = ANY($2::varchar[]) + ) + SELECT entity_name, EXTRACT(EPOCH FROM create_time)::BIGINT as created_at FROM + ( + SELECT e.id, e.entity_name, e.create_time, 1 - (e.content_vector <=> '[{embedding_string}]'::vector) as distance + FROM LIGHTRAG_VDB_ENTITY e + JOIN relevant_chunks c ON c.chunk_id = ANY(e.chunk_ids) + WHERE e.workspace=$1 + ) as chunk_distances + WHERE distance>$3 + ORDER BY distance DESC + LIMIT $4 + """, + "chunks": """ + WITH relevant_chunks AS ( + SELECT id as chunk_id + FROM LIGHTRAG_DOC_CHUNKS + WHERE $2::varchar[] IS NULL OR full_doc_id = ANY($2::varchar[]) + ) + SELECT id, content, file_path, EXTRACT(EPOCH FROM create_time)::BIGINT as created_at FROM + ( + SELECT id, content, file_path, create_time, 1 - (content_vector <=> '[{embedding_string}]'::vector) as distance + FROM LIGHTRAG_DOC_CHUNKS + WHERE workspace=$1 + AND id IN (SELECT chunk_id FROM relevant_chunks) + ) as chunk_distances + WHERE distance>$3 + ORDER BY distance DESC + LIMIT $4 + """, + # DROP tables + "drop_specifiy_table_workspace": """ + DELETE FROM {table_name} WHERE workspace=$1 + """, +} diff --git a/dsLightRag/Test/T1_WriteToPg.py b/dsLightRag/Test/T1_WriteToPg.py index 45e596b7..58aedb6c 100644 --- a/dsLightRag/Test/T1_WriteToPg.py +++ b/dsLightRag/Test/T1_WriteToPg.py @@ -21,7 +21,7 @@ logging.basicConfig(format="%(levelname)s:%(message)s", level=logging.INFO) async def main(): try: - rag = await initialize_pg_rag(WORKING_DIR=WORKING_DIR,namespace_prefix='huanghai') + rag = await initialize_pg_rag(WORKING_DIR=WORKING_DIR) with open(f"../Txt/sushi.txt", "r", encoding="utf-8") as f: await rag.ainsert(f.read()) finally: diff --git a/dsLightRag/Util/LightRagUtil.py b/dsLightRag/Util/LightRagUtil.py index 0a37a96b..653defca 100644 --- a/dsLightRag/Util/LightRagUtil.py +++ b/dsLightRag/Util/LightRagUtil.py @@ -152,7 +152,7 @@ os.environ["POSTGRES_PASSWORD"] = POSTGRES_PASSWORD os.environ["POSTGRES_DATABASE"] = POSTGRES_DATABASE -async def initialize_pg_rag(WORKING_DIR, namespace_prefix): +async def initialize_pg_rag(WORKING_DIR): rag = LightRAG( working_dir=WORKING_DIR, llm_model_func=llm_model_func, @@ -170,7 +170,7 @@ async def initialize_pg_rag(WORKING_DIR, namespace_prefix): graph_storage="PGGraphStorage", vector_storage="PGVectorStorage", auto_manage_storages_states=False, - namespace_prefix=namespace_prefix, + workspace='dsideal' ) await rag.initialize_storages()