MemoryOS 1.0.1__py3-none-any.whl → 1.1.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of MemoryOS might be problematic. Click here for more details.

Files changed (82) hide show
  1. {memoryos-1.0.1.dist-info → memoryos-1.1.2.dist-info}/METADATA +7 -2
  2. {memoryos-1.0.1.dist-info → memoryos-1.1.2.dist-info}/RECORD +79 -65
  3. {memoryos-1.0.1.dist-info → memoryos-1.1.2.dist-info}/WHEEL +1 -1
  4. memos/__init__.py +1 -1
  5. memos/api/client.py +109 -0
  6. memos/api/config.py +11 -9
  7. memos/api/context/dependencies.py +15 -55
  8. memos/api/middleware/request_context.py +9 -40
  9. memos/api/product_api.py +2 -3
  10. memos/api/product_models.py +91 -16
  11. memos/api/routers/product_router.py +23 -16
  12. memos/api/start_api.py +10 -0
  13. memos/configs/graph_db.py +4 -0
  14. memos/configs/mem_scheduler.py +38 -3
  15. memos/context/context.py +255 -0
  16. memos/embedders/factory.py +2 -0
  17. memos/graph_dbs/nebular.py +230 -232
  18. memos/graph_dbs/neo4j.py +35 -1
  19. memos/graph_dbs/neo4j_community.py +7 -0
  20. memos/llms/factory.py +2 -0
  21. memos/llms/openai.py +74 -2
  22. memos/log.py +27 -15
  23. memos/mem_cube/general.py +3 -1
  24. memos/mem_os/core.py +60 -22
  25. memos/mem_os/main.py +3 -6
  26. memos/mem_os/product.py +35 -11
  27. memos/mem_reader/factory.py +2 -0
  28. memos/mem_reader/simple_struct.py +127 -74
  29. memos/mem_scheduler/analyzer/__init__.py +0 -0
  30. memos/mem_scheduler/analyzer/mos_for_test_scheduler.py +569 -0
  31. memos/mem_scheduler/analyzer/scheduler_for_eval.py +280 -0
  32. memos/mem_scheduler/base_scheduler.py +126 -56
  33. memos/mem_scheduler/general_modules/dispatcher.py +2 -2
  34. memos/mem_scheduler/general_modules/misc.py +99 -1
  35. memos/mem_scheduler/general_modules/scheduler_logger.py +17 -11
  36. memos/mem_scheduler/general_scheduler.py +40 -88
  37. memos/mem_scheduler/memory_manage_modules/__init__.py +5 -0
  38. memos/mem_scheduler/memory_manage_modules/memory_filter.py +308 -0
  39. memos/mem_scheduler/{general_modules → memory_manage_modules}/retriever.py +34 -7
  40. memos/mem_scheduler/monitors/dispatcher_monitor.py +9 -8
  41. memos/mem_scheduler/monitors/general_monitor.py +119 -39
  42. memos/mem_scheduler/optimized_scheduler.py +124 -0
  43. memos/mem_scheduler/orm_modules/__init__.py +0 -0
  44. memos/mem_scheduler/orm_modules/base_model.py +635 -0
  45. memos/mem_scheduler/orm_modules/monitor_models.py +261 -0
  46. memos/mem_scheduler/scheduler_factory.py +2 -0
  47. memos/mem_scheduler/schemas/monitor_schemas.py +96 -29
  48. memos/mem_scheduler/utils/config_utils.py +100 -0
  49. memos/mem_scheduler/utils/db_utils.py +33 -0
  50. memos/mem_scheduler/utils/filter_utils.py +1 -1
  51. memos/mem_scheduler/webservice_modules/__init__.py +0 -0
  52. memos/memories/activation/kv.py +2 -1
  53. memos/memories/textual/item.py +95 -16
  54. memos/memories/textual/naive.py +1 -1
  55. memos/memories/textual/tree.py +27 -3
  56. memos/memories/textual/tree_text_memory/organize/handler.py +4 -2
  57. memos/memories/textual/tree_text_memory/organize/manager.py +28 -14
  58. memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py +1 -2
  59. memos/memories/textual/tree_text_memory/organize/reorganizer.py +75 -23
  60. memos/memories/textual/tree_text_memory/retrieve/bochasearch.py +7 -5
  61. memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py +6 -2
  62. memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py +2 -0
  63. memos/memories/textual/tree_text_memory/retrieve/recall.py +70 -22
  64. memos/memories/textual/tree_text_memory/retrieve/searcher.py +101 -33
  65. memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py +5 -4
  66. memos/memos_tools/singleton.py +174 -0
  67. memos/memos_tools/thread_safe_dict.py +22 -0
  68. memos/memos_tools/thread_safe_dict_segment.py +382 -0
  69. memos/parsers/factory.py +2 -0
  70. memos/reranker/concat.py +59 -0
  71. memos/reranker/cosine_local.py +1 -0
  72. memos/reranker/factory.py +5 -0
  73. memos/reranker/http_bge.py +225 -12
  74. memos/templates/mem_scheduler_prompts.py +242 -0
  75. memos/types.py +4 -1
  76. memos/api/context/context.py +0 -147
  77. memos/api/context/context_thread.py +0 -96
  78. memos/mem_scheduler/mos_for_test_scheduler.py +0 -146
  79. {memoryos-1.0.1.dist-info → memoryos-1.1.2.dist-info}/entry_points.txt +0 -0
  80. {memoryos-1.0.1.dist-info → memoryos-1.1.2.dist-info/licenses}/LICENSE +0 -0
  81. /memos/mem_scheduler/{general_modules → webservice_modules}/rabbitmq_service.py +0 -0
  82. /memos/mem_scheduler/{general_modules → webservice_modules}/redis_service.py +0 -0
@@ -1,8 +1,9 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: MemoryOS
3
- Version: 1.0.1
3
+ Version: 1.1.2
4
4
  Summary: Intelligence Begins with Memory
5
5
  License: Apache-2.0
6
+ License-File: LICENSE
6
7
  Keywords: memory,llm,language model,memoryOS,agent,kv cache,lora
7
8
  Author: MemTensor
8
9
  Author-email: MemTensor@memtensor.cn
@@ -22,6 +23,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
23
  Provides-Extra: all
23
24
  Provides-Extra: mem-reader
24
25
  Provides-Extra: mem-scheduler
26
+ Provides-Extra: mem-user
25
27
  Provides-Extra: tree-mem
26
28
  Requires-Dist: chonkie (>=1.0.7,<2.0.0) ; extra == "all"
27
29
  Requires-Dist: chonkie (>=1.0.7,<2.0.0) ; extra == "mem-reader"
@@ -35,6 +37,9 @@ Requires-Dist: ollama (>=0.4.8,<0.5.0)
35
37
  Requires-Dist: openai (>=1.77.0,<2.0.0)
36
38
  Requires-Dist: pika (>=1.3.2,<2.0.0) ; extra == "all"
37
39
  Requires-Dist: pika (>=1.3.2,<2.0.0) ; extra == "mem-scheduler"
40
+ Requires-Dist: pymysql (>=1.1.0,<2.0.0)
41
+ Requires-Dist: pymysql (>=1.1.0,<2.0.0) ; extra == "all"
42
+ Requires-Dist: pymysql (>=1.1.0,<2.0.0) ; extra == "mem-user"
38
43
  Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
39
44
  Requires-Dist: qdrant-client (>=1.14.2,<2.0.0) ; extra == "all"
