Skip to main content

A memory-augmented framework for LLMs

Project description

🦙 Llamate

A memory-augmented agent framework for LLMs.

Quick Start

1. Install Llamate

pip install llamate

2. PostgreSQL Setup

To use Llamate with PostgreSQL:

# Run PostgreSQL with pgvector extension using Docker
docker run --name llamate-postgres -e POSTGRES_USER=llamate -e POSTGRES_PASSWORD=llamate -e POSTGRES_DB=llamate -p 5432:5432 -d ankane/pgvector

3. Verifying PostgreSQL Installation

Check if the container is running:

docker ps | grep llamate-postgres

Check PostgreSQL logs:

docker logs llamate-postgres

4. Accessing PostgreSQL Container

Connect to PostgreSQL:

docker exec -it llamate-postgres psql -U llamate -d llamate

Useful PostgreSQL Commands:

-- List all tables
\dt

-- Check if pgvector extension is installed
\dx

-- List all schemas
\dn

-- Exit PostgreSQL shell
\q

5. Initialize Llamate config

llamate --init

When prompted, choose postgres as your vector backend and enter this connection string:

postgresql://llamate:llamate@localhost:5432/llamate

6. Basic Usage

from llamate import MemoryAgent, get_vectorstore_from_env

# Create an agent with your config settings
user_id = "test_user"
vectorstore = get_vectorstore_from_env(user_id=user_id)
agent = MemoryAgent(user_id=user_id, vectorstore=vectorstore)

# Add a memory
response = agent.chat("The capital of France is Paris")

# Retrieve memory later
response = agent.chat("What's the capital of France?")
print(response)  # Will include information about Paris

### 7. Interactive CLI

```bash
llamate

Complete PostgreSQL End-to-End Flow

Follow these steps to set up, use, and view data in Llamate with PostgreSQL:

1. Start PostgreSQL Container

docker run --name llamate-postgres -e POSTGRES_USER=llamate -e POSTGRES_PASSWORD=llamate -e POSTGRES_DB=llamate -p 5432:5432 -d ankane/pgvector

2. Initialize Llamate

llamate --init
# Select 'postgres' as your vector store backend
# Enter connection string: postgresql://llamate:llamate@localhost:5432/llamate

3. Run a Test Script to Store Data

Create a file test_llamate.py:

from llamate import MemoryAgent, get_vectorstore_from_env
import os

# Set user ID
user_id = "test_user"

# Initialize components
vectorstore = get_vectorstore_from_env(user_id=user_id)
agent = MemoryAgent(user_id=user_id, vectorstore=vectorstore)

# Add memories
agent.chat("The capital of France is Paris.")
agent.chat("The Eiffel Tower is 324 meters tall.")
agent.chat("Python is a programming language created by Guido van Rossum.")

# Test retrieval
response = agent.chat("Tell me about Paris.")
print("Response:", response)

4. View Data in PostgreSQL

Connect to the database:

docker exec -it llamate-postgres psql -U llamate -d llamate

List tables to find your memory table (it will use your user_id):

\dt

View table structure:

\d memory_test_user

Display memory records (omitting the large vector field):

SELECT id, text FROM memory_test_user;

Count records:

SELECT COUNT(*) FROM memory_test_user;

Query specific memories (using text search):

SELECT id, text FROM memory_test_user WHERE text LIKE '%Paris%';

Delete test memories (if needed):

DELETE FROM memory_test_user WHERE text LIKE '%test%';

Exit the PostgreSQL shell:

\q

Features

  • Persistent memory for AI using vector embeddings
  • Multiple vector store backends (FAISS and PostgreSQL)
  • Easy integration into existing applications
  • Simple CLI for testing and demonstration

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

llamate-0.1.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llamate-0.1.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file llamate-0.1.0.tar.gz.

File metadata

  • Download URL: llamate-0.1.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for llamate-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f93e2ec4a2364a93c4f0d81b847ef3c2b2af8e344b8ae25ed0f73c5527eb8fd7
MD5 9180bff144c74e52c77dcc90acbb4aeb
BLAKE2b-256 9b93cbff4114c3965be1060d3503987e3a6526eb27b3f94560f9f44d91e3938c

See more details on using hashes here.

File details

Details for the file llamate-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: llamate-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for llamate-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b63f1017091b4331b13211e7ed3f43d6ca493e31356f3de515321d963a76012
MD5 5abd11f523f90807d64ce8f93d6a4d74
BLAKE2b-256 6209dcd053a35ddfcc637b1db3d692564df94b837d71e7a7428e0d2c07fdaaa9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page