This project is part of pgEdge Labs and is under active development. APIs and features may change without notice.
Quick Start
The steps that follow are designed to get you started with semantic caching quickly and easily. Before using pg_semantic_cache, you must install the following components:
- PostgreSQL version 14, 15, 16, 17, or 18.
- The pgvector extension.
- A C compiler such as gcc or clang.
- PostgreSQL development headers.
Installation
Use the following commands to build the extension from the GitHub repository:
# Clone the repository
git clone https://github.com/pgedge/pg_semantic_cache.git
cd pg_semantic_cache
# Build and install
make clean
make
sudo make install
After building the extension, you need to install and create the extensions you will be using:
-- Install required extensions
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_semantic_cache;
-- Verify installation
SELECT * FROM semantic_cache.cache_health;
Using pg_semantic_cache
Use the following commands to add a result set to a cache, and then query the cache with a similar query:
In the following example, the cache_query function stores a query
result with its embedding, and the get_cached_result function
retrieves a semantically similar cached result:
SELECT semantic_cache.cache_query(
query_text := 'What was our Q4 2024 revenue?',
query_embedding := '[0.123, 0.456, ...]'::text,
result_data := '{"answer": "Q4 2024 revenue was $2.4M"}'::jsonb,
ttl_seconds := 1800,
tags := ARRAY['llm', 'revenue']
);
SELECT * FROM semantic_cache.get_cached_result(
query_embedding := '[0.124, 0.455, ...]'::text,
similarity_threshold := 0.95
);