40
45
  Requires-Dist: redis (>=6.2.0,<7.0.0) ; extra == "all"
@@ -1,16 +1,15 @@
1
- memos/__init__.py,sha256=EKtqQioVRZ2gNPD65cxhBbX-ZhswH1EBGMj2G6roYME,575
2
- memos/api/config.py,sha256=Gx3g5jPZ_8EUPTTvA7h14tKL7VYe4FI4NybCTuylWuE,24513
3
- memos/api/context/context.py,sha256=HBMeg3-e-rOJXMU7aR0JCsEIECuefEx8eyFT-1sSG9c,4158
4
- memos/api/context/context_thread.py,sha256=T3Vdu7m1l8JMmoUBop1ykyrbH-oZ-_6FnymXsawmLis,3121
5
- memos/api/context/dependencies.py,sha256=byLwmFsocQufcmi5WFg2j6XjWv9k4PCozCV7uRdCO3M,2468
1
+ memos/__init__.py,sha256=UskX96T9J0ZaLp9Ubx5fFFtJcY6qE1BeLumraYRyFCk,575
2
+ memos/api/client.py,sha256=zaXBRlAlGX28b5xWKilal-zoR2DYLRIYxo47Q3LdEFU,4045
3
+ memos/api/config.py,sha256=SCUtLtYOebne73Bj3QHQR29L1JtftSWR4teTpd8A7gA,24732
4
+ memos/api/context/dependencies.py,sha256=G9vfMVEeQczSd7ma4hlXSk2S8K6txjXHVO27R6FlbjQ,1240
6
5
  memos/api/exceptions.py,sha256=MfTNXwLwJE7tHwNVTHlJsB3kF14oA0JfA1-S8xrZEus,833
7
6
  memos/api/mcp_serve.py,sha256=GtJDZYx4yxKMs4sCddKJbRAjgsbRunr6S2nAT-KeBMs,21270
8
- memos/api/middleware/request_context.py,sha256=8tkyIQkgBnGRM_X33CaM6x1M4jsprPMmYspTtRT20u8,2834
9
- memos/api/product_api.py,sha256=6JrQRIGj1UrFxcHL2myA5_4li6Tf5S5ynja5rX3XhYU,1129
10
- memos/api/product_models.py,sha256=aZJov3NqAaLpRLGPIg-GK6G00X-NvK2QyuOkQdCCmo8,6449
7
+ memos/api/middleware/request_context.py,sha256=RNaeJt1AqmSfCB6lxkp8voyOjum7k6CrMV2w3cZgv10,2088
8
+ memos/api/product_api.py,sha256=OOrrJ8h4BuJWXD8L8wb22E0Zfa73X0PwLC51wF0d5sc,1178
9
+ memos/api/product_models.py,sha256=0yvI2q5Md_j8P4IK7NuqKMs9csm7I0-cFqufvPSrmRM,9292
11
10
  memos/api/routers/__init__.py,sha256=nbduRsr-7RkfBIYEBkbYkpB-7GG7QZgNfEQwLHbDXpI,21
12
- memos/api/routers/product_router.py,sha256=jeosTAJzwWkqo0Ev2eaHQex-LQtyI9LRLhLIvFDiOyw,17160
13
- memos/api/start_api.py,sha256=rVXMPEQy9r1PiVzHO3LJCf2qSsb0Mv0tklUJMQMBP8A,14776
11
+ memos/api/routers/product_router.py,sha256=63FzAgIpSNijSyRspk5ftHwhGzTM5D19IbP23xLU9C0,17568
12
+ memos/api/start_api.py,sha256=gR1vM7tYKiS1VNv9Jya9gvflhxeobFV4AQHTKCeW95Q,15185
14
13
  memos/chunkers/__init__.py,sha256=7lZOTN3e9Yp5XBsDX5wnWJ3tY126cRU9GmfevzJXAtU,67
15
14
  memos/chunkers/base.py,sha256=z0rG5vM7FGremQdSZ_3jlTGbsDtlkWAYWdtSAGqpaR4,655
16
15
  memos/chunkers/factory.py,sha256=ixpYz41GG3SZW-1ynLvfbhOZ0aGnFi2wUIYT4_Uxh30,693
@@ -20,26 +19,27 @@ memos/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
19
  memos/configs/base.py,sha256=bOOhEU6HGFTq5jne_TXn8Br72rvAfJHYvYllFUPs12A,2588
21
20
  memos/configs/chunker.py,sha256=Ulci0MyhS_FkuV95l7Pr9Vei179aEFEUigwVmtmSDfI,1593
22
21
  memos/configs/embedder.py,sha256=e_aOkUamW2NYSBEzsKkw0jNqHERy5GU3A2cSH5G5y68,2750
23
- memos/configs/graph_db.py,sha256=800e8PqiXTaOBX-GQHRP9f3Gx-0Ma7fnO0pdA5WHJ0k,5868
22
+ memos/configs/graph_db.py,sha256=U_pNInRYW8iB-XG_5jLmPEcGKEmsGJmNIHPBN-m_Y80,5961
24
23
  memos/configs/internet_retriever.py,sha256=yWU6avRU9Hqox8hmR0EyILUr4x9wDvcKkhwRwT3PROc,3749
25
24
  memos/configs/llm.py,sha256=cso9ZBOdPzOAcgypp2nPFHdynswdG9MZZ-qdgOTEXL8,4175
26
25
  memos/configs/mem_chat.py,sha256=TjEQHRG1HpLwCBo3hrn5aVK23rykNtV6Be5p4YIg7F4,2571
27
26
  memos/configs/mem_cube.py,sha256=k95dvNxusnyS9w6ciWgNkUXwbHa4HTUEUS-PfPbR0BM,3105
28
27
  memos/configs/mem_os.py,sha256=FGrBaFWGUdCKkb4MFDRz9hCE7hydLd0XEFgUrqEhQJw,2755
29
28
  memos/configs/mem_reader.py,sha256=hTLFdmPhPIY70Fh_s4ptTGJ3LN-B9n111QG1kboxoNk,2307
30
- memos/configs/mem_scheduler.py,sha256=kLE1JZM2IkzpsEdvJ0D0w3MNbjsqfB_--EvdZomHB5s,7644
29
+ memos/configs/mem_scheduler.py,sha256=NfukLGW-fm7912tCzvN5NeOFQiALT_kE7fuiVAlTDRY,9158
31
30
  memos/configs/mem_user.py,sha256=U0UzCvTacUOxeajJMfXAWWy3a0l52B4LUhH_L7U1VQ4,2036
32
31
  memos/configs/memory.py,sha256=wWrDvO67evM4Pn-utqneliIsJlap0ddNhdEH1Vn8HbA,7636
33
32
  memos/configs/parser.py,sha256=dy-QoevJbCnkJePKgpzR4oziOzYnS4jB6XH-YrpeMns,1145
34
33
  memos/configs/reranker.py,sha256=8IbKPPNUcGq9uGhgXcx41eYjDJr1lZKv89UKrA9v-Ck,459
35
34
  memos/configs/utils.py,sha256=X9NQ6-xURsZROAdS3WT96phVfHcOHgDPOo2Yq68QoKM,242
36
35
  memos/configs/vec_db.py,sha256=Gjhhda94pyTDjyJGe2Z6rVEqH4FtViiwq1-7QWhjarM,2335
