Enhanced Insights with daily summary embeddings

Bump to 0.5.0. Added daily summary generation job
This commit is contained in:
Cameron
2026-01-05 09:13:16 -05:00
parent 43b7c2b8ec
commit 11e725c443
18 changed files with 2348 additions and 61 deletions

View File

@@ -0,0 +1,3 @@
-- Drop tables in reverse order
DROP TABLE IF EXISTS vec_message_embeddings;
DROP TABLE IF EXISTS message_embeddings;

View File

@@ -0,0 +1,19 @@
-- Table for storing message metadata and embeddings
-- Embeddings stored as BLOB for proof-of-concept
-- For production with many contacts, consider using sqlite-vec extension
CREATE TABLE message_embeddings (
id INTEGER PRIMARY KEY NOT NULL,
contact TEXT NOT NULL,
body TEXT NOT NULL,
timestamp BIGINT NOT NULL,
is_sent BOOLEAN NOT NULL,
embedding BLOB NOT NULL,
created_at BIGINT NOT NULL,
model_version TEXT NOT NULL,
-- Prevent duplicate embeddings for the same message
UNIQUE(contact, body, timestamp)
);
-- Indexes for efficient queries
CREATE INDEX idx_message_embeddings_contact ON message_embeddings(contact);
CREATE INDEX idx_message_embeddings_timestamp ON message_embeddings(timestamp);

View File

@@ -0,0 +1 @@
DROP TABLE daily_conversation_summaries;

View File

@@ -0,0 +1,19 @@
-- Daily conversation summaries for improved RAG quality
-- Each row = one day's conversation with a contact, summarized by LLM and embedded
CREATE TABLE daily_conversation_summaries (
id INTEGER PRIMARY KEY NOT NULL,
date TEXT NOT NULL, -- ISO date "2024-08-15"
contact TEXT NOT NULL, -- Contact name
summary TEXT NOT NULL, -- LLM-generated 3-5 sentence summary
message_count INTEGER NOT NULL, -- Number of messages in this day
embedding BLOB NOT NULL, -- 768-dim vector of the summary
created_at BIGINT NOT NULL, -- When this summary was generated
model_version TEXT NOT NULL, -- "nomic-embed-text:v1.5"
UNIQUE(date, contact)
);
-- Indexes for efficient querying
CREATE INDEX idx_daily_summaries_date ON daily_conversation_summaries(date);
CREATE INDEX idx_daily_summaries_contact ON daily_conversation_summaries(contact);
CREATE INDEX idx_daily_summaries_date_contact ON daily_conversation_summaries(date, contact);