gigachain-postgres
langchain-postgres
The
package implementations of core LangChain abstractions using
.
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
and a
.
The
is the name of the table in the database where
the chat messages will be stored.
The
is a unique identifier for the chat session. It can be assigned
by the caller using
.
import uuid
from langchain_core.messages import SystemMessage, AIMessage, HumanMessagefrom langchain_postgres import PostgresChatMessageHistoryimport psycopg
# Establish a synchronous connection to the database# (or use psycopg.AsyncConnection for async)conn_info = ... # Fill in with your connection infosync_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 managerchat_history = PostgresChatMessageHistory( table_name, session_id, sync_connection=sync_connection)
# Add messages to the chat historychat_history.add_messages([ SystemMessage(content="Meow"), AIMessage(content="woof"), HumanMessage(content="bark"),])
print(chat_history.messages)
Vectorstore
See example for the PGVector vectorstore here