36
+ memos/context/context.py,sha256=3Sj0CW4H16MA2VvkGPrYfPVbRB0TmdUkEZfNrGBYyvc,7806
37
37
  memos/dependency.py,sha256=T5jhi9J6EQvx41dP8ma6hdCNn86d1amEP1iMASnrVbA,1842
38
38
  memos/deprecation.py,sha256=k2i4bBKqIwu20guwJmPPjOm7reOy19GzLwrTMrIqjPk,7408
39
39
  memos/embedders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  memos/embedders/ark.py,sha256=i9dXR_lNXklxT8yUj_GiMIBDMR5tc40ltZMmX3CnJGk,3436
41
41
  memos/embedders/base.py,sha256=zOYERcaqBVCyMVndcR6vhFC_O2itEuTM058odDfhTx8,449
42
- memos/embedders/factory.py,sha256=tyWOvL2IZpWe-NMAvhBPsb4GqGcSUjoHJkZ65qaddEs,1027
42
+ memos/embedders/factory.py,sha256=rZm4WP01_mqTbByv5g7Qc4OUCem4KP8YoEndmZv_9Lw,1110
43
43
  memos/embedders/ollama.py,sha256=8lHeMCqxej44ZgeDsPGL-5almxRBWsYYYflu5LeAf7w,2361
44
44
  memos/embedders/sentence_transformer.py,sha256=QJoW7qMbvAzmMUXzIhMHXVFnDFurfzxdoVUHIlslzec,1647
45
45
  memos/embedders/universal_api.py,sha256=BpmLL18y2neEAIE4CdC-1qr0uOEOJ6o7V_zycdkJmZk,1270
@@ -48,65 +48,76 @@ memos/graph_dbs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
48
  memos/graph_dbs/base.py,sha256=0NXdXII-UmX_bqUhBVpFdxRURLAK8sIFFZg51J9QzV0,8293
49
49
  memos/graph_dbs/factory.py,sha256=N1NaABiNnYvnsB-L82LrQaLvND5seCabFdSDsD8LoyA,932
50
50
  memos/graph_dbs/item.py,sha256=BfK17hA_hHu7I348jWugP_rb9GS5hpKfgqtYGGHBohk,1450
51
- memos/graph_dbs/nebular.py,sha256=AgoMapzTVSbuIz4-mTwj9aBhepS8PkcxJp9_s4uWitI,63674
52
- memos/graph_dbs/neo4j.py,sha256=sBlFCibQOtfO8c6bYQl_K9VsphJorfzx97UMQnrZs3E,42491
53
- memos/graph_dbs/neo4j_community.py,sha256=lWvfSo_-Dt3ST4vmBQiaziZDtQHV9CwY0qmWajOSPsc,11521
51
+ memos/graph_dbs/nebular.py,sha256=hBDs3p2CLUp2vKOVX0VaVzHbFOh1Mfbngcl-Jlv8zS8,64462
52
+ memos/graph_dbs/neo4j.py,sha256=HI8ZgHJ5dnOQgA4EBtrRo-olGstLZErgnfwn0OepIyg,43872
53
+ memos/graph_dbs/neo4j_community.py,sha256=yvXhM7zvjvhdXHVoT_d2w6OaoK2Tqcl-rzAHuw0Wvgg,11851
54
54
  memos/hello_world.py,sha256=RV1vXfK1_U_xAvSusqc-4A8wk3yr8WEQ9q88dmBxvnI,3057
55
55
  memos/llms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
56
  memos/llms/base.py,sha256=CF60OpXdSLf-B5bHhQTnomMEkrNCg-SHauu1vo8HpeU,798
57
57
  memos/llms/deepseek.py,sha256=gXlInNa9Ts5-qw6nF4yD88vk5-UiW6-1C72DlE8Agok,1992
58
- memos/llms/factory.py,sha256=DVKMc9Pic36teO2fjIVu3qQulcXh8vYl2hPOJYY3vs4,1153
58
+ memos/llms/factory.py,sha256=6mrUKyZ85bE8Bxq9gRPe_tuy_nCafAHuxAPCSUd9hKw,1236
59
59
  memos/llms/hf.py,sha256=zWz-7j2VnhOyytBbZnEJyNLezOFdV7vuMF6JRwbz9-g,15280
60
60
  memos/llms/hf_singleton.py,sha256=oxG9rSFZT_MhOWImttDVZfRZvxmpwJ8FarjL8NpgpRM,3502
61
61
  memos/llms/ollama.py,sha256=r1HMvSvG_m8gFfwLJhTriJdB6VzKEqz9f9JFs2RJGTw,2732
62
- memos/llms/openai.py,sha256=yOcdG320q0JFLi7ipHDXoPWpvyeOMFwbzrnXtk2xqec,3832
62
+ memos/llms/openai.py,sha256=lrNFCzr-8kbPjny7Vaafvt7EYPr71Ify1GlHZUNMqQk,6500
63
63
  memos/llms/qwen.py,sha256=RFVoC_hxFe4dhCQ583fbTcT1AC3jDrKH0r6cDsZ0Cmo,2459
64
64
  memos/llms/utils.py,sha256=OcbM9iSpFJpio7sTT5wvxVx-JnqjIx7eSgiRk7dt0ZI,292
65
65
  memos/llms/vllm.py,sha256=9ZEgTUyRk86Wp2deQH0o1oW2GbHQ7C3evi-McELyT2Q,5792
66
- memos/log.py,sha256=bmOqq0lH-FkLOlNnYtppqdchkDTz7AjJuSuGUKhsxXQ,6362
66
+ memos/log.py,sha256=Cpq6hHY8ETqOhC_l5xW-6n-qniCJ1TTrpl4yHyTkopQ,6761
67
67
  memos/mem_chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
68
  memos/mem_chat/base.py,sha256=LICB_mwUkdCVKb_r33GEPbrEr-2v3dEnI54cAvhcEew,830
69
69
  memos/mem_chat/factory.py,sha256=KKCDG9FrpfY2hD3iJ4GM9x8dN09dyhstP1cOUH_knrY,720
70
70
  memos/mem_chat/simple.py,sha256=-DRlE8nKZcGuwEubALK-nUf-wWRbGXkDJXUg8Dxhoyo,7919
71
71
  memos/mem_cube/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
72
  memos/mem_cube/base.py,sha256=NoZKz16oO5AAnJ0alcY52Z1c3C1rbGRe8Znz0CCzDnw,864
73
- memos/mem_cube/general.py,sha256=w1HbDIM7MD6Pu_Pbv4KHgQlxOMaCHvvJk_tmA9rZ_q8,8370
73
+ memos/mem_cube/general.py,sha256=4n7LHe-KmeyZOdl0e4optSC9T7ut8IMcRJQEDC6sYV0,8490
74
74
  memos/mem_cube/utils.py,sha256=gDwiRo9VEvaTaRDzjWOGAH13ALRRV9bvUG7A-wy4KTA,5522
75
75
  memos/mem_os/client.py,sha256=0M-WRTlQr7fDAYtq4B8dsMR0PfmyvD-ySMhKcW3Umd0,43
