Skip to main content

Library with a SQLite implementation of LangGraph checkpoint saver.

Project description

LangGraph SQLite Checkpoint

Implementation of LangGraph CheckpointSaver that uses SQLite DB (both sync and async, via aiosqlite)

Security

[!IMPORTANT] Set LANGGRAPH_STRICT_MSGPACK=true or pass an explicit allowed_msgpack_modules list when creating your checkpointer. This restricts checkpoint deserialization to known-safe types, preventing code execution if the database is compromised. See the langgraph-checkpoint README for details.

Usage

from langgraph.checkpoint.sqlite import SqliteSaver

write_config = {"configurable": {"thread_id": "1", "checkpoint_ns": ""}}
read_config = {"configurable": {"thread_id": "1"}}

with SqliteSaver.from_conn_string(":memory:") as checkpointer:
    checkpoint = {
        "v": 4,
        "ts": "2024-07-31T20:14:19.804150+00:00",
        "id": "1ef4f797-8335-6428-8001-8a1503f9b875",
        "channel_values": {
            "my_key": "meow",
            "node": "node"
        },
        "channel_versions": {
            "__start__": 2,
            "my_key": 3,
            "start:node": 3,
            "node": 3
        },
        "versions_seen": {
            "__input__": {},
            "__start__": {
                "__start__": 1
            },
            "node": {
                "start:node": 2
            }
        },
    }

    # store checkpoint
    checkpointer.put(write_config, checkpoint, {}, {})

    # load checkpoint
    checkpointer.get(read_config)

    # list checkpoints
    list(checkpointer.list(read_config))

Async

from langgraph.checkpoint.sqlite.aio import AsyncSqliteSaver

async with AsyncSqliteSaver.from_conn_string(":memory:") as checkpointer:
    checkpoint = {
        "v": 4,
        "ts": "2024-07-31T20:14:19.804150+00:00",
        "id": "1ef4f797-8335-6428-8001-8a1503f9b875",
        "channel_values": {
            "my_key": "meow",
            "node": "node"
        },
        "channel_versions": {
            "__start__": 2,
            "my_key": 3,
            "start:node": 3,
            "node": 3
        },
        "versions_seen": {
            "__input__": {},
            "__start__": {
                "__start__": 1
            },
            "node": {
                "start:node": 2
            }
        },
    }

    # store checkpoint
    await checkpointer.aput(write_config, checkpoint, {}, {})

    # load checkpoint
    await checkpointer.aget(read_config)

    # list checkpoints
    [c async for c in checkpointer.alist(read_config)]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langgraph_checkpoint_sqlite-3.1.0.tar.gz (147.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langgraph_checkpoint_sqlite-3.1.0-py3-none-any.whl (38.6 kB view details)

Uploaded Python 3

File details

Details for the file langgraph_checkpoint_sqlite-3.1.0.tar.gz.

File metadata

File hashes

Hashes for langgraph_checkpoint_sqlite-3.1.0.tar.gz
Algorithm Hash digest
SHA256 f926916ebc1b985d802cc9c820026036e84db9d910d62c97b57e4ba64f67d5ae
MD5 6d8a0bb3c0abcf9836668e0c9c0e62ed
BLAKE2b-256 e3ea83917c2369acf8a10a894d4247655fd063c07924ba5bc4e83c85d2eaeded

See more details on using hashes here.

File details

Details for the file langgraph_checkpoint_sqlite-3.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for langgraph_checkpoint_sqlite-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc9b40df0076feae8a9ad42ae713621b148b00ac23adc09dc1dc66090a46e5ad
MD5 94ff105d53eb6f192066170529c2636a
BLAKE2b-256 9707b342811a16327900af2747c752ea19676172fcddf9b592cc384031076623

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page