Skip to content

Multimodal Support

Fresh

Mem0 supports multimodal data including images and documents. When users submit visual or document content, the system extracts textual information and adds it to user memory.

Supported Media Types

TypeFormats
ImagesJPG, PNG, common image formats
DocumentsMDX, TXT
PDFsPDF files via URL

Image Integration

URL-Based Images

python
image_url = "https://example.com/photo.jpg"

image_message = {
    "role": "user",
    "content": {
        "type": "image_url",
        "image_url": {
            "url": image_url
        }
    }
}
client.add([image_message], user_id="alice")

Base64-Encoded Images

python
import base64

image_path = "path/to/your/image.jpg"

with open(image_path, "rb") as image_file:
    base64_image = base64.b64encode(image_file.read()).decode("utf-8")

image_message = {
    "role": "user",
    "content": {
        "type": "image_url",
        "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
        }
    }
}
client.add([image_message], user_id="alice")
typescript
import MemoryClient from "mem0ai";
import fs from 'fs';

const imagePath = 'path/to/your/image.jpg';
const base64Image = fs.readFileSync(imagePath, { encoding: 'base64' });

const imageMessage = {
    role: "user",
    content: {
        type: "image_url",
        image_url: {
            url: `data:image/jpeg;base64,${base64Image}`
        }
    }
};

await client.add([imageMessage], { user_id: "alice" });

Text Document Integration

URL-Based Documents

python
document_url = "https://example.com/document.txt"

document_message = {
    "role": "user",
    "content": {
        "type": "mdx_url",
        "mdx_url": {
            "url": document_url
        }
    }
}
client.add([document_message], user_id="alice")

Base64-Encoded Documents

python
import base64

document_path = "path/to/your/document.txt"

def file_to_base64(file_path):
    with open(file_path, "rb") as file:
        return base64.b64encode(file.read()).decode('utf-8')

base64_document = file_to_base64(document_path)

document_message = {
    "role": "user",
    "content": {
        "type": "mdx_url",
        "mdx_url": {
            "url": base64_document
        }
    }
}
client.add([document_message], user_id="alice")

PDF Documents

python
pdf_url = "https://example.com/report.pdf"

pdf_message = {
    "role": "user",
    "content": {
        "type": "pdf_url",
        "pdf_url": {
            "url": pdf_url
        }
    }
}
client.add([pdf_message], user_id="alice")

Complete Multi-Type Example

python
import base64
from mem0 import MemoryClient

client = MemoryClient()

# Image URL
image_msg = {
    "role": "user",
    "content": {
        "type": "image_url",
        "image_url": {"url": "https://example.com/photo.jpg"}
    }
}

# Text document URL
text_msg = {
    "role": "user",
    "content": {
        "type": "mdx_url",
        "mdx_url": {"url": "https://example.com/doc.txt"}
    }
}

# PDF URL
pdf_msg = {
    "role": "user",
    "content": {
        "type": "pdf_url",
        "pdf_url": {"url": "https://example.com/report.pdf"}
    }
}

client.add([image_msg], user_id="alice")
client.add([text_msg], user_id="alice")
client.add([pdf_msg], user_id="alice")

SOP Documentation Site for Mem0