Skip to main content

Persistence Quickstart

Enable automatic conversation persistence with just 2 lines of code.

Installation

pip install "praisonai[tools]"

Docker Setup

# PostgreSQL
docker run -d --name praison-postgres -p 5432:5432 \
    -e POSTGRES_PASSWORD=praison123 \
    -e POSTGRES_DB=praisonai \
    postgres:16

# Qdrant (optional - for knowledge)
docker run -d --name praison-qdrant -p 6333:6333 qdrant/qdrant

# Redis (optional - for state)
docker run -d --name praison-redis -p 6379:6379 redis:7

Basic Usage

from praisonaiagents import Agent
from praisonai.db import PostgresDB

# Create database adapter
db = PostgresDB(
    host="localhost",
    port=5432,
    database="praisonai",
    user="postgres",
    password="praison123"
)

# Create agent with persistence
agent = Agent(
    name="Assistant",
    instructions="You are a helpful assistant.",
    db=db,
    session_id="my-session-001"
)

# All chats are automatically persisted
response = agent.chat("My name is Alice")
print(response)

# Close when done
db.close()

SQLite (Zero Config)

from praisonaiagents import Agent
from praisonai.db import SQLiteDB

db = SQLiteDB(path="conversations.db")
agent = Agent(name="Assistant", db=db, session_id="local-session")
agent.chat("Hello!")
db.close()

Auto-Detect Backend

from praisonai.db import PraisonDB

# PostgreSQL
db = PraisonDB(database_url="postgresql://user:pass@localhost/db")

# SQLite
db = PraisonDB(database_url="mydata.db")

# MySQL
db = PraisonDB(database_url="mysql://user:pass@localhost/db")

Environment Variables

export PRAISON_CONVERSATION_URL="postgresql://localhost/mydb"
export OPENAI_API_KEY="your-key"
import os
from praisonai.db import PraisonDB

db = PraisonDB(database_url=os.getenv("PRAISON_CONVERSATION_URL"))

CLI Usage

# Validate connectivity
praisonai persistence doctor \
    --conversation-url "postgresql://postgres:praison123@localhost/praisonai"

# Run agent with persistence
praisonai persistence run \
    --session-id "cli-session" \
    --conversation-url "postgresql://postgres:praison123@localhost/praisonai" \
    "Hello, my name is Bob"

Next Steps