76
- memos/mem_os/core.py,sha256=3PccrYDzheOKDW8_ZAwzXKvR8Rz4JHfvrdG4vSu6Ttg,45543
77
- memos/mem_os/main.py,sha256=zjgQy80QN70Xt6GHqn5zw-_2jOT6RWMCh9Yx-3zZuyw,24534
78
- memos/mem_os/product.py,sha256=_tloS0ncPx04qfwKbggNFQzk0VL5Nqx6uHQriAFZYzI,58877
76
+ memos/mem_os/core.py,sha256=4qLdqBtL-1Ix5w5ulDtEK7onY6yX_-Kp4T3vF8IVTzM,47494
77
+ memos/mem_os/main.py,sha256=0L4-jqagpd9-5eHIScsyCTjPlOzsPiEwf9ca9r4LcgA,24526
78
+ memos/mem_os/product.py,sha256=msECenlI3z2On3jA4IhHNAwjFofQiYxWF4l_pR0OjL4,59996
79
79
  memos/mem_os/utils/default_config.py,sha256=OdDCyrE3-duSK0vMfO4AelGUwMt14ffHKMrvki0YKlI,12273
80
80
  memos/mem_os/utils/format_utils.py,sha256=QaxImCM0E27l2tkRLzWM1s8vSp3MO_LNaY0APHgV35o,49883
81
81
  memos/mem_os/utils/reference_utils.py,sha256=RtVwcuG3zFaxtMxY4S1_S8XWKQ7hO5UtXMswORBxyy0,6129
82
82
  memos/mem_reader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
83
  memos/mem_reader/base.py,sha256=SSuaD3J88XbHsME1Qa-EAgZ57xApPHPHppMSeeS3JZ4,957
84
- memos/mem_reader/factory.py,sha256=emKnId9BhScSkqCZyLSLWntixnU3wAMIOVdsRpHldJA,766
84
+ memos/mem_reader/factory.py,sha256=FWsNCHgsHrLb3__DP-uIB9oIZiualVY1Q-tEdP-mzXY,849
85
85
  memos/mem_reader/memory.py,sha256=f3fAjrs8Jf6mBZWTgzkEZle7XjDwTJHxM1L2sOb85Tg,13288
86
- memos/mem_reader/simple_struct.py,sha256=TTYGOVt5WNwRpaHF0TW6VkVC98HbeS9-IA6dpIlHmpY,11864
86
+ memos/mem_reader/simple_struct.py,sha256=5YJ701brNJr7MlIPMji4aJ5BEHUe-tfifWeErxB_WuM,14085
87
87
  memos/mem_scheduler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- memos/mem_scheduler/base_scheduler.py,sha256=wxBmdsJUmiufQLEfqflb4EUs9h9JE1EcMdsr_CA-LKE,23255
88
+ memos/mem_scheduler/analyzer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
+ memos/mem_scheduler/analyzer/mos_for_test_scheduler.py,sha256=VDkoBDtFsSqVBbtizjcqCkQVc5EWYa-wZBp-VcPs7R8,24283
90
+ memos/mem_scheduler/analyzer/scheduler_for_eval.py,sha256=ThiSlO9QcQW0TH3bj161zZC7OQm0RQxkYmx_b0-j0_I,9984
91
+ memos/mem_scheduler/base_scheduler.py,sha256=-V5HsZX35qcLAOOwimpiML5QVYVvbk5AygtxEQjGiC4,26356
89
92
  memos/mem_scheduler/general_modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
93
  memos/mem_scheduler/general_modules/base.py,sha256=j2FfGl5mx0CflHGnzu2fFFfZT_WRAMzmmTW_HUxFRgw,2946
91
- memos/mem_scheduler/general_modules/dispatcher.py,sha256=weDMAumIFJORJnpIm_8epz5d5pZ3XFx23O_0k-UONww,7375
92
- memos/mem_scheduler/general_modules/misc.py,sha256=qtHx_M3O0p01-bdje5xp4YbTYcU6rpoRsDvPikxOU-s,3574
93
- memos/mem_scheduler/general_modules/rabbitmq_service.py,sha256=kXfL8Q7eo8H2OMUDhAotbYG9cpL89HDJ5h7A64caKrw,12620
94
- memos/mem_scheduler/general_modules/redis_service.py,sha256=oHa9EvrpkknGAeygjmc8tExyCJVOU_7SZU6ScMOT9pY,5898
95
- memos/mem_scheduler/general_modules/retriever.py,sha256=6BiT-rxdXNnlDJjikQVwuy279W0tePo7tbb6j8c8j6s,7849
96
- memos/mem_scheduler/general_modules/scheduler_logger.py,sha256=8nzdjCd6I4-KRPwLjdf8eXcSQ0i_-xK6rAbQ3j1-GrA,9985
97
- memos/mem_scheduler/general_scheduler.py,sha256=oPGSvXKzFVYDr0YFnjS42zFYydHOXqlWd1woZ83CptA,14743
94
+ memos/mem_scheduler/general_modules/dispatcher.py,sha256=be8UDzX977rgy6NPrMsG3IzHV9ehq38umb0E7NpcQ6s,7392
95
+ memos/mem_scheduler/general_modules/misc.py,sha256=nQXGJJ6nZMl_ljmXbGIwuLt-9sLHdPkqBvR24ZBaDGs,7087
96
+ memos/mem_scheduler/general_modules/scheduler_logger.py,sha256=F4ZUkc5OBZZF4UwaKybf42UEQxgQz709NybpsUVRjWA,10132
97
+ memos/mem_scheduler/general_scheduler.py,sha256=0JYxo3uqmC9-69N2CHdbLQbXxm_qbLtWe_67BK3hHQ8,12780
98
+ memos/mem_scheduler/memory_manage_modules/__init__.py,sha256=S7IUj-mFYxytsfb072ugQGEpFdnfSsPTcXowsH8Z_Cc,133
99
+ memos/mem_scheduler/memory_manage_modules/memory_filter.py,sha256=K6wI_9ewvVuGY-PMtD6HzVO289ljXshTOTPvXeCd2L4,12440
100
+ memos/mem_scheduler/memory_manage_modules/retriever.py,sha256=Zl5M44lD7pihIwQ0T0iJ5udWL_bNAo-Kvt6jhtdiB1M,8929
98
101
  memos/mem_scheduler/monitors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
- memos/mem_scheduler/monitors/dispatcher_monitor.py,sha256=xy3fFa_vM5PpVHWweMTh3V3bZmnccWV49x0nBNFAVVw,10930
100
- memos/mem_scheduler/monitors/general_monitor.py,sha256=pv_T-olU0XTO44-rXgfqX43nmDEp8iq-rwlMyAA0Lxk,12962
101
- memos/mem_scheduler/mos_for_test_scheduler.py,sha256=kioG5V27V8jfXxFA9OHpKoULNF697eGToVo7z-U3mqQ,5950
102
- memos/mem_scheduler/scheduler_factory.py,sha256=pw6FKO0EuxFRipMnD22DvcjbM6pdmVfJmRjUvdTaU5E,800
102
+ memos/mem_scheduler/monitors/dispatcher_monitor.py,sha256=gAPuWoeWVm3338qamo8v7nfT0UVpFkpXb35ZshrTKbo,11177
103
+ memos/mem_scheduler/monitors/general_monitor.py,sha256=6JWXGTuv-udyIe_K0l_rMY1ITL8OgiXxnABGim9YFJ0,16718
104
+ memos/mem_scheduler/optimized_scheduler.py,sha256=J6L366nZBe8a9j6_nwvysUSPTr5mGVT1xi6mo7zHN9E,4997
105
+ memos/mem_scheduler/orm_modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
+ memos/mem_scheduler/orm_modules/base_model.py,sha256=oyWIL9ISx5qh759h8OPETOk1NKAmpjMX1ObG-uC1J7k,23880
107
+ memos/mem_scheduler/orm_modules/monitor_models.py,sha256=XUQdznlD29NQlRM-q1MSajaJNmBGL9AVa7o1VHuBWLE,9457
108
+ memos/mem_scheduler/scheduler_factory.py,sha256=fUEt9wlTwyhN0jeZO8fVdkbA0VZnV6zsyycw3acKCPI,922
103
109
  memos/mem_scheduler/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
