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

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.6.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

langchain_postgres-0.0.6-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: langchain_postgres-0.0.6.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for langchain_postgres-0.0.6.tar.gz
Algorithm Hash digest
SHA256 ddac1efd183da39f2171b6953a3f74ed70e429e064d33559fd970fe5ad10b477
MD5 bdc3b46a3bf33bd846b8aef1ab032b7c
BLAKE2b-256 ca4e6fdd53fae2560dbc634b1aa4695d5a6d7f0575552f0e5f88b709e1f63108

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for langchain_postgres-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d7fe48fb06892f7c69425846e090258b8c22ece072ab8b36f4dc3434213f81f9
MD5 614bf29b825019a515f2ebcee7fc1554
BLAKE2b-256 df51ee6384d357cf29befca6d625c9082e19bb18feeba5550e16cfe9e744ab8b

See more details on using hashes here.

Provenance

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