mem0ai-azure-mysql 0.1.116.5__tar.gz → 0.1.116.7__tar.gz
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.
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/PKG-INFO +1 -1
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/graph_memory.py +42 -52
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/main.py +7 -6
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/utils.py +2 -2
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/pyproject.toml +1 -1
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/.gitignore +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/README.md +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/client/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/client/main.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/client/project.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/client/utils.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/base.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/dbs/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/dbs/base.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/dbs/mysql.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/embeddings/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/embeddings/base.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/enums.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/anthropic.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/aws_bedrock.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/azure.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/base.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/deepseek.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/lmstudio.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/ollama.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/openai.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/vllm.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/prompts.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/azure_ai_search.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/baidu.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/chroma.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/databricks.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/elasticsearch.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/faiss.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/langchain.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/milvus.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/mongodb.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/opensearch.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/pgvector.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/pinecone.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/qdrant.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/redis.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/supabase.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/upstash_vector.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/vertex_ai_vector_search.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/weaviate.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/dbs/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/dbs/base.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/dbs/configs.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/dbs/mysql.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/aws_bedrock.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/azure_openai.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/base.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/configs.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/gemini.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/huggingface.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/langchain.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/lmstudio.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/mock.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/ollama.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/openai.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/together.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/vertexai.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/graphs/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/graphs/configs.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/graphs/neptune/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/graphs/neptune/base.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/graphs/neptune/main.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/graphs/tools.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/graphs/utils.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/anthropic.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/aws_bedrock.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/azure_openai.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/azure_openai_structured.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/base.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/configs.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/deepseek.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/gemini.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/groq.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/langchain.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/litellm.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/lmstudio.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/ollama.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/openai.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/openai_structured.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/sarvam.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/together.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/vllm.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/xai.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/base.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/kuzu_memory.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/memgraph_memory.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/setup.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/storage.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/telemetry.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/proxy/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/proxy/main.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/utils/factory.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/__init__.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/azure_ai_search.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/baidu.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/base.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/chroma.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/configs.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/databricks.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/elasticsearch.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/faiss.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/langchain.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/milvus.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/mongodb.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/opensearch.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/pgvector.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/pinecone.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/qdrant.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/redis.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/supabase.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/upstash_vector.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/vertex_ai_vector_search.py +0 -0
- {mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/weaviate.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mem0ai-azure-mysql
|
|
3
|
-
Version: 0.1.116.
|
|
3
|
+
Version: 0.1.116.7
|
|
4
4
|
Summary: Long-term memory for AI Agents with Azure DefaultAzureCredential authentication and MySQL history database support
|
|
5
5
|
Requires-Python: <4.0,>=3.9
|
|
6
6
|
Requires-Dist: azure-identity>=1.23.1
|
|
@@ -76,7 +76,7 @@ class MemoryGraph:
|
|
|
76
76
|
self.threshold = self.config.graph_store.config.similarity_threshold
|
|
77
77
|
self.top_k = self.config.graph_store.config.top_k
|
|
78
78
|
|
|
79
|
-
def add(self, data, filters):
|
|
79
|
+
def add(self, data, metadata, filters):
|
|
80
80
|
"""
|
|
81
81
|
Adds data to the graph.
|
|
82
82
|
|
|
@@ -92,10 +92,11 @@ class MemoryGraph:
|
|
|
92
92
|
# TODO: Batch queries with APOC plugin
|
|
93
93
|
# TODO: Add more filter support
|
|
94
94
|
deleted_entities = self._delete_entities(to_be_deleted, filters)
|
|
95
|
-
added_entities = self._add_entities(to_be_added, filters, entity_type_map)
|
|
95
|
+
added_entities = self._add_entities(to_be_added, metadata, filters, entity_type_map)
|
|
96
96
|
|
|
97
97
|
return {"deleted_entities": deleted_entities, "added_entities": added_entities}
|
|
98
98
|
|
|
99
|
+
@time_perf
|
|
99
100
|
def search(self, query, filters, limit=100):
|
|
100
101
|
"""
|
|
101
102
|
Search for memories and related graph data.
|
|
@@ -128,6 +129,7 @@ class MemoryGraph:
|
|
|
128
129
|
"relationship": item[1],
|
|
129
130
|
"destination": item[2],
|
|
130
131
|
"score": item[3] if len(item) > 3 else 0.0,
|
|
132
|
+
"metadata": item[4] if len(item) > 4 else {},
|
|
131
133
|
}
|
|
132
134
|
)
|
|
133
135
|
|
|
@@ -139,15 +141,12 @@ class MemoryGraph:
|
|
|
139
141
|
|
|
140
142
|
return search_results
|
|
141
143
|
|
|
144
|
+
@time_perf
|
|
142
145
|
def rerank(self, search_output, query):
|
|
143
146
|
if not self.config.graph_store.config.rerank:
|
|
144
|
-
|
|
145
|
-
[item["source"], item["relationship"], item["destination"]] for item in search_output
|
|
147
|
+
return [
|
|
148
|
+
[item["source"], item["relationship"], item["destination"], 0.0, item.get("metadata", {})] for item in search_output
|
|
146
149
|
]
|
|
147
|
-
bm25 = BM25Okapi(search_outputs_sequence)
|
|
148
|
-
|
|
149
|
-
tokenized_query = query.split(" ")
|
|
150
|
-
return bm25.get_top_n(tokenized_query, search_outputs_sequence, n=5)
|
|
151
150
|
|
|
152
151
|
# Only cohere is supported for now
|
|
153
152
|
rerank_config = self.config.graph_store.config.rerank.config
|
|
@@ -170,7 +169,8 @@ class MemoryGraph:
|
|
|
170
169
|
original_output["source"],
|
|
171
170
|
original_output["relationship"],
|
|
172
171
|
original_output["destination"],
|
|
173
|
-
result.relevance_score
|
|
172
|
+
result.relevance_score,
|
|
173
|
+
original_output["metadata"],
|
|
174
174
|
])
|
|
175
175
|
return reranked_results
|
|
176
176
|
|
|
@@ -336,14 +336,14 @@ class MemoryGraph:
|
|
|
336
336
|
CALL {{
|
|
337
337
|
WITH n, row
|
|
338
338
|
MATCH (n)-[r]->(m {self.node_label} {{{node_props_str}}})
|
|
339
|
-
RETURN n.name AS source, elementId(n) AS source_id, type(r) AS relationship, elementId(r) AS relation_id, m.name AS destination, elementId(m) AS destination_id
|
|
339
|
+
RETURN n.name AS source, elementId(n) AS source_id, n.note_ids AS source_note_ids, type(r) AS relationship, elementId(r) AS relation_id, m.name AS destination, elementId(m) AS destination_id, m.note_ids AS destination_note_ids
|
|
340
340
|
UNION
|
|
341
341
|
WITH n, row
|
|
342
342
|
MATCH (n)<-[r]-(m {self.node_label} {{{node_props_str}}})
|
|
343
|
-
RETURN m.name AS source, elementId(m) AS source_id, type(r) AS relationship, elementId(r) AS relation_id, n.name AS destination, elementId(n) AS destination_id
|
|
343
|
+
RETURN m.name AS source, elementId(m) AS source_id, m.note_ids AS source_note_ids, type(r) AS relationship, elementId(r) AS relation_id, n.name AS destination, elementId(n) AS destination_id, n.note_ids AS destination_note_ids
|
|
344
344
|
}}
|
|
345
|
-
WITH distinct source, source_id, relationship, relation_id, destination, destination_id, similarity
|
|
346
|
-
RETURN source, source_id, relationship, relation_id, destination, destination_id, similarity
|
|
345
|
+
WITH distinct source, source_id, relationship, relation_id, destination, destination_id, similarity, source_note_ids, destination_note_ids
|
|
346
|
+
RETURN source, source_id, relationship, relation_id, destination, destination_id, similarity, {{note_ids: source_note_ids + destination_note_ids}} AS metadata
|
|
347
347
|
ORDER BY similarity DESC
|
|
348
348
|
LIMIT {limit}
|
|
349
349
|
"""
|
|
@@ -371,6 +371,12 @@ class MemoryGraph:
|
|
|
371
371
|
key = (rel["source"], rel["relationship"], rel["destination"])
|
|
372
372
|
if key not in seen:
|
|
373
373
|
seen.add(key)
|
|
374
|
+
|
|
375
|
+
original_metadata = rel.get("metadata", {})
|
|
376
|
+
rel["metadata"] = {
|
|
377
|
+
"note_ids": list(set(original_metadata.get("note_ids", []))),
|
|
378
|
+
}
|
|
379
|
+
|
|
374
380
|
unique_relations.append(rel)
|
|
375
381
|
|
|
376
382
|
return unique_relations
|
|
@@ -469,7 +475,7 @@ class MemoryGraph:
|
|
|
469
475
|
return results
|
|
470
476
|
|
|
471
477
|
@time_perf
|
|
472
|
-
def _add_entities(self, to_be_added, filters, entity_type_map):
|
|
478
|
+
def _add_entities(self, to_be_added, metadata, filters, entity_type_map):
|
|
473
479
|
"""Add the new entities to the graph. Merge the nodes if they already exist."""
|
|
474
480
|
user_id = filters["user_id"]
|
|
475
481
|
agent_id = filters.get("agent_id", None)
|
|
@@ -484,29 +490,9 @@ class MemoryGraph:
|
|
|
484
490
|
entities_to_embed = list(entities_to_embed)
|
|
485
491
|
embeddings = self.embedding_model.embed_in_batch(entities_to_embed)
|
|
486
492
|
embedding_map = {entity: embedding for entity, embedding in zip(entities_to_embed, embeddings)}
|
|
487
|
-
|
|
488
|
-
query_stats = {
|
|
489
|
-
1: 0, 2: 0, 3: 0, 4: 0
|
|
490
|
-
}
|
|
491
493
|
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
"template": "",
|
|
495
|
-
"rows": []
|
|
496
|
-
},
|
|
497
|
-
"only_destination_found": {
|
|
498
|
-
"template": "",
|
|
499
|
-
"rows": []
|
|
500
|
-
},
|
|
501
|
-
"both_found": {
|
|
502
|
-
"template": "",
|
|
503
|
-
"rows": []
|
|
504
|
-
},
|
|
505
|
-
"none_found": {
|
|
506
|
-
"template": "",
|
|
507
|
-
"rows": []
|
|
508
|
-
},
|
|
509
|
-
}
|
|
494
|
+
# metadata
|
|
495
|
+
note_ids = metadata.pop("note_ids", [])
|
|
510
496
|
|
|
511
497
|
for item in to_be_added:
|
|
512
498
|
# entities
|
|
@@ -544,14 +530,17 @@ class MemoryGraph:
|
|
|
544
530
|
MATCH (source)
|
|
545
531
|
WHERE elementId(source) = $source_id
|
|
546
532
|
SET source.mentions = coalesce(source.mentions, 0) + 1
|
|
533
|
+
SET source.note_ids = coalesce(source.note_ids, []) + $note_ids
|
|
547
534
|
WITH source
|
|
548
535
|
MERGE (destination {destination_label} {{{merge_props_str}}})
|
|
549
536
|
ON CREATE SET
|
|
550
537
|
destination.created = timestamp(),
|
|
551
|
-
destination.mentions = 1
|
|
538
|
+
destination.mentions = 1,
|
|
539
|
+
destination.note_ids = $note_ids
|
|
552
540
|
{destination_extra_set}
|
|
553
541
|
ON MATCH SET
|
|
554
|
-
destination.mentions = coalesce(destination.mentions, 0) + 1
|
|
542
|
+
destination.mentions = coalesce(destination.mentions, 0) + 1,
|
|
543
|
+
destination.note_ids = coalesce(destination.note_ids, []) + $note_ids
|
|
555
544
|
WITH source, destination
|
|
556
545
|
CALL db.create.setNodeVectorProperty(destination, 'embedding', $destination_embedding)
|
|
557
546
|
WITH source, destination
|
|
@@ -569,13 +558,12 @@ class MemoryGraph:
|
|
|
569
558
|
"destination_name": destination,
|
|
570
559
|
"destination_embedding": dest_embedding,
|
|
571
560
|
"user_id": user_id,
|
|
561
|
+
"note_ids": note_ids,
|
|
572
562
|
}
|
|
573
563
|
if agent_id:
|
|
574
564
|
params["agent_id"] = agent_id
|
|
575
565
|
if run_id:
|
|
576
566
|
params["run_id"] = run_id
|
|
577
|
-
|
|
578
|
-
query_stats[1] += 1
|
|
579
567
|
|
|
580
568
|
elif destination_node_search_result and not source_node_search_result:
|
|
581
569
|
# Build source MERGE properties
|
|
@@ -590,14 +578,17 @@ class MemoryGraph:
|
|
|
590
578
|
MATCH (destination)
|
|
591
579
|
WHERE elementId(destination) = $destination_id
|
|
592
580
|
SET destination.mentions = coalesce(destination.mentions, 0) + 1
|
|
581
|
+
SET destination.note_ids = coalesce(destination.note_ids, []) + $note_ids
|
|
593
582
|
WITH destination
|
|
594
583
|
MERGE (source {source_label} {{{merge_props_str}}})
|
|
595
584
|
ON CREATE SET
|
|
596
585
|
source.created = timestamp(),
|
|
597
|
-
source.mentions = 1
|
|
586
|
+
source.mentions = 1,
|
|
587
|
+
source.note_ids = $note_ids
|
|
598
588
|
{source_extra_set}
|
|
599
589
|
ON MATCH SET
|
|
600
|
-
source.mentions = coalesce(source.mentions, 0) + 1
|
|
590
|
+
source.mentions = coalesce(source.mentions, 0) + 1,
|
|
591
|
+
source.note_ids = coalesce(source.note_ids, []) + $note_ids
|
|
601
592
|
WITH source, destination
|
|
602
593
|
CALL db.create.setNodeVectorProperty(source, 'embedding', $source_embedding)
|
|
603
594
|
WITH source, destination
|
|
@@ -615,23 +606,24 @@ class MemoryGraph:
|
|
|
615
606
|
"source_name": source,
|
|
616
607
|
"source_embedding": source_embedding,
|
|
617
608
|
"user_id": user_id,
|
|
609
|
+
"note_ids": note_ids,
|
|
618
610
|
}
|
|
619
611
|
if agent_id:
|
|
620
612
|
params["agent_id"] = agent_id
|
|
621
613
|
if run_id:
|
|
622
614
|
params["run_id"] = run_id
|
|
623
|
-
|
|
624
|
-
query_stats[2] += 1
|
|
625
615
|
|
|
626
616
|
elif source_node_search_result and destination_node_search_result:
|
|
627
617
|
cypher = f"""
|
|
628
618
|
MATCH (source)
|
|
629
619
|
WHERE elementId(source) = $source_id
|
|
630
620
|
SET source.mentions = coalesce(source.mentions, 0) + 1
|
|
621
|
+
SET source.note_ids = coalesce(source.note_ids, []) + $note_ids
|
|
631
622
|
WITH source
|
|
632
623
|
MATCH (destination)
|
|
633
624
|
WHERE elementId(destination) = $destination_id
|
|
634
625
|
SET destination.mentions = coalesce(destination.mentions, 0) + 1
|
|
626
|
+
SET destination.note_ids = coalesce(destination.note_ids, []) + $note_ids
|
|
635
627
|
MERGE (source)-[r:{relationship}]->(destination)
|
|
636
628
|
ON CREATE SET
|
|
637
629
|
r.created_at = timestamp(),
|
|
@@ -645,13 +637,12 @@ class MemoryGraph:
|
|
|
645
637
|
"source_id": source_node_search_result[0]["elementId(source_candidate)"],
|
|
646
638
|
"destination_id": destination_node_search_result[0]["elementId(destination_candidate)"],
|
|
647
639
|
"user_id": user_id,
|
|
640
|
+
"note_ids": note_ids,
|
|
648
641
|
}
|
|
649
642
|
if agent_id:
|
|
650
643
|
params["agent_id"] = agent_id
|
|
651
644
|
if run_id:
|
|
652
645
|
params["run_id"] = run_id
|
|
653
|
-
|
|
654
|
-
query_stats[3] += 1
|
|
655
646
|
|
|
656
647
|
else:
|
|
657
648
|
# Build dynamic MERGE props for both source and destination
|
|
@@ -669,7 +660,8 @@ class MemoryGraph:
|
|
|
669
660
|
cypher = f"""
|
|
670
661
|
MERGE (source {source_label} {{{source_props_str}}})
|
|
671
662
|
ON CREATE SET source.created = timestamp(),
|
|
672
|
-
source.mentions = 1
|
|
663
|
+
source.mentions = 1,
|
|
664
|
+
source.note_ids = $note_ids
|
|
673
665
|
{source_extra_set}
|
|
674
666
|
ON MATCH SET source.mentions = coalesce(source.mentions, 0) + 1
|
|
675
667
|
WITH source
|
|
@@ -677,7 +669,8 @@ class MemoryGraph:
|
|
|
677
669
|
WITH source
|
|
678
670
|
MERGE (destination {destination_label} {{{dest_props_str}}})
|
|
679
671
|
ON CREATE SET destination.created = timestamp(),
|
|
680
|
-
destination.mentions = 1
|
|
672
|
+
destination.mentions = 1,
|
|
673
|
+
destination.note_ids = $note_ids
|
|
681
674
|
{destination_extra_set}
|
|
682
675
|
ON MATCH SET destination.mentions = coalesce(destination.mentions, 0) + 1
|
|
683
676
|
WITH source, destination
|
|
@@ -695,17 +688,14 @@ class MemoryGraph:
|
|
|
695
688
|
"source_embedding": source_embedding,
|
|
696
689
|
"dest_embedding": dest_embedding,
|
|
697
690
|
"user_id": user_id,
|
|
691
|
+
"note_ids": note_ids,
|
|
698
692
|
}
|
|
699
693
|
if agent_id:
|
|
700
694
|
params["agent_id"] = agent_id
|
|
701
695
|
if run_id:
|
|
702
696
|
params["run_id"] = run_id
|
|
703
|
-
|
|
704
|
-
query_stats[4] += 1
|
|
705
|
-
|
|
706
697
|
result = self.graph.query(cypher, params=params)
|
|
707
698
|
results.append(result)
|
|
708
|
-
logger.warning(f"Add entities query stats: {query_stats}")
|
|
709
699
|
return results
|
|
710
700
|
|
|
711
701
|
def _remove_spaces_from_entities(self, entity_list):
|
|
@@ -258,7 +258,7 @@ class Memory(MemoryBase):
|
|
|
258
258
|
|
|
259
259
|
with concurrent.futures.ThreadPoolExecutor() as executor:
|
|
260
260
|
future1 = executor.submit(self._add_to_vector_store, messages, processed_metadata, effective_filters, infer)
|
|
261
|
-
future2 = executor.submit(self._add_to_graph, messages, effective_filters)
|
|
261
|
+
future2 = executor.submit(self._add_to_graph, messages, processed_metadata, effective_filters)
|
|
262
262
|
|
|
263
263
|
concurrent.futures.wait([future1, future2])
|
|
264
264
|
|
|
@@ -454,14 +454,14 @@ class Memory(MemoryBase):
|
|
|
454
454
|
return returned_memories
|
|
455
455
|
|
|
456
456
|
@time_perf
|
|
457
|
-
def _add_to_graph(self, messages, filters):
|
|
457
|
+
def _add_to_graph(self, messages, metadata, filters):
|
|
458
458
|
added_entities = []
|
|
459
459
|
if self.enable_graph:
|
|
460
460
|
if filters.get("user_id") is None:
|
|
461
461
|
filters["user_id"] = "user"
|
|
462
462
|
|
|
463
463
|
data = "\n".join([msg["content"] for msg in messages if "content" in msg and msg["role"] != "system"])
|
|
464
|
-
added_entities = self.graph.add(data, filters)
|
|
464
|
+
added_entities = self.graph.add(data, metadata, filters)
|
|
465
465
|
|
|
466
466
|
return added_entities
|
|
467
467
|
|
|
@@ -1100,7 +1100,7 @@ class AsyncMemory(MemoryBase):
|
|
|
1100
1100
|
vector_store_task = asyncio.create_task(
|
|
1101
1101
|
self._add_to_vector_store(messages, processed_metadata, effective_filters, infer)
|
|
1102
1102
|
)
|
|
1103
|
-
graph_task = asyncio.create_task(self._add_to_graph(messages, effective_filters))
|
|
1103
|
+
graph_task = asyncio.create_task(self._add_to_graph(messages, processed_metadata, effective_filters))
|
|
1104
1104
|
|
|
1105
1105
|
vector_store_result, graph_result = await asyncio.gather(vector_store_task, graph_task)
|
|
1106
1106
|
|
|
@@ -1308,14 +1308,14 @@ class AsyncMemory(MemoryBase):
|
|
|
1308
1308
|
return returned_memories
|
|
1309
1309
|
|
|
1310
1310
|
@time_perf
|
|
1311
|
-
async def _add_to_graph(self, messages, filters):
|
|
1311
|
+
async def _add_to_graph(self, messages, metadata, filters):
|
|
1312
1312
|
added_entities = []
|
|
1313
1313
|
if self.enable_graph:
|
|
1314
1314
|
if filters.get("user_id") is None:
|
|
1315
1315
|
filters["user_id"] = "user"
|
|
1316
1316
|
|
|
1317
1317
|
data = "\n".join([msg["content"] for msg in messages if "content" in msg and msg["role"] != "system"])
|
|
1318
|
-
added_entities = await asyncio.to_thread(self.graph.add, data, filters)
|
|
1318
|
+
added_entities = await asyncio.to_thread(self.graph.add, data, metadata, filters)
|
|
1319
1319
|
|
|
1320
1320
|
return added_entities
|
|
1321
1321
|
|
|
@@ -1553,6 +1553,7 @@ class AsyncMemory(MemoryBase):
|
|
|
1553
1553
|
else:
|
|
1554
1554
|
return {"results": original_memories}
|
|
1555
1555
|
|
|
1556
|
+
@time_perf
|
|
1556
1557
|
async def _search_vector_store(self, query, filters, limit, threshold: Optional[float] = None):
|
|
1557
1558
|
embeddings = await asyncio.to_thread(self.embedding_model.embed, query, "search")
|
|
1558
1559
|
memories = await asyncio.to_thread(
|
|
@@ -197,7 +197,7 @@ def time_perf(func):
|
|
|
197
197
|
result = await func(*args, **kwargs)
|
|
198
198
|
end = time.perf_counter()
|
|
199
199
|
elapsed = end - start
|
|
200
|
-
logger.warning(f"[{func.__name__}] executed in {elapsed:.6f} seconds")
|
|
200
|
+
logger.warning(f"[Mem0 time perf][{func.__name__}] executed in {elapsed:.6f} seconds")
|
|
201
201
|
return result
|
|
202
202
|
return async_wrapper
|
|
203
203
|
else:
|
|
@@ -207,6 +207,6 @@ def time_perf(func):
|
|
|
207
207
|
result = func(*args, **kwargs)
|
|
208
208
|
end = time.perf_counter()
|
|
209
209
|
elapsed = end - start
|
|
210
|
-
logger.warning(f"[{func.__name__}] executed in {elapsed:.6f} seconds")
|
|
210
|
+
logger.warning(f"[Mem0 time perf][{func.__name__}] executed in {elapsed:.6f} seconds")
|
|
211
211
|
return result
|
|
212
212
|
return sync_wrapper
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mem0ai-azure-mysql"
|
|
7
|
-
version = "0.1.116.
|
|
7
|
+
version = "0.1.116.7"
|
|
8
8
|
description = "Long-term memory for AI Agents with Azure DefaultAzureCredential authentication and MySQL history database support"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9,<4.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/embeddings/__init__.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/embeddings/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/anthropic.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/llms/aws_bedrock.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/baidu.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/chroma.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/faiss.py
RENAMED
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/milvus.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/mongodb.py
RENAMED
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/pgvector.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/pinecone.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/qdrant.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/redis.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/supabase.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/configs/vector_stores/weaviate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/aws_bedrock.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/azure_openai.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/embeddings/huggingface.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/graphs/neptune/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/azure_openai_structured.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/llms/openai_structured.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/memory/memgraph_memory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/__init__.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/azure_ai_search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/databricks.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/elasticsearch.py
RENAMED
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/langchain.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/opensearch.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/pgvector.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/pinecone.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/supabase.py
RENAMED
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/upstash_vector.py
RENAMED
|
File without changes
|
|
File without changes
|
{mem0ai_azure_mysql-0.1.116.5 → mem0ai_azure_mysql-0.1.116.7}/mem0/vector_stores/weaviate.py
RENAMED
|
File without changes
|