<!-- .github/pull_request_template.md --> ## Description Add test of embedding and LLM model at beginning of cognee use Fix issue with relational database async use Refactor handling of cache mechanism for all databases so changes in config can be reflected in get functions ## DCO Affirmation I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced connection testing for language and embedding services at startup, ensuring improved reliability during data addition. - **Refactor** - Streamlined engine initialization across multiple database systems to enhance performance and clarity. - Improved parameter handling and caching strategies for faster, more consistent operations. - Updated record identifiers for more robust and unique data storage. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: holchan <61059652+holchan@users.noreply.github.com> Co-authored-by: Boris <boris@topoteretes.com>
51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
"""This module contains the configuration for the graph database."""
|
|
|
|
import os
|
|
from functools import lru_cache
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
from cognee.shared.data_models import KnowledgeGraph
|
|
from cognee.root_dir import get_absolute_path
|
|
|
|
|
|
class GraphConfig(BaseSettings):
|
|
graph_filename: str = "cognee_graph.pkl"
|
|
graph_database_provider: str = "NETWORKX"
|
|
graph_database_url: str = ""
|
|
graph_database_username: str = ""
|
|
graph_database_password: str = ""
|
|
graph_database_port: int = 123
|
|
graph_file_path: str = os.path.join(
|
|
os.path.join(get_absolute_path(".cognee_system"), "databases"), graph_filename
|
|
)
|
|
graph_model: object = KnowledgeGraph
|
|
graph_topology: object = KnowledgeGraph
|
|
model_config = SettingsConfigDict(env_file=".env", extra="allow")
|
|
|
|
def to_dict(self) -> dict:
|
|
return {
|
|
"graph_filename": self.graph_filename,
|
|
"graph_database_provider": self.graph_database_provider,
|
|
"graph_database_url": self.graph_database_url,
|
|
"graph_database_username": self.graph_database_username,
|
|
"graph_database_password": self.graph_database_password,
|
|
"graph_database_port": self.graph_database_port,
|
|
"graph_file_path": self.graph_file_path,
|
|
"graph_model": self.graph_model,
|
|
"graph_topology": self.graph_topology,
|
|
"model_config": self.model_config,
|
|
}
|
|
|
|
def to_hashable_dict(self) -> dict:
|
|
return {
|
|
"graph_database_provider": self.graph_database_provider,
|
|
"graph_database_url": self.graph_database_url,
|
|
"graph_database_username": self.graph_database_username,
|
|
"graph_database_password": self.graph_database_password,
|
|
"graph_database_port": self.graph_database_port,
|
|
"graph_file_path": self.graph_file_path,
|
|
}
|
|
|
|
|
|
@lru_cache
|
|
def get_graph_config():
|
|
return GraphConfig()
|