110
  memos/mem_scheduler/schemas/general_schemas.py,sha256=r9Ew8KHTVxiDTTLKad1jw12uNMyLltFmn2htplSqbhk,1344
105
111
  memos/mem_scheduler/schemas/message_schemas.py,sha256=ahTEY6x8gSXszURne1nKgHCkfEXfKOEXaTKTUsQ9IW0,5977
106
- memos/mem_scheduler/schemas/monitor_schemas.py,sha256=OvFwchhFCvkHnp8k7NYAQQ5Lq7N0cNKA0mSEasNRLkU,12715
112
+ memos/mem_scheduler/schemas/monitor_schemas.py,sha256=wprD-O2LXW4nNVoTT-wR0bx0mH_VP0zW5RBck8NZm7I,15636
107
113
  memos/mem_scheduler/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
- memos/mem_scheduler/utils/filter_utils.py,sha256=GsEsVjB6zZbF2gITxXN1DWTLoLG-d8A3TFnGzy1uIaQ,6286
114
+ memos/mem_scheduler/utils/config_utils.py,sha256=x0Mp0wuoIQtDZkaXXJUTtesLWFq8eyh-hjkLEm4cOTM,3819
115
+ memos/mem_scheduler/utils/db_utils.py,sha256=Fba2OIDlQsYwydUyHlcZh7VFsUeeIkSpO0ogePOofps,1042
116
+ memos/mem_scheduler/utils/filter_utils.py,sha256=RoWrCf-qk2BJdV2-5ftWYM_UEQqYF6QZWtjPzfHskSc,6299
109
117
  memos/mem_scheduler/utils/misc_utils.py,sha256=zOCpwzCrj0mfiW7BoWiTFEPj-dzdcYZnqMDtKDGO0kc,2765
118
+ memos/mem_scheduler/webservice_modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
+ memos/mem_scheduler/webservice_modules/rabbitmq_service.py,sha256=kXfL8Q7eo8H2OMUDhAotbYG9cpL89HDJ5h7A64caKrw,12620
120
+ memos/mem_scheduler/webservice_modules/redis_service.py,sha256=oHa9EvrpkknGAeygjmc8tExyCJVOU_7SZU6ScMOT9pY,5898
110
121
  memos/mem_user/factory.py,sha256=zdC-208YYU4dpUaMpICzNbhMTiLaJDxLJoq4bl-6YiU,2956
111
122
  memos/mem_user/mysql_persistent_user_manager.py,sha256=fSndxW6MR7u9ImWCPq-gsuFb2TYX1BXF6Kkv1FCS6Fw,9257
112
123
  memos/mem_user/mysql_user_manager.py,sha256=Q_3FxNTw8Vf6uPotHk4YUooa8EVo0jBFTFBKJHPm_6o,16331
@@ -117,7 +128,7 @@ memos/memories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
128
  memos/memories/activation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
129
  memos/memories/activation/base.py,sha256=kiC35AOnuofgYMzLxZyVULsfOoVq03BGvi6AXtNvF-I,1151
119
130
  memos/memories/activation/item.py,sha256=8oo3odhNnvg36NYLobwkehAHj74mo36IcH2MrlXSCEI,1720
120
- memos/memories/activation/kv.py,sha256=c3rhOowxqmYnUnVKGT1XqsHQurl44Ht98wCDz42laP8,8903
131
+ memos/memories/activation/kv.py,sha256=A1_dlJYrdcsLz_kJRD3dq614mw1FC4uiA_c6WVF54VU,8904
121
132
  memos/memories/activation/vllmkv.py,sha256=QM6Y8a3dhqGa08_5rbE-JTR4EakNgoEEVfLdVcvmgms,7765
122
133
  memos/memories/base.py,sha256=Sr-dEuDc982WwdVREQ2nL8L6rUc0KZPTaBJeYdgx8h8,577
123
134
  memos/memories/factory.py,sha256=Z49DRF_VHQJI2UNiTJ_1ouPqg_iCcuV_Tcg5fXkKxlM,1418
@@ -128,57 +139,60 @@ memos/memories/parametric/lora.py,sha256=TqSI2OjmFi-XXCeM-MchSwh1sAhOwL7_JnOwSy9
128
139
  memos/memories/textual/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
140
  memos/memories/textual/base.py,sha256=5AQ0oR1rLd7yiwIKPxt2OmAlL6mWhwUl_U8zuafoDfI,2827
130
141
  memos/memories/textual/general.py,sha256=exHPHejBE6jZNLm8pT951sIko8hAqNdOaHZdnNdfzBA,8877
131
- memos/memories/textual/item.py,sha256=GR6V0GNn32W-pYtwSvmz5F6kTh39Yp4XrQm-cEghL2I,5259
132
- memos/memories/textual/naive.py,sha256=Z_gfbxI6cQGJ_raOTQic4fnpo493Xq3yEQ8qDV4xplo,6954
133
- memos/memories/textual/tree.py,sha256=7RwwWYm5c_F0pNMnQDjcCV01NGb_t-yN_kU8EMZjB9g,14826
142
+ memos/memories/textual/item.py,sha256=uzThiCAKGkIyG0hHL9ywWQNVEq6tr-yMCakoZBW7Dz8,8280
143
+ memos/memories/textual/naive.py,sha256=BjsDp3CdxcQzvKkGr1e_t4qdL_OFemwLjDf37yLRO-4,6964
144
+ memos/memories/textual/tree.py,sha256=Ch-oS_UDXhkYmH8q7pd2QKCF3T2tCyMQOUub-Y3nCu0,16189
134
145
  memos/memories/textual/tree_text_memory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
135
146
  memos/memories/textual/tree_text_memory/organize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
- memos/memories/textual/tree_text_memory/organize/handler.py,sha256=l7WuwWvubGzgaOSUBS0VNjSQU2JxtjwLMtKHxpms8NQ,8139
137
- memos/memories/textual/tree_text_memory/organize/manager.py,sha256=r-0O9hS3y3oQrTaKOulLmbsquk_FW6eEPse6tf7AuVM,9783
138
- memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py,sha256=udqQEFZb6TiarB-Rya1N7fKiWHtXiLkggh8bFKIlDjU,8816
139
- memos/memories/textual/tree_text_memory/organize/reorganizer.py,sha256=txBC6uo3fId4RaTJeTJEg4V3Q-jrIP0jBHqVQkjjAqc,22719
147
+ memos/memories/textual/tree_text_memory/organize/handler.py,sha256=zWkmm0ZdQjmuDUbmQkslGvjFrB-CWuq4y2h7uOTeUro,8135
148
+ memos/memories/textual/tree_text_memory/organize/manager.py,sha256=pkFGEi50xs8JA6M-MwB3EjC9vfJwUZ3683cM2L6x-XA,10319
149
+ memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py,sha256=h2vGAp_0l7xd60CIwc0bz5-FNAN9Sju7e_e7vzcj25s,8815
150
+ memos/memories/textual/tree_text_memory/organize/reorganizer.py,sha256=ONktG6-0DPg-PbAudnLfhh0ccah9cdtGr-cJyWxucuI,24581
140
151
  memos/memories/textual/tree_text_memory/retrieve/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
