Doc: MemoryExport update (#2132)

This commit is contained in:
Dev Khant
2025-01-10 00:00:18 +05:30
committed by GitHub
parent a6b9721ede
commit 9c4acdcba7
3 changed files with 146 additions and 172 deletions

View File

@@ -0,0 +1,145 @@
---
title: Memory Export
description: 'Export memories in a structured format using customizable Pydantic schemas'
---
## Overview
The Memory Export feature allows you to create structured exports of memories using customizable Pydantic schemas. This process enables you to transform your stored memories into specific data formats that match your needs. You can apply various filters to narrow down which memories to export and define exactly how the data should be structured.
## Creating a Memory Export
To create a memory export, you'll need to:
1. Define your schema structure
2. Submit an export job
3. Retrieve the exported data
### Define Schema
Here's an example schema for extracting professional profile information:
```json
{
"$defs": {
"EducationLevel": {
"enum": ["high_school", "bachelors", "masters"],
"title": "EducationLevel",
"type": "string"
},
"EmploymentStatus": {
"enum": ["full_time", "part_time", "student"],
"title": "EmploymentStatus",
"type": "string"
}
},
"properties": {
"full_name": {
"anyOf": [
{
"maxLength": 100,
"minLength": 2,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The professional's full name",
"title": "Full Name"
},
"current_role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Current job title or role",
"title": "Current Role"
}
},
"title": "ProfessionalProfile",
"type": "object"
}
```
### Submit Export Job
<CodeGroup>
```python Python
response = client.create_memory_export(
schema=json_schema,
user_id="user123"
)
print(response)
```
```bash cURL
curl -X POST "https://api.mem0.ai/v1/memories/export/" \
-H "Authorization: Token your-api-key" \
-H "Content-Type: application/json" \
-d '{
"schema": {json_schema},
"user_id": "user123"
}'
```
```json Output
{
"message": "Memory export request received. The export will be ready in a few seconds.",
"id": "550e8400-e29b-41d4-a716-446655440000"
}
```
</CodeGroup>
### Retrieve Export
Once the export job is complete, you can retrieve the structured data:
<CodeGroup>
```python Python
response = client.get_memory_export(user_id="user123")
print(response)
```
```bash cURL
curl -X GET "https://api.mem0.ai/v1/memories/export/?user_id=user123" \
-H "Authorization: Token your-api-key"
```
```json Output
{
"full_name": "John Doe",
"current_role": "Senior Software Engineer",
"years_experience": 8,
"employment_status": "full_time",
"education_level": "masters",
"skills": ["Python", "AWS", "Machine Learning"]
}
```
</CodeGroup>
## Available Filters
You can apply various filters to customize which memories are included in the export:
- `user_id`: Filter memories by specific user
- `agent_id`: Filter memories by specific agent
- `run_id`: Filter memories by specific run
- `session_id`: Filter memories by specific session
<Note>
The export process may take some time to complete, especially when dealing with a large number of memories or complex schemas.
</Note>
If you have any questions, please feel free to reach out to us using one of the following methods:
<Snippet file="get-help.mdx" />

View File

@@ -64,7 +64,7 @@
"platform/quickstart",
{
"group": "Features",
"pages": ["features/selective-memory", "features/custom-categories", "features/direct-import", "features/async-client"]
"pages": ["features/selective-memory", "features/custom-categories", "features/direct-import", "features/async-client", "features/memory-export"]
},
"features/langchain-tools"
]

View File

@@ -1630,177 +1630,6 @@ curl -X DELETE "https://api.mem0.ai/v1/memories/batch/" \
```
</CodeGroup>
### 4.11 Create Memory Export
Submit a job to create a structured export of memories using a customizable Pydantic schema. This process may take some time to complete, especially if youre exporting a large number of memories. You can tailor the export by applying various filters (e.g., `user_id`, `agent_id`, `run_id`, or `session_id`) and by modifying the Pydantic schema to ensure the final data matches your exact needs.
For example, if you want to extract professional profile information from memories, you can define a schema and export the memories in that structured format:
<CodeGroup>
```python Python
response = client.create_memory_export(schema=json_schema, user_id="user123")
print(response)
```
```bash cURL
curl -X POST "https://api.mem0.ai/v1/memories/export/" \
-H "Authorization: Token your-api-key" \
-H "Content-Type: application/json" \
-d '{
"schema":{json_schema},
"user_id": "user123"
}'
```
```json json_schema
{
"$defs": {
"EducationLevel": {
"enum": ["high_school", "bachelors", "masters"],
"title": "EducationLevel",
"type": "string"
},
"EmploymentStatus": {
"enum": ["full_time", "part_time", "student"],
"title": "EmploymentStatus",
"type": "string"
}
},
"example": {
"current_role": "Senior Software Engineer",
"education_level": "masters",
"employment_status": "full_time",
"full_name": "John Doe",
"skills": ["Python", "AWS", "Machine Learning"],
"years_experience": 8
},
"properties": {
"full_name": {
"anyOf": [
{
"maxLength": 100,
"minLength": 2,
"type": "string"
},
{
"type": "null"
}
],
"default": None,
"description": "The professional's full name",
"title": "Full Name"
},
"current_role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": None,
"description": "Current job title or role",
"title": "Current Role"
},
"years_experience": {
"anyOf": [
{
"maximum": 70,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": None,
"description": "Years of professional experience",
"title": "Years Experience"
},
"employment_status": {
"anyOf": [
{
"$ref": "#/$defs/EmploymentStatus"
},
{
"type": "null"
}
],
"default": None,
"description": "Current employment status"
},
"education_level": {
"anyOf": [
{
"$ref": "#/$defs/EducationLevel"
},
{
"type": "null"
}
],
"default": None,
"description": "Highest level of education completed"
},
"skills": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": None,
"description": "Professional skills and competencies",
"title": "Skills"
}
},
"title": "ProfessionalProfile",
"type": "object"
}
```
```json Output
{
"message": "Memory export request received. The export will be ready in a few seconds.",
"id": "550e8400-e29b-41d4-a716-446655440000"
}
```
</CodeGroup>
### 4.12 Get Memory Export
Retrieve the structured export of memories after you have submitted a export job using the previous endpoint. It return the latest memory export.
<CodeGroup>
```python Python
response = client.get_memory_export(user_id="user123")
print(response)
```
```bash cURL
curl -X GET "https://api.mem0.ai/v1/memories/export/?user_id=user123" \
-H "Authorization: Token your-api-key"
```
```json Output
{
"full_name": "John Doe",
"current_role": "Senior Software Engineer",
"years_experience": 8,
"employment_status": "full_time",
"education_level": "masters",
"skills": ["Python", "AWS", "Machine Learning"]
}
```
</CodeGroup>
If you have any questions, please feel free to reach out to us using one of the following methods:
<Snippet file="get-help.mdx" />