From e88ad5333070807863b69de23787a5afe38de893 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 09:35:17 +0000 Subject: [PATCH 1/2] Initial plan From f11ede7f708a8f38d308fd1e2978b56952c655dc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 09:41:02 +0000 Subject: [PATCH 2/2] feat: centralize LightRAG query config defaults into LightRAGQueryDefaults class Co-authored-by: BukeLy <19304666+BukeLy@users.noreply.github.com> --- src/config.py | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/src/config.py b/src/config.py index 0d1f8f5..78a2fcc 100644 --- a/src/config.py +++ b/src/config.py @@ -210,19 +210,39 @@ class Config: # ==================== LightRAG Query Configuration ==================== +class LightRAGQueryDefaults: + """ + LightRAG Query Default Values (Single Source of Truth) + + All default values for LightRAGQueryConfig are defined here. + This ensures consistent defaults and simplifies maintenance. + """ + + TOP_K: int = 20 + CHUNK_TOP_K: int = 10 + MAX_ENTITY_TOKENS: int = 6000 + MAX_RELATION_TOKENS: int = 8000 + MAX_TOTAL_TOKENS: int = 30000 + MAX_PARALLEL_INSERT: int = 2 + MAX_SOURCE_IDS_PER_ENTITY: int = 300 + MAX_SOURCE_IDS_PER_RELATION: int = 300 + SOURCE_IDS_LIMIT_METHOD: str = "FIFO" + MAX_FILE_PATHS: int = 100 + + class LightRAGQueryConfig(BaseSettings): """LightRAG Query Optimization Parameters""" - top_k: int = Field(default=20, description="Number of Entities/Relations to Retrieve", alias="TOP_K") - chunk_top_k: int = Field(default=10, description="Number of Text Chunks to Retrieve", alias="CHUNK_TOP_K") - max_entity_tokens: int = Field(default=6000, description="Max Entity Context Tokens", alias="MAX_ENTITY_TOKENS") - max_relation_tokens: int = Field(default=8000, description="Max Relation Context Tokens", alias="MAX_RELATION_TOKENS") - max_total_tokens: int = Field(default=30000, description="Max Total Tokens", alias="MAX_TOTAL_TOKENS") - max_parallel_insert: int = Field(default=2, description="Max Parallel Document Inserts", alias="MAX_PARALLEL_INSERT") - max_source_ids_per_entity: int = Field(default=300, description="Max Source IDs per Entity", alias="MAX_SOURCE_IDS_PER_ENTITY") - max_source_ids_per_relation: int = Field(default=300, description="Max Source IDs per Relation", alias="MAX_SOURCE_IDS_PER_RELATION") - source_ids_limit_method: str = Field(default="FIFO", description="Source IDs Limit Method", alias="SOURCE_IDS_LIMIT_METHOD") - max_file_paths: int = Field(default=100, description="Max File Paths", alias="MAX_FILE_PATHS") + top_k: int = Field(default=LightRAGQueryDefaults.TOP_K, description="Number of Entities/Relations to Retrieve", alias="TOP_K") + chunk_top_k: int = Field(default=LightRAGQueryDefaults.CHUNK_TOP_K, description="Number of Text Chunks to Retrieve", alias="CHUNK_TOP_K") + max_entity_tokens: int = Field(default=LightRAGQueryDefaults.MAX_ENTITY_TOKENS, description="Max Entity Context Tokens", alias="MAX_ENTITY_TOKENS") + max_relation_tokens: int = Field(default=LightRAGQueryDefaults.MAX_RELATION_TOKENS, description="Max Relation Context Tokens", alias="MAX_RELATION_TOKENS") + max_total_tokens: int = Field(default=LightRAGQueryDefaults.MAX_TOTAL_TOKENS, description="Max Total Tokens", alias="MAX_TOTAL_TOKENS") + max_parallel_insert: int = Field(default=LightRAGQueryDefaults.MAX_PARALLEL_INSERT, description="Max Parallel Document Inserts", alias="MAX_PARALLEL_INSERT") + max_source_ids_per_entity: int = Field(default=LightRAGQueryDefaults.MAX_SOURCE_IDS_PER_ENTITY, description="Max Source IDs per Entity", alias="MAX_SOURCE_IDS_PER_ENTITY") + max_source_ids_per_relation: int = Field(default=LightRAGQueryDefaults.MAX_SOURCE_IDS_PER_RELATION, description="Max Source IDs per Relation", alias="MAX_SOURCE_IDS_PER_RELATION") + source_ids_limit_method: str = Field(default=LightRAGQueryDefaults.SOURCE_IDS_LIMIT_METHOD, description="Source IDs Limit Method", alias="SOURCE_IDS_LIMIT_METHOD") + max_file_paths: int = Field(default=LightRAGQueryDefaults.MAX_FILE_PATHS, description="Max File Paths", alias="MAX_FILE_PATHS") class Config: env_file = ".env"