- memos/memories/textual/tree_text_memory/retrieve/bochasearch.py,sha256=Nh9nbOD3MPcofD4jM0Mihb7cjE17VTvPEsuuMTzisM4,8258
142
- memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py,sha256=aD2bujlVBWzDa9ZfB9vdB9Hq2erCpc426AVcolItWIM,8656
143
- memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py,sha256=3-hJwpGrAAag7z772QBvW9ZBvNI_od5GO1nRv5Q3GbQ,3767
152
+ memos/memories/textual/tree_text_memory/retrieve/bochasearch.py,sha256=7IGL3QHLI74ZJmAIPLFrwxqSXkqubHAKiR7q4po5Tpw,8384
153
+ memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py,sha256=RRViVkwQAlXoqH9_0azIfGr2g2DsAybglXlxJqV27Ns,8719
154
+ memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py,sha256=ob1E-iXjCSSbb6KviZWXAO7LiMt5h9C7xi4bYjC_LiY,3850
144
155
  memos/memories/textual/tree_text_memory/retrieve/reasoner.py,sha256=5csoGjviFbN9RJ8dm3B6kjvoC8xbPD8UMiGusefHaf0,2228
145
- memos/memories/textual/tree_text_memory/retrieve/recall.py,sha256=oGTp-14af1ZCHd8zkKP4vZ9F6gb3F9hGPdGp70AtiVA,7841
156
+ memos/memories/textual/tree_text_memory/retrieve/recall.py,sha256=DnK7aak5eeZpMf6pIwFpkW5IZ92FLtVQEnhf8Qan1Cw,9504
146
157
  memos/memories/textual/tree_text_memory/retrieve/reranker.py,sha256=GIo_ZqA8Oea-L58Md724ak7Oq2fCnLfBWBUvMWiD7mY,3727
147
158
  memos/memories/textual/tree_text_memory/retrieve/retrieval_mid_structs.py,sha256=CvGfdwtOwC78OWKb1nOg_tsPualirsRfbtA58_kxNpA,433
148
- memos/memories/textual/tree_text_memory/retrieve/searcher.py,sha256=18o-qlcLI0Fv6H-wRYcPf3ez6kcVjUt37TIbzEl7naM,12854
159
+ memos/memories/textual/tree_text_memory/retrieve/searcher.py,sha256=gbfjsA6skRslhreDsFuARRTjyI0aZmhF7GpncnOJoBg,14772
149
160
  memos/memories/textual/tree_text_memory/retrieve/task_goal_parser.py,sha256=vqgyczpS5As9zmljX9YF7TL0fgpl_T22FN5qV_AbcS8,3733
150
161
  memos/memories/textual/tree_text_memory/retrieve/utils.py,sha256=ISdSJEq_HqtPEqmTRQO6dXx7ioDWrbLi7mrrep4iQDw,2191
151
- memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py,sha256=x-nlZJ84shgAq9FqQR3YvE6iTMY_B7Pc0YaiGEqM1rc,10518
162
+ memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py,sha256=2NJTtVeLkqbNwCjwWkPw8haLWeUNpSifGa-BSiPpz9g,10611
152
163
  memos/memos_tools/dinding_report_bot.py,sha256=kXmooO_wUpwErT6Obql-SQu8lbt0XnM_58znIeQt734,14735
153
164
  memos/memos_tools/lockfree_dict.py,sha256=A2hFUSyjTIauiXONYzr7zFZfGlOF9J9cqrfzDNBaw_w,3811
154
165
  memos/memos_tools/notification_service.py,sha256=CZ7tZI6m0A063ON0MVEOUb9uontggvrvBLOMzorD0cI,1125
155
166
  memos/memos_tools/notification_utils.py,sha256=uHrDOXEW-WUJcoeR7gVhr2BVjNYUxIjz8cCve5F1PPs,3747
156
- memos/memos_tools/thread_safe_dict.py,sha256=5hhKndKntYIriTIkmaDaehmojuOMhEkVl4WAc2QLfHM,8252
167
+ memos/memos_tools/singleton.py,sha256=k7D0cO65gnhWmYeXdQwQ6baBCSWtjH_T0niGE2ORWUw,6288
168
+ memos/memos_tools/thread_safe_dict.py,sha256=bM0UzyO2-1V0Uq94k828vGWTHUSj7oS4cA6K-DCLPus,8534
169
+ memos/memos_tools/thread_safe_dict_segment.py,sha256=zS9Nu06EThlttTrleZYkNN-bR0a3df-6imYWjPZSXTo,12478
157
170
  memos/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
171
  memos/parsers/base.py,sha256=AWgWIZzReDiTqiv6z08_9aG2KHVzc4Bdr0Lowz0mWVI,435
159
- memos/parsers/factory.py,sha256=hPKTR0wVgMQ5Z9ZL-a9FyHWCpz9UcrG2oSEDYBAoB3g,704
172
+ memos/parsers/factory.py,sha256=yRz-KIPRxBld2KOdHxh92SHQwHIevPzN9nLxqEz_pKY,787
160
173
  memos/parsers/markitdown.py,sha256=SDwmZYC6LyiwdU79yuj6mWNMkQx9YrZzZEHU-4JzBwQ,863
161
174
  memos/reranker/__init__.py,sha256=bq3LWhVg6LdK50Hx6jOM-eWEaNM0mX4_JuHNfYgUqE0,69
162
175
  memos/reranker/base.py,sha256=bl9W-CqtlAs2k7loPvd3TRqq6Illybt6IosqrYw0DHw,573
163
- memos/reranker/cosine_local.py,sha256=tOqL6WIUxkFriaROV0hKtJQ-b79BGGYD4Ow1VE0x0g0,2970
164
- memos/reranker/factory.py,sha256=RMBKOLSgmhfvbhCqU8CnQrXR7176zjq04VD6PMDrxuk,1321
165
- memos/reranker/http_bge.py,sha256=BFlRMqspV856EGinjkI_Vr2oo6YBeF00uDy_eeTT-k0,3254
176
+ memos/reranker/concat.py,sha256=7tZ-3VhkvMkPmUwqyzU4h_0EQ-PMQfdDwNl4B_VHlSA,1768
177
+ memos/reranker/cosine_local.py,sha256=vfDP9FkC0Cw6hvFZOeGlKz3q7J0fpI0Uh9fZFsRFGyY,2988
178
+ memos/reranker/factory.py,sha256=TvumTHbfjLsJs96S0rWHvCsmQJ4naGBMYWLvfJ61QzQ,1505
179
+ memos/reranker/http_bge.py,sha256=fl8HVGqBtPDCw-h84KgoJ0zFJp1vXZKvmS6oiBKnuSk,11357
166
180
  memos/reranker/noop.py,sha256=OOy3d_AHydCm5BH4VNHEfq_vDE-D-WBgwSKIp8GQloo,414
167
181
  memos/settings.py,sha256=BYOaqhzReu2yjbwrZqx9-uMwoipkj5Clc6VthnBYOvY,225
168
182
  memos/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
183
  memos/templates/mem_reader_prompts.py,sha256=B1sWIuZbIQM1zTv-VAWDsHUNLdO1O6fCy9WdhLMq2Aw,26875
