You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
langchain/libs/partners/postgres/README.md

66 lines
1.7 KiB
Markdown

# 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
```bash
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()`.
```python
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)
```