Lore
03 · AI Infrastructure
RAGpgvectorFastAPI sentence-transformersGroqSlackJira

Lore

Your organization's memory. Lore logs every Slack message and Jira ticket into a vector database and lets you ask questions in plain English — who decided what, when, and why.

Status
Live
Domain
AI Infrastructure
Core Tech
RAG · pgvector
Deployment
HF Spaces · Vercel
The Problem

Decisions get made in Slack.
Then they disappear.

Every team has the same problem. A critical architectural decision was made in a Slack thread six months ago. A Jira ticket explains why a feature was deprioritized. But nobody can find it. The thread is buried under thousands of messages. The ticket is closed and forgotten. A new team member asks why things work the way they do — and nobody really knows.

Organizational memory lives in conversations and tickets. Lore makes that memory searchable, queryable, and permanent. Ask "why was the mobile app deprioritized?" and Lore tells you exactly who said it, in which channel, and when.

Architecture

A full RAG pipeline end to end

💬
Slack
Webhook
🎫
Jira
REST API
FastAPI
Async
🤗
Embeddings
all-MiniLM-L6
🗄️
pgvector
Supabase
🧠
Groq LLM
Llama 3.1
💡
Answer
With citations
It Works

Real answers from real data

Lore · Ask your organization
Why was the mobile app deprioritized?
The mobile app was deprioritized for Q1. Leadership decided to focus engineering resources on enterprise desktop features first. This was communicated by Mubeen Sahar in the #product channel on April 14, 2026.
→ [SLACK][#product][2026-04-14] Mubeen Sahar

What's the status of the payment gateway bug?
The status of the payment gateway bug, as reported in Jira ticket LT-1, is currently in review. This was mentioned in a comment on LT-1 — the issue was traced to a missing retry mechanism on the Stripe webhook handler.
→ [JIRA][LT-1][2026-04-13] · Comment by Mubeen Sahar

something about unicorns flying to mars
I couldn't find anything relevant in your organization's history for that question.
→ similarity threshold: 0.35 · no results above threshold
The Engineering

Async all the way down

The entire query path is non-blocking. Embedding generation runs in asyncio.to_thread to avoid blocking the event loop on CPU-bound inference. The Supabase RPC call is also offloaded. Jira sync uses httpx.AsyncClient with proper pagination via nextPageToken. The result: a FastAPI server that handles concurrent queries without starving.

The Detail

It knows when not to answer.

Cosine similarity threshold of 0.35 filters out irrelevant results before they reach the LLM. If nothing in the vector store is relevant to the question, Lore says so clearly instead of hallucinating. Upsert-based deduplication means running Jira sync hourly never pollutes the database with duplicates.

Features

What Lore does

💬
Real-time Slack Ingestion
Every message across all channels is captured via Slack's event webhook, embedded, and stored within seconds. Bot and system messages are filtered automatically.
🎫
Jira Sync with Pagination
Pulls tickets and comments via the Jira REST API with full pagination support. Handles Atlassian's new /search/jql endpoint and nextPageToken pagination.
🔍
Semantic Vector Search
Uses all-MiniLM-L6-v2 embeddings with IVFFlat cosine similarity search via Supabase pgvector. Results filtered at 0.35 threshold — no hallucinated answers.
🧠
LLM with Citations
Groq's Llama 3.1 generates answers grounded in retrieved context. Every answer cites the source channel, author, and timestamp — no fabrication.
🔄
Deduplication
Upsert strategy with a unique constraint on (source, channel, timestamp, author) means running sync multiple times never creates duplicate entries.
🛡️
Production-ready Config
Startup env validation, locked CORS, protected admin endpoints, lazy model loading with pre-warm on boot, and complete Docker deployment for HuggingFace Spaces.
Stack

How it's built

FastAPI
Async Backend
🗄️
Supabase
pgvector DB
🤗
sentence-transformers
Embeddings
🧠
Groq
LLM Inference
💬
Slack Bolt
Event Webhook
🎫
Jira REST
Ticket Sync
⚛️
React
Query UI
🐳
Docker
HF Spaces Deploy
Roadmap

Where Lore goes next

🔐

Authentication & Multi-tenancy

Clerk/Auth0 SSO login with Supabase Row Level Security for org-level data isolation. Each org connects their own Slack and Jira via OAuth — no manual key swapping.

📄

Confluence & Notion Connectors

Expand the knowledge base beyond real-time messages to include wikis, docs, and decision logs.

🤖

Slack Bot Query Mode

Ask Lore directly from Slack via @lore why was X deprioritized? — answers delivered inline in the channel without leaving the workspace.

📊

Admin Dashboard

Ingestion stats, query logs, source health monitoring, and relevance feedback (thumbs up/down) to improve retrieval quality over time.

Live and working

Deployed on HuggingFace Spaces (backend) + Vercel (frontend) · Connected to real Slack workspace and Jira project · Full RAG pipeline verified end to end

Try it live ↗
← CodeDissect Next: Uncanny Valley of Text →