170
- memos/templates/mem_scheduler_prompts.py,sha256=ty_H9TARf5sQogHSJoRYQmrS6w0xs51mMcKNjkExdFc,5034
184
+ memos/templates/mem_scheduler_prompts.py,sha256=GuLTsBSVvilYIU_dZZj7uWFnSSTDhlDxMjNIumRa4wY,14665
171
185
  memos/templates/mos_prompts.py,sha256=yqpf8n0ObJPrJjXg4x-Nxsd0_pr0cDhdyCOopI7sgbI,18321
172
186
  memos/templates/tree_reorganize_prompts.py,sha256=FJRIwT2A4d5EnoPhNuzDFdMWpbNLlJEIfLZP69RBlDM,12112
173
- memos/types.py,sha256=N7XBYxDTdc50KEsS6YxHvYgs23ykGsZ-wNnaJBVdVi4,1791
187
+ memos/types.py,sha256=GyeD3nBInBe0TVXjme-mMzhK_TGcWnhnH3HfmVbUM0c,2018
174
188
  memos/utils.py,sha256=uB-8_5V16M7yNeAYXOIPaXwxeceUu4d_5yofLA6vbaE,428
175
189
  memos/vec_dbs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
190
  memos/vec_dbs/base.py,sha256=gbw7Gb_zs8Yx8kJIx6aTM-Ylsb4qLkVOFB-iwNJW6Sw,3564
177
191
  memos/vec_dbs/factory.py,sha256=Noa4caqzPT9b59i2jzdpAHFCSHiMfDmgRox1POkRRfE,710
178
192
  memos/vec_dbs/item.py,sha256=mLrcHF0nWtMCUjScBgaeeSqabQ3vJhKr_6wrU_g25ns,1425
179
193
  memos/vec_dbs/qdrant.py,sha256=4KAiSZ64Ulz8EeT2o1DpNDRwnKRF4iiaJbZdq-xrn0c,11052
180
- memoryos-1.0.1.dist-info/LICENSE,sha256=FU-b6N8tVc7dzUZGyNjUIG1Ihnrh2iuBziq4a1Gl8HU,11358
181
- memoryos-1.0.1.dist-info/METADATA,sha256=PvCovFOrn2QX_LoH22DuSjJQZwgl9rxgjVJvCfQMfxo,16011
182
- memoryos-1.0.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
183
- memoryos-1.0.1.dist-info/entry_points.txt,sha256=p54si8po81Yb-NK2lx5Z0lNr8QV7-5IECtkC6c8MJmI,40
184
- memoryos-1.0.1.dist-info/RECORD,,
194
+ memoryos-1.1.2.dist-info/METADATA,sha256=g3VA6ZCN6R7jJx55hiQR1gqps_SHSOMBDvJE2lUb7vo,16217
195
+ memoryos-1.1.2.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
196
+ memoryos-1.1.2.dist-info/entry_points.txt,sha256=p54si8po81Yb-NK2lx5Z0lNr8QV7-5IECtkC6c8MJmI,40
197
+ memoryos-1.1.2.dist-info/licenses/LICENSE,sha256=FU-b6N8tVc7dzUZGyNjUIG1Ihnrh2iuBziq4a1Gl8HU,11358
198
+ memoryos-1.1.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: poetry-core 2.2.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
memos/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "1.0.1"
1
+ __version__ = "1.1.2"
2
2
 
3
3
  from memos.configs.mem_cube import GeneralMemCubeConfig
4
4
  from memos.configs.mem_os import MOSConfig
memos/api/client.py ADDED
@@ -0,0 +1,109 @@
1
+ import json
2
+ import os
3
+
4
+ from typing import Any
5
+
6
+ import requests
7
+
8
+ from memos.api.product_models import MemOSAddResponse, MemOSGetMessagesResponse, MemOSSearchResponse
9
+ from memos.log import get_logger
10
+
11
+
12
+ logger = get_logger(__name__)
13
+
14
+ MAX_RETRY_COUNT = 3
15
+
16
+
17
+ class MemOSClient:
18
+ """MemOS API client"""
19
+
20
+ def __init__(self, api_key: str | None = None, base_url: str | None = None):
21
+ self.base_url = (
22
+ base_url or os.getenv("MEMOS_BASE_URL") or "https://memos.memtensor.cn/api/openmem/v1"
23
+ )
24
+ api_key = api_key or os.getenv("MEMOS_API_KEY")
25
+
26
+ if not api_key:
27
+ raise ValueError("MemOS API key is required")
28
+
29
+ self.headers = {"Content-Type": "application/json", "Authorization": f"Token {api_key}"}
30
+
31
+ def _validate_required_params(self, **params):
32
+ """Validate required parameters - if passed, they must not be empty"""
33
+ for param_name, param_value in params.items():
34
+ if not param_value:
35
+ raise ValueError(f"{param_name} is required")
36
+
37
+ def get_message(
38
+ self, user_id: str, conversation_id: str | None = None
39
+ ) -> MemOSGetMessagesResponse:
40
+ """Get messages"""
41
+ # Validate required parameters
42
+ self._validate_required_params(user_id=user_id)
43
+
44
+ url = f"{self.base_url}/get/message"
45
+ payload = {"user_id": user_id, "conversation_id": conversation_id}
46
+ for retry in range(MAX_RETRY_COUNT):
47
+ try:
48
+ response = requests.post(
49
+ url, data=json.dumps(payload), headers=self.headers, timeout=30
50
+ )
51
+ response.raise_for_status()
52
+ response_data = response.json()
53
+ return MemOSGetMessagesResponse(**response_data)
54
+ except Exception as e:
55
+ logger.error(f"Failed to get messages (retry {retry + 1}/3): {e}")
56
+ if retry == MAX_RETRY_COUNT - 1:
57
+ raise
58
+
59
+ def add_message(
60
+ self, messages: list[dict[str, Any]], user_id: str, conversation_id: str
61
+ ) -> MemOSAddResponse:
62
+ """Add memories"""
63
+ # Validate required parameters
64
+ self._validate_required_params(
65
+ messages=messages, user_id=user_id, conversation_id=conversation_id
66
+ )
67
+
68
+ url = f"{self.base_url}/add/message"
69
+ payload = {"messages": messages, "user_id": user_id, "conversation_id": conversation_id}
70
+ for retry in range(MAX_RETRY_COUNT):
71
+ try:
72
+ response = requests.post(
73
+ url, data=json.dumps(payload), headers=self.headers, timeout=30
74
+ )
75
+ response.raise_for_status()
76
+ response_data = response.json()
77
+ return MemOSAddResponse(**response_data)
78
+ except Exception as e:
79
+ logger.error(f"Failed to add memory (retry {retry + 1}/3): {e}")
80
+ if retry == MAX_RETRY_COUNT - 1:
81
+ raise
82
+
83
+ def search_memory(
84
+ self, query: str, user_id: str, conversation_id: str, memory_limit_number: int = 6
85
+ ) -> MemOSSearchResponse:
86
+ """Search memories"""
87
+ # Validate required parameters
88
+ self._validate_required_params(query=query, user_id=user_id)
89
+
90
+ url = f"{self.base_url}/search/memory"
91
+ payload = {
92
+ "query": query,
93
+ "user_id": user_id,
94
+ "conversation_id": conversation_id,
95
+ "memory_limit_number": memory_limit_number,
96
+ }
97
+
98
+ for retry in range(MAX_RETRY_COUNT):
99
+ try:
100
+ response = requests.post(
101
+ url, data=json.dumps(payload), headers=self.headers, timeout=30
102
+ )
103
+ response.raise_for_status()
104
+ response_data = response.json()
105
+ return MemOSSearchResponse(**response_data)
106
+ except Exception as e:
107
+ logger.error(f"Failed to search memory (retry {retry + 1}/3): {e}")
108
+ if retry == MAX_RETRY_COUNT - 1:
109
+ raise
memos/api/config.py CHANGED
@@ -21,7 +21,7 @@ class APIConfig:
21
21
  def get_openai_config() -> dict[str, Any]:
