MemoryOS 0.2.0__py3-none-any.whl → 0.2.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.
- {memoryos-0.2.0.dist-info → memoryos-0.2.2.dist-info}/METADATA +67 -26
- memoryos-0.2.2.dist-info/RECORD +169 -0
- memoryos-0.2.2.dist-info/entry_points.txt +3 -0
- memos/__init__.py +1 -1
- memos/api/config.py +562 -0
- memos/api/context/context.py +147 -0
- memos/api/context/dependencies.py +90 -0
- memos/api/exceptions.py +28 -0
- memos/api/mcp_serve.py +502 -0
- memos/api/product_api.py +35 -0
- memos/api/product_models.py +163 -0
- memos/api/routers/__init__.py +1 -0
- memos/api/routers/product_router.py +386 -0
- memos/chunkers/sentence_chunker.py +8 -2
- memos/cli.py +113 -0
- memos/configs/embedder.py +27 -0
- memos/configs/graph_db.py +132 -3
- memos/configs/internet_retriever.py +6 -0
- memos/configs/llm.py +47 -0
- memos/configs/mem_cube.py +1 -1
- memos/configs/mem_os.py +5 -0
- memos/configs/mem_reader.py +9 -0
- memos/configs/mem_scheduler.py +107 -7
- memos/configs/mem_user.py +58 -0
- memos/configs/memory.py +5 -4
- memos/dependency.py +52 -0
- memos/embedders/ark.py +92 -0
- memos/embedders/factory.py +4 -0
- memos/embedders/sentence_transformer.py +8 -2
- memos/embedders/universal_api.py +32 -0
- memos/graph_dbs/base.py +11 -3
- memos/graph_dbs/factory.py +4 -0
- memos/graph_dbs/nebular.py +1364 -0
- memos/graph_dbs/neo4j.py +333 -124
- memos/graph_dbs/neo4j_community.py +300 -0
- memos/llms/base.py +9 -0
- memos/llms/deepseek.py +54 -0
- memos/llms/factory.py +10 -1
- memos/llms/hf.py +170 -13
- memos/llms/hf_singleton.py +114 -0
- memos/llms/ollama.py +4 -0
- memos/llms/openai.py +67 -1
- memos/llms/qwen.py +63 -0
- memos/llms/vllm.py +153 -0
- memos/log.py +1 -1
- memos/mem_cube/general.py +77 -16
- memos/mem_cube/utils.py +109 -0
- memos/mem_os/core.py +251 -51
- memos/mem_os/main.py +94 -12
- memos/mem_os/product.py +1220 -43
- memos/mem_os/utils/default_config.py +352 -0
- memos/mem_os/utils/format_utils.py +1401 -0
- memos/mem_reader/simple_struct.py +18 -10
- memos/mem_scheduler/base_scheduler.py +441 -40
- memos/mem_scheduler/general_scheduler.py +249 -248
- memos/mem_scheduler/modules/base.py +14 -5
- memos/mem_scheduler/modules/dispatcher.py +67 -4
- memos/mem_scheduler/modules/misc.py +104 -0
- memos/mem_scheduler/modules/monitor.py +240 -50
- memos/mem_scheduler/modules/rabbitmq_service.py +319 -0
- memos/mem_scheduler/modules/redis_service.py +32 -22
- memos/mem_scheduler/modules/retriever.py +167 -23
- memos/mem_scheduler/modules/scheduler_logger.py +255 -0
- memos/mem_scheduler/mos_for_test_scheduler.py +140 -0
- memos/mem_scheduler/schemas/__init__.py +0 -0
- memos/mem_scheduler/schemas/general_schemas.py +43 -0
- memos/mem_scheduler/{modules/schemas.py → schemas/message_schemas.py} +63 -61
- memos/mem_scheduler/schemas/monitor_schemas.py +329 -0
- memos/mem_scheduler/utils/__init__.py +0 -0
- memos/mem_scheduler/utils/filter_utils.py +176 -0
- memos/mem_scheduler/utils/misc_utils.py +61 -0
- memos/mem_user/factory.py +94 -0
- memos/mem_user/mysql_persistent_user_manager.py +271 -0
- memos/mem_user/mysql_user_manager.py +500 -0
- memos/mem_user/persistent_factory.py +96 -0
- memos/mem_user/persistent_user_manager.py +260 -0
- memos/mem_user/user_manager.py +4 -4
- memos/memories/activation/item.py +29 -0
- memos/memories/activation/kv.py +10 -3
- memos/memories/activation/vllmkv.py +219 -0
- memos/memories/factory.py +2 -0
- memos/memories/textual/base.py +1 -1
- memos/memories/textual/general.py +43 -97
- memos/memories/textual/item.py +5 -33
- memos/memories/textual/tree.py +22 -12
- memos/memories/textual/tree_text_memory/organize/conflict.py +9 -5
- memos/memories/textual/tree_text_memory/organize/manager.py +26 -18
- memos/memories/textual/tree_text_memory/organize/redundancy.py +25 -44
- memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py +50 -48
- memos/memories/textual/tree_text_memory/organize/reorganizer.py +81 -56
- memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py +6 -3
- memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py +2 -0
- memos/memories/textual/tree_text_memory/retrieve/recall.py +0 -1
- memos/memories/textual/tree_text_memory/retrieve/reranker.py +2 -2
- memos/memories/textual/tree_text_memory/retrieve/retrieval_mid_structs.py +2 -0
- memos/memories/textual/tree_text_memory/retrieve/searcher.py +52 -28
- memos/memories/textual/tree_text_memory/retrieve/task_goal_parser.py +42 -15
- memos/memories/textual/tree_text_memory/retrieve/utils.py +11 -7
- memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py +62 -58
- memos/memos_tools/dinding_report_bot.py +422 -0
- memos/memos_tools/notification_service.py +44 -0
- memos/memos_tools/notification_utils.py +96 -0
- memos/parsers/markitdown.py +8 -2
- memos/settings.py +3 -1
- memos/templates/mem_reader_prompts.py +66 -23
- memos/templates/mem_scheduler_prompts.py +126 -43
- memos/templates/mos_prompts.py +87 -0
- memos/templates/tree_reorganize_prompts.py +85 -30
- memos/vec_dbs/base.py +12 -0
- memos/vec_dbs/qdrant.py +46 -20
- memoryos-0.2.0.dist-info/RECORD +0 -128
- memos/mem_scheduler/utils.py +0 -26
- {memoryos-0.2.0.dist-info → memoryos-0.2.2.dist-info}/LICENSE +0 -0
- {memoryos-0.2.0.dist-info → memoryos-0.2.2.dist-info}/WHEEL +0 -0
memos/vec_dbs/qdrant.py
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
from typing import Any
|
|
2
2
|
|
|
3
|
-
from qdrant_client import QdrantClient
|
|
4
|
-
from qdrant_client.http import models
|
|
5
|
-
from qdrant_client.http.models import (
|
|
6
|
-
Distance,
|
|
7
|
-
FieldCondition,
|
|
8
|
-
Filter,
|
|
9
|
-
MatchValue,
|
|
10
|
-
PointStruct,
|
|
11
|
-
VectorParams,
|
|
12
|
-
)
|
|
13
|
-
|
|
14
3
|
from memos.configs.vec_db import QdrantVecDBConfig
|
|
4
|
+
from memos.dependency import require_python_package
|
|
15
5
|
from memos.log import get_logger
|
|
16
6
|
from memos.vec_dbs.base import BaseVecDB
|
|
17
7
|
from memos.vec_dbs.item import VecDBItem
|
|
@@ -23,8 +13,15 @@ logger = get_logger(__name__)
|
|
|
23
13
|
class QdrantVecDB(BaseVecDB):
|
|
24
14
|
"""Qdrant vector database implementation."""
|
|
25
15
|
|
|
16
|
+
@require_python_package(
|
|
17
|
+
import_name="qdrant_client",
|
|
18
|
+
install_command="pip install qdrant-client",
|
|
19
|
+
install_link="https://python-client.qdrant.tech/",
|
|
20
|
+
)
|
|
26
21
|
def __init__(self, config: QdrantVecDBConfig):
|
|
27
22
|
"""Initialize the Qdrant vector database and the collection."""
|
|
23
|
+
from qdrant_client import QdrantClient
|
|
24
|
+
|
|
28
25
|
self.config = config
|
|
29
26
|
|
|
30
27
|
# If both host and port are None, we are running in local mode
|
|
@@ -43,6 +40,7 @@ class QdrantVecDB(BaseVecDB):
|
|
|
43
40
|
|
|
44
41
|
def create_collection(self) -> None:
|
|
45
42
|
"""Create a new collection with specified parameters."""
|
|
43
|
+
from qdrant_client.http import models
|
|
46
44
|
|
|
47
45
|
if self.collection_exists(self.config.collection_name):
|
|
48
46
|
collection_info = self.client.get_collection(self.config.collection_name)
|
|
@@ -54,14 +52,14 @@ class QdrantVecDB(BaseVecDB):
|
|
|
54
52
|
|
|
55
53
|
# Map string distance metric to Qdrant Distance enum
|
|
56
54
|
distance_map = {
|
|
57
|
-
"cosine": Distance.COSINE,
|
|
58
|
-
"euclidean": Distance.EUCLID,
|
|
59
|
-
"dot": Distance.DOT,
|
|
55
|
+
"cosine": models.Distance.COSINE,
|
|
56
|
+
"euclidean": models.Distance.EUCLID,
|
|
57
|
+
"dot": models.Distance.DOT,
|
|
60
58
|
}
|
|
61
59
|
|
|
62
60
|
self.client.create_collection(
|
|
63
61
|
collection_name=self.config.collection_name,
|
|
64
|
-
vectors_config=VectorParams(
|
|
62
|
+
vectors_config=models.VectorParams(
|
|
65
63
|
size=self.config.vector_dimension,
|
|
66
64
|
distance=distance_map[self.config.distance_metric],
|
|
67
65
|
),
|
|
@@ -122,16 +120,20 @@ class QdrantVecDB(BaseVecDB):
|
|
|
122
120
|
for point in response
|
|
123
121
|
]
|
|
124
122
|
|
|
125
|
-
def _dict_to_filter(self, filter_dict: dict[str, Any]) ->
|
|
123
|
+
def _dict_to_filter(self, filter_dict: dict[str, Any]) -> Any:
|
|
124
|
+
from qdrant_client.http import models
|
|
125
|
+
|
|
126
126
|
"""Convert a dictionary filter to a Qdrant Filter object."""
|
|
127
127
|
conditions = []
|
|
128
128
|
|
|
129
129
|
for field, value in filter_dict.items():
|
|
130
130
|
# Simple exact match for now
|
|
131
131
|
# TODO: Extend this to support more complex conditions
|
|
132
|
-
conditions.append(
|
|
132
|
+
conditions.append(
|
|
133
|
+
models.FieldCondition(key=field, match=models.MatchValue(value=value))
|
|
134
|
+
)
|
|
133
135
|
|
|
134
|
-
return Filter(must=conditions)
|
|
136
|
+
return models.Filter(must=conditions)
|
|
135
137
|
|
|
136
138
|
def get_by_id(self, id: str) -> VecDBItem | None:
|
|
137
139
|
"""Get a single item by ID."""
|
|
@@ -235,6 +237,8 @@ class QdrantVecDB(BaseVecDB):
|
|
|
235
237
|
return response.count
|
|
236
238
|
|
|
237
239
|
def add(self, data: list[VecDBItem | dict[str, Any]]) -> None:
|
|
240
|
+
from qdrant_client.http import models
|
|
241
|
+
|
|
238
242
|
"""
|
|
239
243
|
Add data to the vector database.
|
|
240
244
|
|
|
@@ -249,13 +253,14 @@ class QdrantVecDB(BaseVecDB):
|
|
|
249
253
|
if isinstance(item, dict):
|
|
250
254
|
item = item.copy()
|
|
251
255
|
item = VecDBItem.from_dict(item)
|
|
252
|
-
point = PointStruct(id=item.id, vector=item.vector, payload=item.payload)
|
|
256
|
+
point = models.PointStruct(id=item.id, vector=item.vector, payload=item.payload)
|
|
253
257
|
points.append(point)
|
|
254
258
|
|
|
255
259
|
self.client.upsert(collection_name=self.config.collection_name, points=points)
|
|
256
260
|
|
|
257
261
|
def update(self, id: str, data: VecDBItem | dict[str, Any]) -> None:
|
|
258
262
|
"""Update an item in the vector database."""
|
|
263
|
+
from qdrant_client.http import models
|
|
259
264
|
|
|
260
265
|
if isinstance(data, dict):
|
|
261
266
|
data = data.copy()
|
|
@@ -265,7 +270,7 @@ class QdrantVecDB(BaseVecDB):
|
|
|
265
270
|
# For vector updates (with or without payload), use upsert with the same ID
|
|
266
271
|
self.client.upsert(
|
|
267
272
|
collection_name=self.config.collection_name,
|
|
268
|
-
points=[PointStruct(id=id, vector=data.vector, payload=data.payload)],
|
|
273
|
+
points=[models.PointStruct(id=id, vector=data.vector, payload=data.payload)],
|
|
269
274
|
)
|
|
270
275
|
else:
|
|
271
276
|
# For payload-only updates
|
|
@@ -273,6 +278,25 @@ class QdrantVecDB(BaseVecDB):
|
|
|
273
278
|
collection_name=self.config.collection_name, payload=data.payload, points=[id]
|
|
274
279
|
)
|
|
275
280
|
|
|
281
|
+
def ensure_payload_indexes(self, fields: list[str]) -> None:
|
|
282
|
+
"""
|
|
283
|
+
Create payload indexes for specified fields in the collection.
|
|
284
|
+
This is idempotent: it will skip if index already exists.
|
|
285
|
+
|
|
286
|
+
Args:
|
|
287
|
+
fields (list[str]): List of field names to index (as keyword).
|
|
288
|
+
"""
|
|
289
|
+
for field in fields:
|
|
290
|
+
try:
|
|
291
|
+
self.client.create_payload_index(
|
|
292
|
+
collection_name=self.config.collection_name,
|
|
293
|
+
field_name=field,
|
|
294
|
+
field_schema="keyword", # Could be extended in future
|
|
295
|
+
)
|
|
296
|
+
logger.debug(f"Qdrant payload index on '{field}' ensured.")
|
|
297
|
+
except Exception as e:
|
|
298
|
+
logger.warning(f"Failed to create payload index on '{field}': {e}")
|
|
299
|
+
|
|
276
300
|
def upsert(self, data: list[VecDBItem | dict[str, Any]]) -> None:
|
|
277
301
|
"""
|
|
278
302
|
Add or update data in the vector database.
|
|
@@ -284,6 +308,8 @@ class QdrantVecDB(BaseVecDB):
|
|
|
284
308
|
self.add(data)
|
|
285
309
|
|
|
286
310
|
def delete(self, ids: list[str]) -> None:
|
|
311
|
+
from qdrant_client.http import models
|
|
312
|
+
|
|
287
313
|
"""Delete items from the vector database."""
|
|
288
314
|
point_ids: list[str | int] = ids
|
|
289
315
|
self.client.delete(
|
memoryos-0.2.0.dist-info/RECORD
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
memos/__init__.py,sha256=9C9wxypP0Ch_j6yjvoNgmbr8spHUAsdC1hd49UswG2U,575
|
|
2
|
-
memos/api/start_api.py,sha256=vDKS3D8AEwlDAkpWxHiblzVqcQ3cvGSnnpP4Jhjm3GE,14656
|
|
3
|
-
memos/chunkers/__init__.py,sha256=7lZOTN3e9Yp5XBsDX5wnWJ3tY126cRU9GmfevzJXAtU,67
|
|
4
|
-
memos/chunkers/base.py,sha256=z0rG5vM7FGremQdSZ_3jlTGbsDtlkWAYWdtSAGqpaR4,655
|
|
5
|
-
memos/chunkers/factory.py,sha256=ixpYz41GG3SZW-1ynLvfbhOZ0aGnFi2wUIYT4_Uxh30,693
|
|
6
|
-
memos/chunkers/sentence_chunker.py,sha256=U0MpeaxONiz3daYXVwH7QiPvivhr2OeKGXdKMG2YJT0,1191
|
|
7
|
-
memos/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
memos/configs/base.py,sha256=bOOhEU6HGFTq5jne_TXn8Br72rvAfJHYvYllFUPs12A,2588
|
|
9
|
-
memos/configs/chunker.py,sha256=Ulci0MyhS_FkuV95l7Pr9Vei179aEFEUigwVmtmSDfI,1593
|
|
10
|
-
memos/configs/embedder.py,sha256=a7EbWB3tnqeK_pdK6-CneoKIwSqQg6sJrXuHX3J1PnI,1769
|
|
11
|
-
memos/configs/graph_db.py,sha256=h5wz2lJSdB1IVaidzWHXDfvL4_IAjrjYrmypu1QCCq4,1432
|
|
12
|
-
memos/configs/internet_retriever.py,sha256=7x1Sp--skifHQqWvcPFiEOkda6HCCocw6HSO5H127jk,3046
|
|
13
|
-
memos/configs/llm.py,sha256=iNLGnZYbeqkLpjP4L0sGzoCnH4NH8SBUzBt6bTohxZI,2446
|
|
14
|
-
memos/configs/mem_chat.py,sha256=TjEQHRG1HpLwCBo3hrn5aVK23rykNtV6Be5p4YIg7F4,2571
|
|
15
|
-
memos/configs/mem_cube.py,sha256=AvffqpFC2WmzshouxLJbabuzt0PKLWSauQMnagP_EM0,3088
|
|
16
|
-
memos/configs/mem_os.py,sha256=bUuyi6boIjjvYzrlFoCSqchbWF37IcA5BQi03feq7bg,2476
|
|
17
|
-
memos/configs/mem_reader.py,sha256=m5pRr3DxtmOKBFdbnCki_XgG47oKfcasJNwZGXg9gN4,2022
|
|
18
|
-
memos/configs/mem_scheduler.py,sha256=bTsBfl9GoXbjkiPDCenH8K2QY4RfAJNk-XN1UBl2W4Q,2959
|
|
19
|
-
memos/configs/memory.py,sha256=kAGmniEgBdHgAsZGXeUF7J-ekwU5H9HnxQp_3jhUtLQ,6976
|
|
20
|
-
memos/configs/parser.py,sha256=dy-QoevJbCnkJePKgpzR4oziOzYnS4jB6XH-YrpeMns,1145
|
|
21
|
-
memos/configs/utils.py,sha256=X9NQ6-xURsZROAdS3WT96phVfHcOHgDPOo2Yq68QoKM,242
|
|
22
|
-
memos/configs/vec_db.py,sha256=Gjhhda94pyTDjyJGe2Z6rVEqH4FtViiwq1-7QWhjarM,2335
|
|
23
|
-
memos/deprecation.py,sha256=k2i4bBKqIwu20guwJmPPjOm7reOy19GzLwrTMrIqjPk,7408
|
|
24
|
-
memos/embedders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
memos/embedders/base.py,sha256=zOYERcaqBVCyMVndcR6vhFC_O2itEuTM058odDfhTx8,449
|
|
26
|
-
memos/embedders/factory.py,sha256=DkHl0z2GjLtxe0ASl7o9SDLtQg-hEgdmopuf6HdsudA,845
|
|
27
|
-
memos/embedders/ollama.py,sha256=8lHeMCqxej44ZgeDsPGL-5almxRBWsYYYflu5LeAf7w,2361
|
|
28
|
-
memos/embedders/sentence_transformer.py,sha256=lePjsdtNaf69HbOEsbG31Nj1BWgi0nCdkPtIYleLYWM,1377
|
|
29
|
-
memos/exceptions.py,sha256=UnBoZUYdwb1KoQPE-pXSLT4yOjkwxse9fx0rb_MhEzo,531
|
|
30
|
-
memos/graph_dbs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
-
memos/graph_dbs/base.py,sha256=dTCdoYNS6FZQukpmpqhh8c_NwZ9Myql41g1Im8aDR6E,6873
|
|
32
|
-
memos/graph_dbs/factory.py,sha256=9fS8w0GowWNMSupEyXyTRnivX-RJxTkxPy-tNHs15OM,732
|
|
33
|
-
memos/graph_dbs/item.py,sha256=BfK17hA_hHu7I348jWugP_rb9GS5hpKfgqtYGGHBohk,1450
|
|
34
|
-
memos/graph_dbs/neo4j.py,sha256=bOTBvHGw_65dudqIpQep9D95qBPyx-NHfTybsNAdjiM,33672
|
|
35
|
-
memos/hello_world.py,sha256=RV1vXfK1_U_xAvSusqc-4A8wk3yr8WEQ9q88dmBxvnI,3057
|
|
36
|
-
memos/llms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
-
memos/llms/base.py,sha256=E7qlIWUi_bxRwbKw0vGG7NjHksz45D_-gcrHKT3Ak1k,438
|
|
38
|
-
memos/llms/factory.py,sha256=1JP2ZwUKN4ywaNgdZcRM6wSjahnEXqyuFiGzoxLCadY,792
|
|
39
|
-
memos/llms/hf.py,sha256=rxcR8nAvhezsIQNeOeow-xn-z2h9j1poJO2jPNcJAg8,9008
|
|
40
|
-
memos/llms/ollama.py,sha256=_nZYe0OauPWWcFFYVPSNtvyDGblrL49-EznApa-Mr5I,2565
|
|
41
|
-
memos/llms/openai.py,sha256=agIFI58UXz-fOEth4EBTUlQ5p6ECBg9v2gFed6OVFzw,1192
|
|
42
|
-
memos/llms/utils.py,sha256=OcbM9iSpFJpio7sTT5wvxVx-JnqjIx7eSgiRk7dt0ZI,292
|
|
43
|
-
memos/log.py,sha256=ocQi2NWlpefgxOJi9EoB0as6tXhLA4dmXuVIgZT52FE,2234
|
|
44
|
-
memos/mem_chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
-
memos/mem_chat/base.py,sha256=LICB_mwUkdCVKb_r33GEPbrEr-2v3dEnI54cAvhcEew,830
|
|
46
|
-
memos/mem_chat/factory.py,sha256=KKCDG9FrpfY2hD3iJ4GM9x8dN09dyhstP1cOUH_knrY,720
|
|
47
|
-
memos/mem_chat/simple.py,sha256=-DRlE8nKZcGuwEubALK-nUf-wWRbGXkDJXUg8Dxhoyo,7919
|
|
48
|
-
memos/mem_cube/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
-
memos/mem_cube/base.py,sha256=NoZKz16oO5AAnJ0alcY52Z1c3C1rbGRe8Znz0CCzDnw,864
|
|
50
|
-
memos/mem_cube/general.py,sha256=ad7Qzshf-psBuu24BX_K0NDN0KDuwliAi06TG4wyH1M,5535
|
|
51
|
-
memos/mem_cube/utils.py,sha256=-6KiCCzy1PehbGAZY20BVcelvdiKFSu4CXMXi8qNrGU,777
|
|
52
|
-
memos/mem_os/client.py,sha256=0M-WRTlQr7fDAYtq4B8dsMR0PfmyvD-ySMhKcW3Umd0,43
|
|
53
|
-
memos/mem_os/core.py,sha256=csZQqZfbdACapcA85Ahh8vBfi0VPFGM_6yilfmln008,34836
|
|
54
|
-
memos/mem_os/main.py,sha256=sGMleiO1_CG8-v3ctIMFe1hx8Jy_OohFtqqpWgRMhbw,21099
|
|
55
|
-
memos/mem_os/product.py,sha256=SFLFEleZISCeBU19b-uohFsaUNXB9tN-GGypuhDFx1I,3043
|
|
56
|
-
memos/mem_reader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
-
memos/mem_reader/base.py,sha256=SSuaD3J88XbHsME1Qa-EAgZ57xApPHPHppMSeeS3JZ4,957
|
|
58
|
-
memos/mem_reader/factory.py,sha256=emKnId9BhScSkqCZyLSLWntixnU3wAMIOVdsRpHldJA,766
|
|
59
|
-
memos/mem_reader/memory.py,sha256=f3fAjrs8Jf6mBZWTgzkEZle7XjDwTJHxM1L2sOb85Tg,13288
|
|
60
|
-
memos/mem_reader/simple_struct.py,sha256=SfFxtZ_YGcDh-A4Ztx4ouEBC6m0j8mLCVF2HN4oGRy8,9739
|
|
61
|
-
memos/mem_scheduler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
|
-
memos/mem_scheduler/base_scheduler.py,sha256=bYxLm6nUorJGm8DCiBOJ6DG8eqCK3cCIrm3cEe2be7M,6617
|
|
63
|
-
memos/mem_scheduler/general_scheduler.py,sha256=Tp9Nh8qFVR9TklmmISSoBoeHoWTqM0P977gmb-HS6rM,12895
|
|
64
|
-
memos/mem_scheduler/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
memos/mem_scheduler/modules/base.py,sha256=j2IJLiDGfen-JyJZSsVQ45s4kvdvPTvJEaqXeEN8Png,2824
|
|
66
|
-
memos/mem_scheduler/modules/dispatcher.py,sha256=JFeqbSBRMfjkOP4ovL9DmB-MzRbOdaVo_GcuxL_0yuY,3902
|
|
67
|
-
memos/mem_scheduler/modules/monitor.py,sha256=mZIJIPhRxd9aH02MFP9gGZ7RqbhZlSQGtfXTJCKYmKU,2683
|
|
68
|
-
memos/mem_scheduler/modules/redis_service.py,sha256=sEgglO1fTpdEE39tl0e2GAA8Y0gXxNo3kqu5lDuyVx4,5479
|
|
69
|
-
memos/mem_scheduler/modules/retriever.py,sha256=NJEFpX2ap4mSQZ9GYBvBr9QMD4QpgLEYaT1DkR1nyKA,1351
|
|
70
|
-
memos/mem_scheduler/modules/schemas.py,sha256=J7Rv4M932Wdm-NoOWQne9txOK7j0V9ScdsRH7klPGTI,5301
|
|
71
|
-
memos/mem_scheduler/scheduler_factory.py,sha256=pw6FKO0EuxFRipMnD22DvcjbM6pdmVfJmRjUvdTaU5E,800
|
|
72
|
-
memos/mem_scheduler/utils.py,sha256=xa2BotLf7iAQ4bVJEujPvRjuzWItOA2gP2H3BkBM5XY,582
|
|
73
|
-
memos/mem_user/user_manager.py,sha256=9XIt4Q2HA1fhh9dbjKRAXh-GTdT43WGYSx-IsST7jZM,15654
|
|
74
|
-
memos/memories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
|
-
memos/memories/activation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
76
|
-
memos/memories/activation/base.py,sha256=kiC35AOnuofgYMzLxZyVULsfOoVq03BGvi6AXtNvF-I,1151
|
|
77
|
-
memos/memories/activation/item.py,sha256=kjM7khcHn-7SJfOmOU9QXwPekRv5Y7xdRQABg_4arGU,757
|
|
78
|
-
memos/memories/activation/kv.py,sha256=nFETbDZk84Tw6j2b123uFck5k3RGlOkYIHYr11Jk6fw,8061
|
|
79
|
-
memos/memories/base.py,sha256=Sr-dEuDc982WwdVREQ2nL8L6rUc0KZPTaBJeYdgx8h8,577
|
|
80
|
-
memos/memories/factory.py,sha256=PZ9OaEAgV2hDwo6UhyCe3OMplOYWefMyYEpXXc-hhGs,1311
|
|
81
|
-
memos/memories/parametric/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
|
-
memos/memories/parametric/base.py,sha256=RQK2LeaMRr2rVbfoa0M7RJx4r0dGD_uBXt73eizBVhI,667
|
|
83
|
-
memos/memories/parametric/item.py,sha256=9FcY7kf53Uvl5FGXn23o2c0dI_9aUcYjUqTxKOMlbuI,219
|
|
84
|
-
memos/memories/parametric/lora.py,sha256=TqSI2OjmFi-XXCeM-MchSwh1sAhOwL7_JnOwSy9qpis,1397
|
|
85
|
-
memos/memories/textual/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
|
-
memos/memories/textual/base.py,sha256=3XVeuXZY3ZFzZ6zHIE3l5hx7X2PiH7orxvCwrNZ1l3U,2812
|
|
87
|
-
memos/memories/textual/general.py,sha256=7iektZA-_iR80sOlADW2EFkPT5Utbunu9hdZgT7Ocrk,11072
|
|
88
|
-
memos/memories/textual/item.py,sha256=8tSsiDztsxfyNXWB1TG2E5a4nhIQcuYMJ_BrnPl6osQ,6323
|
|
89
|
-
memos/memories/textual/naive.py,sha256=Z_gfbxI6cQGJ_raOTQic4fnpo493Xq3yEQ8qDV4xplo,6954
|
|
90
|
-
memos/memories/textual/tree.py,sha256=xOc4yMO-tISHmndS-T3ZxGQDr3cARapiTU71PTZdJbQ,13514
|
|
91
|
-
memos/memories/textual/tree_text_memory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
92
|
-
memos/memories/textual/tree_text_memory/organize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
-
memos/memories/textual/tree_text_memory/organize/conflict.py,sha256=AIJ3pZLPkYsOZE_AqqnCykaGsCk00wLZ8dAdpaz29uE,8462
|
|
94
|
-
memos/memories/textual/tree_text_memory/organize/manager.py,sha256=ZT0VZnvR-Nd3P3f2eu6YumoauMUmp94NVP90JpI9C5w,13486
|
|
95
|
-
memos/memories/textual/tree_text_memory/organize/redundancy.py,sha256=Z88OaNs5YvFY3liXDRFqPcdiIVdTTdlJ_esx3oOiRxI,9075
|
|
96
|
-
memos/memories/textual/tree_text_memory/organize/relation_reason_detector.py,sha256=gRG6iMT8Rm2Pk42UO1JzRaj3neIYmmOJmySi1knaGXA,8809
|
|
97
|
-
memos/memories/textual/tree_text_memory/organize/reorganizer.py,sha256=fy1P_9RWIiKBDayAfCviRZzJx48TMY09ynE0OenMX-o,22932
|
|
98
|
-
memos/memories/textual/tree_text_memory/retrieve/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
99
|
-
memos/memories/textual/tree_text_memory/retrieve/internet_retriever.py,sha256=asSzVcSVOiigN4-4NzFc7wzthGDK6P5sODIDF5W9egA,8467
|
|
100
|
-
memos/memories/textual/tree_text_memory/retrieve/internet_retriever_factory.py,sha256=pBlufTc5-mdWcyKR_R0Syev3QPMtV83mydyIw0Saz4o,3192
|
|
101
|
-
memos/memories/textual/tree_text_memory/retrieve/reasoner.py,sha256=5csoGjviFbN9RJ8dm3B6kjvoC8xbPD8UMiGusefHaf0,2228
|
|
102
|
-
memos/memories/textual/tree_text_memory/retrieve/recall.py,sha256=a1P-L3ZER2wh6qTy6p2EhJ-6mSeSisbZgJnHjQv4XkM,5846
|
|
103
|
-
memos/memories/textual/tree_text_memory/retrieve/reranker.py,sha256=U_O0uEKpWHAURhSvkzjYoR2LC8v8vzBjRo8MTeW_6i4,3680
|
|
104
|
-
memos/memories/textual/tree_text_memory/retrieve/retrieval_mid_structs.py,sha256=jZs2S1jtd727gqDKs8clYCOwcqOBnrl_UmFU1FPE0w8,360
|
|
105
|
-
memos/memories/textual/tree_text_memory/retrieve/searcher.py,sha256=2TQsYxWXxZns7jQo1_5rZxbdjqReaQIzGDYJb9eZ4RM,8367
|
|
106
|
-
memos/memories/textual/tree_text_memory/retrieve/task_goal_parser.py,sha256=mAPxg5P3wmAvRVrutpeE3i2yC1R90egUUGdTWyWmq1U,2653
|
|
107
|
-
memos/memories/textual/tree_text_memory/retrieve/utils.py,sha256=JU9_3OTRp1lXHWV6SuRUIO_GjRCPclEu9MrjNZX_kck,1406
|
|
108
|
-
memos/memories/textual/tree_text_memory/retrieve/xinyusearch.py,sha256=0bewmGoHE2n-inHDMlHY2wfpGUzTPSRBm9JkGl63rag,10437
|
|
109
|
-
memos/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
|
-
memos/parsers/base.py,sha256=AWgWIZzReDiTqiv6z08_9aG2KHVzc4Bdr0Lowz0mWVI,435
|
|
111
|
-
memos/parsers/factory.py,sha256=hPKTR0wVgMQ5Z9ZL-a9FyHWCpz9UcrG2oSEDYBAoB3g,704
|
|
112
|
-
memos/parsers/markitdown.py,sha256=Yh7YAv8PFsz3WgegrwtA_hqaC9W4SOMZP7IRXxcnn_w,615
|
|
113
|
-
memos/settings.py,sha256=HYNBFRW0CS2Kh4GmMRMA-Yrh3ZhJno4S4B6gx6P3T30,178
|
|
114
|
-
memos/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
115
|
-
memos/templates/mem_reader_prompts.py,sha256=tEsrlcYifQoSTZ0JXZr8Oo_--7zo3TPKAFoaHnDHTtE,7701
|
|
116
|
-
memos/templates/mem_scheduler_prompts.py,sha256=53bcOCC32790tVJ7_s7o0jwu6hg7jUs-z8dyahlLv24,2417
|
|
117
|
-
memos/templates/mos_prompts.py,sha256=QJrMb4FwMOAVb-SFSCGTuqqzvD_YhBTpdVBvpUIftK0,3595
|
|
118
|
-
memos/templates/tree_reorganize_prompts.py,sha256=5nN5m8tlxxy46Xz4x9bGhzMPkywVFKDFqvSCjK3xnTA,6347
|
|
119
|
-
memos/types.py,sha256=N7XBYxDTdc50KEsS6YxHvYgs23ykGsZ-wNnaJBVdVi4,1791
|
|
120
|
-
memos/vec_dbs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
121
|
-
memos/vec_dbs/base.py,sha256=a_-Gsh51C1_8R35mK7DykDxQTicmdgyz4fbEw8d5Mlg,3165
|
|
122
|
-
memos/vec_dbs/factory.py,sha256=Noa4caqzPT9b59i2jzdpAHFCSHiMfDmgRox1POkRRfE,710
|
|
123
|
-
memos/vec_dbs/item.py,sha256=mLrcHF0nWtMCUjScBgaeeSqabQ3vJhKr_6wrU_g25ns,1425
|
|
124
|
-
memos/vec_dbs/qdrant.py,sha256=I_XFmz_7SgFojMTFaqkPvwQEdMBl0MsCKZ43qatwuV0,9858
|
|
125
|
-
memoryos-0.2.0.dist-info/LICENSE,sha256=FU-b6N8tVc7dzUZGyNjUIG1Ihnrh2iuBziq4a1Gl8HU,11358
|
|
126
|
-
memoryos-0.2.0.dist-info/METADATA,sha256=q0T0qM5v5Dkq9J5kKBtahtGWUHlSsu7R_dT3O_0Rb1A,12636
|
|
127
|
-
memoryos-0.2.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
128
|
-
memoryos-0.2.0.dist-info/RECORD,,
|
memos/mem_scheduler/utils.py
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
|
|
3
|
-
from pathlib import Path
|
|
4
|
-
|
|
5
|
-
import yaml
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def extract_json_dict(text: str):
|
|
9
|
-
text = text.strip()
|
|
10
|
-
patterns_to_remove = ["json'''", "latex'''", "'''"]
|
|
11
|
-
for pattern in patterns_to_remove:
|
|
12
|
-
text = text.replace(pattern, "")
|
|
13
|
-
res = json.loads(text)
|
|
14
|
-
return res
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def parse_yaml(yaml_file):
|
|
18
|
-
yaml_path = Path(yaml_file)
|
|
19
|
-
yaml_path = Path(yaml_file)
|
|
20
|
-
if not yaml_path.is_file():
|
|
21
|
-
raise FileNotFoundError(f"No such file: {yaml_file}")
|
|
22
|
-
|
|
23
|
-
with yaml_path.open("r", encoding="utf-8") as fr:
|
|
24
|
-
data = yaml.safe_load(fr)
|
|
25
|
-
|
|
26
|
-
return data
|
|
File without changes
|
|
File without changes
|