Skip to main content

Library with a DuckDB implementation of LangGraph checkpoint saver.

Project description

LangGraph Checkpoint DuckDB

Implementation of LangGraph CheckpointSaver that uses DuckDB.

Usage

[!IMPORTANT] When using DuckDB checkpointers for the first time, make sure to call .setup() method on them to create required tables. See example below.

from langgraph.checkpoint.duckdb import DuckDBSaver

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

with DuckDBSaver.from_conn_string(":memory:") as checkpointer:
    # call .setup() the first time you're using the checkpointer
    checkpointer.setup()
    checkpoint = {
        "v": 1,
        "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
            }
        },
        "pending_sends": [],
    }

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

    # load checkpoint
    checkpointer.get(read_config)

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

Async

from langgraph.checkpoint.duckdb.aio import AsyncDuckDBSaver

async with AsyncDuckDBSaver.from_conn_string(":memory:") as checkpointer:
    checkpoint = {
        "v": 1,
        "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
            }
        },
        "pending_sends": [],
    }

    # 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_duckdb-2.0.2.tar.gz (12.1 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_duckdb-2.0.2-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file langgraph_checkpoint_duckdb-2.0.2.tar.gz.

File metadata

File hashes

Hashes for langgraph_checkpoint_duckdb-2.0.2.tar.gz
Algorithm Hash digest
SHA256 ed0be53a4b99bb933b13bbf494891b2cfcecb2e21bde4f9c1abf437de6c7c641
MD5 2e17a8a6df82bf9ef5ee10a937164620
BLAKE2b-256 f079ca077d922610c2abee44f6fd6ccb8453dfae16a965eac2e066a72431e195

See more details on using hashes here.

File details

Details for the file langgraph_checkpoint_duckdb-2.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for langgraph_checkpoint_duckdb-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 378d73e77a2a93db113a89ec2bb59e3448e7072ca729b4570c23cf5f2917da85
MD5 be1f33883e01bb8619eed8e489229f49
BLAKE2b-256 4cf79a2814211a548bc268695289dd8ee06ac0cbeda5291c8444477ee864bb64

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