langchain.chat_loaders.imessage.IMessageChatLoader

class langchain.chat_loaders.imessage.IMessageChatLoader(path: Optional[Union[str, Path]] = None)[source]

Load chat sessions from the iMessage chat.db SQLite file.

It only works on macOS when you have iMessage enabled and have the chat.db file.

The chat.db file is likely located at ~/Library/Messages/chat.db. However, your terminal may not have permission to access this file. To resolve this, you can copy the file to a different location, change the permissions of the file, or grant full disk access for your terminal emulator in System Settings > Security and Privacy > Full Disk Access.

Initialize the IMessageChatLoader.

Parameters

path (str or Path, optional) – Path to the chat.db SQLite file. Defaults to None, in which case the default path ~/Library/Messages/chat.db will be used.

Methods

__init__([path])

Initialize the IMessageChatLoader.

lazy_load()

Lazy load the chat sessions from the iMessage chat.db and yield them in the required format.

load()

Eagerly load the chat sessions into memory.

__init__(path: Optional[Union[str, Path]] = None)[source]

Initialize the IMessageChatLoader.

Parameters

path (str or Path, optional) – Path to the chat.db SQLite file. Defaults to None, in which case the default path ~/Library/Messages/chat.db will be used.

lazy_load() Iterator[ChatSession][source]

Lazy load the chat sessions from the iMessage chat.db and yield them in the required format.

Yields

ChatSession – Loaded chat session.

load() List[ChatSession]

Eagerly load the chat sessions into memory.

Examples using IMessageChatLoader