@@ -501,7 +501,7 @@ async def merge_nodes_and_edges(
501501 tokenizer ,
502502 llm_model_max_token_size ,
503503 summary_to_max_tokens ,
504- addon_params ,
504+ language : str ,
505505 force_llm_summary_on_merge ,
506506 lightrag_logger : LightRAGLogger ,
507507) -> dict [str , int ]:
@@ -516,7 +516,7 @@ async def merge_nodes_and_edges(
516516 tokenizer ,
517517 llm_model_max_token_size ,
518518 summary_to_max_tokens ,
519- addon_params ,
519+ language ,
520520 force_llm_summary_on_merge ,
521521 lightrag_logger ,
522522 )
@@ -532,15 +532,12 @@ async def _merge_nodes_and_edges_impl(
532532 tokenizer ,
533533 llm_model_max_token_size ,
534534 summary_to_max_tokens ,
535- addon_params ,
535+ language : str ,
536536 force_llm_summary_on_merge ,
537537 lightrag_logger : LightRAGLogger ,
538538) -> dict [str , int ]:
539539 """Internal implementation of merge_nodes_and_edges with fine-grained locking"""
540540
541- # Extract language from addon_params
542- language = addon_params .get ("language" , "English" )
543-
544541 # Collect all nodes and edges from all chunks
545542 all_nodes = defaultdict (list )
546543 all_edges = defaultdict (list )
@@ -572,7 +569,7 @@ async def _merge_nodes_and_edges_impl(
572569 tokenizer ,
573570 llm_model_max_token_size ,
574571 summary_to_max_tokens ,
575- language , # Pass language instead of addon_params
572+ language ,
576573 force_llm_summary_on_merge ,
577574 lightrag_logger ,
578575 workspace ,
@@ -613,7 +610,7 @@ async def _merge_nodes_and_edges_impl(
613610 tokenizer ,
614611 llm_model_max_token_size ,
615612 summary_to_max_tokens ,
616- language , # Pass language instead of addon_params
613+ language ,
617614 force_llm_summary_on_merge ,
618615 lightrag_logger ,
619616 workspace ,
@@ -644,15 +641,13 @@ async def extract_entities(
644641 chunks : dict [str , TextChunkSchema ],
645642 use_llm_func : callable ,
646643 entity_extract_max_gleaning : int ,
647- addon_params : dict ,
644+ language : str ,
645+ entity_types : list [str ],
646+ example_number : int | None ,
648647 llm_model_max_async : int ,
649648 lightrag_logger : LightRAGLogger ,
650649) -> list :
651650 ordered_chunks = list (chunks .items ())
652- # add language and example number params to prompt
653- language = addon_params .get ("language" , PROMPTS ["DEFAULT_LANGUAGE" ])
654- entity_types = addon_params .get ("entity_types" , PROMPTS ["DEFAULT_ENTITY_TYPES" ])
655- example_number = addon_params .get ("example_number" , None )
656651 if example_number and example_number < len (PROMPTS ["entity_extraction_examples" ]):
657652 examples = "\n " .join (PROMPTS ["entity_extraction_examples" ][: int (example_number )])
658653 else :
@@ -824,7 +819,8 @@ async def build_query_context(
824819 query_param : QueryParam ,
825820 tokenizer : Tokenizer ,
826821 llm_model_func : callable ,
827- addon_params : dict ,
822+ language : str ,
823+ example_number : int | None ,
828824 chunks_vdb : BaseVectorStorage = None ,
829825):
830826 if query_param .model_func :
@@ -833,7 +829,7 @@ async def build_query_context(
833829 use_model_func = llm_model_func
834830
835831 hl_keywords , ll_keywords = await get_keywords_from_query (
836- query , query_param , tokenizer , use_model_func , addon_params
832+ query , query_param , tokenizer , use_model_func , language , example_number
837833 )
838834
839835 logger .debug (f"High-level keywords: { hl_keywords } " )
@@ -882,7 +878,8 @@ async def kg_query(
882878 query_param : QueryParam ,
883879 tokenizer : Tokenizer ,
884880 llm_model_func : callable ,
885- addon_params : dict ,
881+ language : str ,
882+ example_number : int | None ,
886883 system_prompt : str | None = None ,
887884 chunks_vdb : BaseVectorStorage = None ,
888885) -> str | AsyncIterator [str ]:
@@ -901,7 +898,8 @@ async def kg_query(
901898 query_param ,
902899 tokenizer ,
903900 llm_model_func ,
904- addon_params ,
901+ language ,
902+ example_number ,
905903 chunks_vdb ,
906904 )
907905
@@ -980,7 +978,8 @@ async def get_keywords_from_query(
980978 query_param : QueryParam ,
981979 tokenizer : Tokenizer ,
982980 llm_model_func : callable ,
983- addon_params : dict ,
981+ language : str ,
982+ example_number : int | None ,
984983) -> tuple [list [str ], list [str ]]:
985984 """
986985 Retrieves high-level and low-level keywords for RAG operations.
@@ -996,7 +995,9 @@ async def get_keywords_from_query(
996995 return query_param .hl_keywords , query_param .ll_keywords
997996
998997 # Extract keywords using extract_keywords_only function which already supports conversation history
999- hl_keywords , ll_keywords = await extract_keywords_only (query , query_param , tokenizer , llm_model_func , addon_params )
998+ hl_keywords , ll_keywords = await extract_keywords_only (
999+ query , query_param , tokenizer , llm_model_func , language , example_number
1000+ )
10001001 return hl_keywords , ll_keywords
10011002
10021003
@@ -1005,20 +1006,19 @@ async def extract_keywords_only(
10051006 param : QueryParam ,
10061007 tokenizer : Tokenizer ,
10071008 llm_model_func : callable ,
1008- addon_params : dict ,
1009+ language : str ,
1010+ example_number : int | None ,
10091011) -> tuple [list [str ], list [str ]]:
10101012 """
10111013 Extract high-level and low-level keywords from the given 'text' using the LLM.
10121014 This method does NOT build the final RAG context or provide a final answer.
10131015 It ONLY extracts keywords (hl_keywords, ll_keywords).
10141016 """
10151017 # 2. Build the examples
1016- example_number = addon_params .get ("example_number" , None )
10171018 if example_number and example_number < len (PROMPTS ["keywords_extraction_examples" ]):
10181019 examples = "\n " .join (PROMPTS ["keywords_extraction_examples" ][: int (example_number )])
10191020 else :
10201021 examples = "\n " .join (PROMPTS ["keywords_extraction_examples" ])
1021- language = addon_params .get ("language" , PROMPTS ["DEFAULT_LANGUAGE" ])
10221022
10231023 # 3. Process conversation history
10241024 history_context = ""
0 commit comments