@@ -115,6 +115,48 @@ def get_embedder_config() -> dict[str, Any]:
115115 },
116116 }
117117
118+ @staticmethod
119+ def get_internet_config () -> dict [str , Any ]:
120+ """Get embedder configuration."""
121+ return {
122+ "backend" : "xinyu" ,
123+ "config" : {
124+ "api_key" : os .getenv ("XINYU_API_KEY" ),
125+ "search_engine_id" : os .getenv ("XINYU_SEARCH_ENGINE_ID" ),
126+ "max_results" : 15 ,
127+ "num_per_request" : 10 ,
128+ "reader" : {
129+ "backend" : "simple_struct" ,
130+ "config" : {
131+ "llm" : {
132+ "backend" : "openai" ,
133+ "config" : {
134+ "model_name_or_path" : os .getenv ("MEMRADER_MODEL" ),
135+ "temperature" : 0.6 ,
136+ "max_tokens" : 5000 ,
137+ "top_p" : 0.95 ,
138+ "top_k" : 20 ,
139+ "api_key" : "EMPTY" ,
140+ "api_base" : os .getenv ("MEMRADER_API_BASE" ),
141+ "remove_think_prefix" : True ,
142+ "extra_body" : {"chat_template_kwargs" : {"enable_thinking" : False }},
143+ },
144+ },
145+ "embedder" : APIConfig .get_embedder_config (),
146+ "chunker" : {
147+ "backend" : "sentence" ,
148+ "config" : {
149+ "tokenizer_or_token_counter" : "gpt2" ,
150+ "chunk_size" : 512 ,
151+ "chunk_overlap" : 128 ,
152+ "min_sentences_per_chunk" : 1 ,
153+ },
154+ },
155+ },
156+ },
157+ },
158+ }
159+
118160 @staticmethod
119161 def get_neo4j_community_config (user_id : str | None = None ) -> dict [str , Any ]:
120162 """Get Neo4j community configuration."""
@@ -340,7 +382,6 @@ def create_user_config(user_name: str, user_id: str) -> tuple[MOSConfig, General
340382 "top_k" : 30 ,
341383 "max_turns_window" : 20 ,
342384 }
343-
344385 # Add scheduler configuration if enabled
345386 if APIConfig .is_scheduler_enabled ():
346387 config_dict ["mem_scheduler" ] = APIConfig .get_scheduler_config ()
@@ -352,14 +393,19 @@ def create_user_config(user_name: str, user_id: str) -> tuple[MOSConfig, General
352393
353394 neo4j_community_config = APIConfig .get_neo4j_community_config (user_id )
354395 neo4j_config = APIConfig .get_neo4j_config (user_id )
355-
396+ internet_config = (
397+ APIConfig .get_internet_config ()
398+ if os .getenv ("ENABLE_INTERNET" , "false" ).lower () == "true"
399+ else None
400+ )
356401 graph_db_backend_map = {
357402 "neo4j-community" : neo4j_community_config ,
358403 "neo4j" : neo4j_config ,
359404 }
360405 graph_db_backend = os .getenv ("NEO4J_BACKEND" , "neo4j-community" ).lower ()
361406 if graph_db_backend in graph_db_backend_map :
362407 # Create MemCube config
408+
363409 default_cube_config = GeneralMemCubeConfig .model_validate (
364410 {
365411 "user_id" : user_id ,
@@ -374,6 +420,7 @@ def create_user_config(user_name: str, user_id: str) -> tuple[MOSConfig, General
374420 "config" : graph_db_backend_map [graph_db_backend ],
375421 },
376422 "embedder" : APIConfig .get_embedder_config (),
423+ "internet_retriever" : internet_config ,
377424 },
378425 },
379426 "act_mem" : {}
@@ -384,7 +431,10 @@ def create_user_config(user_name: str, user_id: str) -> tuple[MOSConfig, General
384431 )
385432 else :
386433 raise ValueError (f"Invalid Neo4j backend: { graph_db_backend } " )
387-
434+ if os .getenv ("ENABLE_INTERNET" , "false" ).lower () == "true" :
435+ default_cube_config .text_mem .config ["internet_retriever" ] = (
436+ APIConfig .get_internet_config ()
437+ )
388438 default_mem_cube = GeneralMemCube (default_cube_config )
389439 return default_config , default_mem_cube
390440
@@ -405,6 +455,11 @@ def get_default_cube_config() -> GeneralMemCubeConfig | None:
405455 "neo4j-community" : neo4j_community_config ,
406456 "neo4j" : neo4j_config ,
407457 }
458+ internet_config = (
459+ APIConfig .get_internet_config ()
460+ if os .getenv ("ENABLE_INTERNET" , "false" ).lower () == "true"
461+ else None
462+ )
408463 graph_db_backend = os .getenv ("NEO4J_BACKEND" , "neo4j-community" ).lower ()
409464 if graph_db_backend in graph_db_backend_map :
410465 return GeneralMemCubeConfig .model_validate (
@@ -423,6 +478,7 @@ def get_default_cube_config() -> GeneralMemCubeConfig | None:
423478 "embedder" : APIConfig .get_embedder_config (),
424479 "reorganize" : os .getenv ("MOS_ENABLE_REORGANIZE" , "false" ).lower ()
425480 == "true" ,
481+ "internet_retriever" : internet_config ,
426482 },
427483 },
428484 "act_mem" : {}
0 commit comments