langchain-postgres
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
Metadata
Release files for gigachain-postgres 0.0.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gigachain_postgres-0.0.10.tar.gz | 21.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gigachain_postgres-0.0.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.6 kB
Release files / gigachain_postgres-0.0.10.tar.gz
| Download URL | gigachain_postgres-0.0.10.tar.gz |
|---|---|
| Size | 21.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
017cad7c96ebab5da430df7956d18e205bb0e0a48d63fb395ebe66e1f044b27c
|
|
BLAKE2b-256 checksum How to use checksums |
fe56a4d6a14b78314ce3357ddbffd573ade36b9df1beb7e3efa3b9bbf51ad199
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.5 Darwin/23.5.0
|
Release files / gigachain_postgres-0.0.10-py3-none-any.whl
| Download URL | gigachain_postgres-0.0.10-py3-none-any.whl |
|---|---|
| Size | 22.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1a1f572141af1c7172bc078a7962d0bc395b03f7c48fbba6175e0b458a8e8173
|
|
BLAKE2b-256 checksum How to use checksums |
dbc1320aa2c256758480b42275a18a9f520a077c6e1271d8891266d80d97293b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.12.5 Darwin/23.5.0
|