Skip to main content

An integration package connecting Upstage and gigachain

Project description

langchain-postgres

The langchain-postgres package is an integration package managed by the core LangChain team.

This package contains implementations of core abstractions using Postgres.

The package is released under the MIT license.

Feel free to use the abstraction as provided or else modify them / extend them as appropriate for your own application.

Installation

pip install -U langchain-postgres

Usage

ChatMessageHistory

The chat message history abstraction helps to persist chat message history in a postgres table.

PostgresChatMessageHistory is parameterized using a table_name and a session_id.

The table_name is the name of the table in the database where the chat messages will be stored.

The session_id is a unique identifier for the chat session. It can be assigned by the caller using uuid.uuid4().

import uuid

from langchain_core.messages import SystemMessage, AIMessage, HumanMessage
from langchain_postgres import PostgresChatMessageHistory
import psycopg

# Establish a synchronous connection to the database
# (or use psycopg.AsyncConnection for async)
conn_info = ... # Fill in with your connection info
sync_connection = psycopg.connect(conn_info)

# Create the table schema (only needs to be done once)
table_name = "chat_history"
PostgresChatMessageHistory.create_schema(sync_connection, table_name)

session_id = str(uuid.uuid4())

# Initialize the chat history manager
chat_history = PostgresChatMessageHistory(
    table_name,
    session_id,
    sync_connection=sync_connection
)

# Add messages to the chat history
chat_history.add_messages([
    SystemMessage(content="Meow"),
    AIMessage(content="woof"),
    HumanMessage(content="bark"),
])

print(chat_history.messages)

PostgresCheckpoint

An implementation of the Checkpoint abstraction in LangGraph using Postgres.

Async Usage:

from psycopg_pool import AsyncConnectionPool
from langchain_postgres import (
    PostgresCheckpoint, PickleCheckpointSerializer
)

pool = AsyncConnectionPool(
    # Example configuration
    conninfo="postgresql://user:password@localhost:5432/dbname",
    max_size=20,
)

# Uses the pickle module for serialization
# Make sure that you're only de-serializing trusted data
# (e.g., payloads that you have serialized yourself).
# Or implement a custom serializer.
checkpoint = PostgresCheckpoint(
    serializer=PickleCheckpointSerializer(),
    async_connection=pool,
)

# Use the checkpoint object to put, get, list checkpoints, etc.

Sync Usage:

from psycopg_pool import ConnectionPool
from langchain_postgres import (
    PostgresCheckpoint, PickleCheckpointSerializer
)

pool = ConnectionPool(
    # Example configuration
    conninfo="postgresql://user:password@localhost:5432/dbname",
    max_size=20,
)

# Uses the pickle module for serialization
# Make sure that you're only de-serializing trusted data
# (e.g., payloads that you have serialized yourself).
# Or implement a custom serializer.
checkpoint = PostgresCheckpoint(
    serializer=PickleCheckpointSerializer(),
    sync_connection=pool,
)

# Use the checkpoint object to put, get, list checkpoints, etc.

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

gigachain_upstage-0.1.3.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

gigachain_upstage-0.1.3-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file gigachain_upstage-0.1.3.tar.gz.

File metadata

  • Download URL: gigachain_upstage-0.1.3.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Darwin/23.4.0

File hashes

Hashes for gigachain_upstage-0.1.3.tar.gz
Algorithm Hash digest
SHA256 e4b18924cdf578a15e832f0e61e1990af33d3666231b0a9913bbd43dcc3a5458
MD5 4929d1bbd6082a6ff306f63105e87cc7
BLAKE2b-256 b82de5843f58270fccc08f28c2fcc4653b2a063d895a37723dd5e996e7747145

See more details on using hashes here.

File details

Details for the file gigachain_upstage-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for gigachain_upstage-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d0504ea96315c2366deb4b47448765a7faa442769c824e5547a08f6bf450dc59
MD5 456d2c495080386c68c753e739496546
BLAKE2b-256 7c945449493ca526e3f87cdbdef082bd60f2ebce61be669d81af2d5784726c47

See more details on using hashes here.

Supported by

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