22
22
  """Get OpenAI configuration."""
23
23
  return {
24
- "model_name_or_path": os.getenv("MOS_OPENAI_MODEL", "gpt-4o-mini"),
24
+ "model_name_or_path": os.getenv("MOS_CHAT_MODEL", "gpt-4o-mini"),
25
25
  "temperature": float(os.getenv("MOS_CHAT_TEMPERATURE", "0.8")),
26
26
  "max_tokens": int(os.getenv("MOS_MAX_TOKENS", "1024")),
27
27
  "top_p": float(os.getenv("MOS_TOP_P", "0.9")),
@@ -100,8 +100,10 @@ class APIConfig:
100
100
  "backend": "http_bge",
101
101
  "config": {
102
102
  "url": os.getenv("MOS_RERANKER_URL"),
103
- "model": "bge-reranker-v2-m3",
103
+ "model": os.getenv("MOS_RERANKER_MODEL", "bge-reranker-v2-m3"),
104
104
  "timeout": 10,
105
+ "headers_extra": os.getenv("MOS_RERANKER_HEADERS_EXTRA"),
106
+ "rerank_source": os.getenv("MOS_RERANK_SOURCE"),
105
107
  },
106
108
  }
107
109
  else:
@@ -186,22 +188,22 @@ class APIConfig:
186
188
  return {
187
189
  "uri": os.getenv("NEO4J_URI", "bolt://localhost:7687"),
188
190
  "user": os.getenv("NEO4J_USER", "neo4j"),
189
- "db_name": os.getenv("NEO4J_DB_NAME", "shared-tree-textual-memory"),
191
+ "db_name": os.getenv("NEO4J_DB_NAME", "neo4j"),
190
192
  "password": os.getenv("NEO4J_PASSWORD", "12345678"),
191
193
  "user_name": f"memos{user_id.replace('-', '')}",
192
- "auto_create": True,
194
+ "auto_create": False,
193
195
  "use_multi_db": False,
194
- "embedding_dimension": int(os.getenv("EMBEDDING_DIMENSION", 3072)),
196
+ "embedding_dimension": int(os.getenv("EMBEDDING_DIMENSION", 1024)),
195
197
  "vec_config": {
196
198
  # Pass nested config to initialize external vector DB
197
199
  # If you use qdrant, please use Server instead of local mode.
198
200
  "backend": "qdrant",
199
201
  "config": {
200
202
  "collection_name": "neo4j_vec_db",
201
- "vector_dimension": int(os.getenv("EMBEDDING_DIMENSION", 3072)),
203
+ "vector_dimension": int(os.getenv("EMBEDDING_DIMENSION", 1024)),
202
204
  "distance_metric": "cosine",
203
- "host": "localhost",
204
- "port": 6333,
205
+ "host": os.getenv("QDRANT_HOST", "localhost"),
206
+ "port": int(os.getenv("QDRANT_PORT", "6333")),
205
207
  },
206
208
  },
207
209
  }
@@ -271,7 +273,7 @@ class APIConfig:
271
273
  def get_scheduler_config() -> dict[str, Any]:
272
274
  """Get scheduler configuration."""
273
275
  return {
274
- "backend": "general_scheduler",
276
+ "backend": "optimized_scheduler",
275
277
  "config": {
276
278
  "top_k": int(os.getenv("MOS_SCHEDULER_TOP_K", "10")),
277
279
  "act_mem_update_interval": int(
@@ -1,8 +1,6 @@
1
1
  import logging
2
2
 
3
- from fastapi import Depends, Header, Request
4
-
5
- from memos.api.context.context import RequestContext, set_request_context
3
+ from memos.context.context import RequestContext, get_current_context
6
4
 
7
5
 
8
6
  logger = logging.getLogger(__name__)
@@ -11,56 +9,17 @@ logger = logging.getLogger(__name__)
11
9
  G = RequestContext
12
10
 
13
11
 
14
- def get_trace_id_from_header(
15
- trace_id: str | None = Header(None, alias="trace-id"),
16
- x_trace_id: str | None = Header(None, alias="x-trace-id"),
17
- g_trace_id: str | None = Header(None, alias="g-trace-id"),
18
- ) -> str | None:
19
- """
20
- Extract trace_id from various possible headers.
21
-
22
- Priority: g-trace-id > x-trace-id > trace-id
23
- """
24
- return g_trace_id or x_trace_id or trace_id
25
-
26
-
27
- def get_request_context(
28
- request: Request, trace_id: str | None = Depends(get_trace_id_from_header)
29
- ) -> RequestContext:
30
- """
31
- Get request context object with trace_id and request metadata.
32
-
33
- This function creates a RequestContext and automatically sets it
34
- in the global context for use throughout the request lifecycle.
35
- """
36
- # Create context object
37
- ctx = RequestContext(trace_id=trace_id)
38
-
39
- # Set the context globally for this request
40
- set_request_context(ctx)
41
-
42
- # Log request start
43
- logger.info(f"Request started with trace_id: {ctx.trace_id}")
44
-
45
- # Add request metadata to context
46
- ctx.set("method", request.method)
47
- ctx.set("path", request.url.path)
48
- ctx.set("client_ip", request.client.host if request.client else None)
49
-
50
- return ctx
51
-
52
-
53
- def get_g_object(trace_id: str | None = Depends(get_trace_id_from_header)) -> G:
12
+ def get_g_object() -> G:
54
13
  """
55
14
  Get Flask g-like object for the current request.
56
-
57
- This creates a RequestContext and sets it globally for access
58
- throughout the request lifecycle.
15
+ Returns the context created by middleware.
59
16
  """
60
- g = RequestContext(trace_id=trace_id)
61
- set_request_context(g)
62
- logger.info(f"Request g object created with trace_id: {g.trace_id}")
63
- return g
17
+ ctx = get_current_context()
18
+ if ctx is None:
19
+ raise RuntimeError(
20
+ "No request context available. Make sure RequestContextMiddleware is properly configured."
21
+ )
22
+ return ctx
64
23
 
65
24
 
66
25
  def get_current_g() -> G | None:
@@ -70,8 +29,6 @@ def get_current_g() -> G | None:
70
29
  Returns:
71
30
  The current request's g object if available, None otherwise.
72
31
  """
73
- from memos.context import get_current_context
74
-
75
32
  return get_current_context()
76
33
 
77
34
 
@@ -85,6 +42,9 @@ def require_g() -> G:
85
42
  Raises:
86
43
  RuntimeError: If called outside of a request context.
87
44
  """
88
- from memos.context import require_context
89
-
90
- return require_context()
45
+ ctx = get_current_context()
46
+ if ctx is None:
47
+ raise RuntimeError(
48
+ "No request context available. This function must be called within a request handler."
49
+ )
50
+ return ctx