Skip to main content

An integration package connecting Postgres and LangChain

Project description

langchain-postgres

Release Notes CI License: MIT Twitter Open Issues

The langchain-postgres package implementations of core LangChain 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.

Requirements

The package currently only supports the psycogp3 driver.

Installation

pip install -U langchain-postgres

Change Log

0.0.6:

  • Remove langgraph as a dependency as it was causing dependency conflicts.
  • Base interface for checkpointer changed in langgraph, so existing implementation would've broken regardless.

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_tables(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)

Vectorstore

See example for the PGVector vectorstore here

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

langchain_postgres-0.0.13.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

langchain_postgres-0.0.13-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file langchain_postgres-0.0.13.tar.gz.

File metadata

  • Download URL: langchain_postgres-0.0.13.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for langchain_postgres-0.0.13.tar.gz
Algorithm Hash digest
SHA256 3a23f95aaeca9bf03af63cf6b9ef1381b6d2a83605179d307a6606b05e335ab1
MD5 95e2bfd40c492b4f35e9f56295da1317
BLAKE2b-256 4e20dc09b62dfe97822841e9c3310e2faa265150ee3783902c251b0d083f8e8c

See more details on using hashes here.

File details

Details for the file langchain_postgres-0.0.13-py3-none-any.whl.

File metadata

File hashes

Hashes for langchain_postgres-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 91cb4e62862b1a1f36cdf8462e34990bc112d5824dfb738cab9ca6577cb27cee
MD5 6c9a975f68aa19e08f61ded5f7816b70
BLAKE2b-256 55ef68293f413e2bf289ac17aaab84691ebaccb077709e23cfeaf9f3ee9d05e8

See more details on using hashes here.

Supported by

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