Abstraction for Project in MemoryClient (#3067)

This commit is contained in:
Dev Khant
2025-07-08 11:33:20 +05:30
committed by GitHub
parent aae5989e78
commit 70d6f9231b
11 changed files with 1071 additions and 39 deletions

View File

@@ -81,7 +81,7 @@ retrieval_criteria = [
Once defined, register the criteria to your project:
```python
client.update_project(retrieval_criteria=retrieval_criteria)
client.project.update(retrieval_criteria=retrieval_criteria)
```
Criteria apply project-wide. Once set, they affect all searches using `version="v2"`.
@@ -187,7 +187,7 @@ If no criteria are defined for a project, `version="v2"` behaves like normal sea
## How It Works
1. **Criteria Definition**: Define custom criteria with a name, description, and weight. These describe what matters in a memory (e.g., joy, urgency, empathy).
2. **Project Configuration**: Register these criteria using `update_project()`. They apply at the project level and influence all searches using `version="v2"`.
2. **Project Configuration**: Register these criteria using `project.update()`. They apply at the project level and influence all searches using `version="v2"`.
3. **Memory Retrieval**: When you perform a search with `version="v2"`, Mem0 first retrieves relevant memories based on the query and your defined criteria.
4. **Weighted Scoring**: Each retrieved memory is evaluated and scored against the defined criteria and weights.
@@ -202,7 +202,7 @@ Criteria retrieval is currently supported only in search v2. Make sure to use `v
## Summary
- Define what “relevant” means using criteria
- Apply them per project via `update_project()`
- Apply them per project via `project.update()`
- Use `version="v2"` to activate criteria-aware search
- Build agents that reason not just with relevance, but **contextual importance**

View File

@@ -35,7 +35,7 @@ new_categories = [
{"personal_information": "Basic information about the user including name, preferences, and personality traits"}
]
response = client.update_project(custom_categories = new_categories)
response = client.project.update(custom_categories=new_categories)
print(response)
```
@@ -75,7 +75,7 @@ You can also retrieve the current custom categories:
<CodeGroup>
```python Code
# Get current custom categories
categories = client.get_project(fields=["custom_categories"])
categories = client.project.get(fields=["custom_categories"])
print(categories)
```
@@ -185,11 +185,11 @@ Name is Alice (personal_details)
```
</CodeGroup>
You can check whether default categories are being used by calling `get_project()`. If `custom_categories` returns `None`, it means the default categories are being used.
You can check whether default categories are being used by calling `project.get()`. If `custom_categories` returns `None`, it means the default categories are being used.
<CodeGroup>
```python Code
client.get_project(["custom_categories"])
client.project.get(["custom_categories"])
```
```json Output

View File

@@ -50,7 +50,7 @@ Guidelines:
- Focus solely on health-related content.
- Maintain clarity and context accuracy while recording.
"""
response = client.update_project(custom_instructions=prompt)
response = client.project.update(custom_instructions=prompt)
print(response)
```
@@ -66,7 +66,7 @@ You can also retrieve the current custom instructions:
<CodeGroup>
```python Code
# Retrieve current custom instructions
response = client.get_project(fields=["custom_instructions"])
response = client.project.get(fields=["custom_instructions"])
print(response)
```

View File

@@ -297,7 +297,7 @@ client = MemoryClient(
)
# Enable graph memory for all operations in this project
client.update_project(enable_graph=True, version="v1")
client.project.update(enable_graph=True)
# Now all add operations will use graph memory by default
messages = [