cleanup kg

This commit is contained in:
Yannick Stephan
2025-02-20 13:39:46 +01:00
parent 38dc2466da
commit 4923f5c1d7
2 changed files with 25 additions and 23 deletions

View File

@@ -134,3 +134,25 @@ STORAGES = {
"FaissVectorDBStorage": ".kg.faiss_impl", "FaissVectorDBStorage": ".kg.faiss_impl",
"QdrantVectorDBStorage": ".kg.qdrant_impl", "QdrantVectorDBStorage": ".kg.qdrant_impl",
} }
def verify_storage_implementation(
storage_type: str, storage_name: str
) -> None:
"""Verify if storage implementation is compatible with specified storage type
Args:
storage_type: Storage type (KV_STORAGE, GRAPH_STORAGE etc.)
storage_name: Storage implementation name
Raises:
ValueError: If storage implementation is incompatible or missing required methods
"""
if storage_type not in STORAGE_IMPLEMENTATIONS:
raise ValueError(f"Unknown storage type: {storage_type}")
storage_info = STORAGE_IMPLEMENTATIONS[storage_type]
if storage_name not in storage_info["implementations"]:
raise ValueError(
f"Storage implementation '{storage_name}' is not compatible with {storage_type}. "
f"Compatible implementations are: {', '.join(storage_info['implementations'])}"
)

View File

@@ -8,7 +8,7 @@ from datetime import datetime
from functools import partial from functools import partial
from typing import Any, AsyncIterator, Callable, Iterator, cast, final from typing import Any, AsyncIterator, Callable, Iterator, cast, final
from lightrag.kg import STORAGE_ENV_REQUIREMENTS, STORAGE_IMPLEMENTATIONS, STORAGES from lightrag.kg import STORAGE_ENV_REQUIREMENTS, STORAGES, verify_storage_implementation
from .base import ( from .base import (
BaseGraphStorage, BaseGraphStorage,
@@ -44,6 +44,7 @@ from .utils import (
encode_string_by_tiktoken, encode_string_by_tiktoken,
) )
# TODO: TO REMOVE @Yannick
config = configparser.ConfigParser() config = configparser.ConfigParser()
config.read("config.ini", "utf-8") config.read("config.ini", "utf-8")
@@ -272,7 +273,7 @@ class LightRAG:
for storage_type, storage_name in storage_configs: for storage_type, storage_name in storage_configs:
# Verify storage implementation compatibility # Verify storage implementation compatibility
self.verify_storage_implementation(storage_type, storage_name) verify_storage_implementation(storage_type, storage_name)
# Check environment variables # Check environment variables
# self.check_storage_env_vars(storage_name) # self.check_storage_env_vars(storage_name)
@@ -1462,27 +1463,6 @@ class LightRAG:
return result return result
def verify_storage_implementation(
self, storage_type: str, storage_name: str
) -> None:
"""Verify if storage implementation is compatible with specified storage type
Args:
storage_type: Storage type (KV_STORAGE, GRAPH_STORAGE etc.)
storage_name: Storage implementation name
Raises:
ValueError: If storage implementation is incompatible or missing required methods
"""
if storage_type not in STORAGE_IMPLEMENTATIONS:
raise ValueError(f"Unknown storage type: {storage_type}")
storage_info = STORAGE_IMPLEMENTATIONS[storage_type]
if storage_name not in storage_info["implementations"]:
raise ValueError(
f"Storage implementation '{storage_name}' is not compatible with {storage_type}. "
f"Compatible implementations are: {', '.join(storage_info['implementations'])}"
)
def check_storage_env_vars(self, storage_name: str) -> None: def check_storage_env_vars(self, storage_name: str) -> None:
"""Check if all required environment variables for storage implementation exist """Check if all required environment variables for storage implementation exist