Encrypted AI Vector Search & Private RAG โ
With the explosion of Generative AI and Large Language Models (LLMs), Vector Databases have become essential. However, traditional vector databases store embeddings in cleartext, creating immense data leak risks.
FLASH DB provides native vector semantic search over sealed documents for private RAG โ embeddings and documents stay under your key. This is architectural privacy, not a formal proof; see Trust Model.
1. Storing Vector Embeddings ($vector) โ
When inserting a document, simply supply a numerical embedding array in the $vector field:
javascript
import { FlashClient } from "flash-zk";
const client = new FlashClient({ storagePath: "./flash_data" });
const articles = client.collection("articles");
// Insert document with an OpenAI / Gemini / Ollama vector embedding
await articles.insertOne({
title: "Quantum Key Distribution & Zero Knowledge",
category: "cybersecurity",
content: "Sensitive intelligence report...",
$vector: [0.124, 0.892, -0.451, 0.038, 0.771], // Arbitrary dimension array
});2. Performing Similarity Search (vectorSearch) โ
You can query nearest neighbors using Cosine Similarity, with optional metadata filters:
javascript
// Query embedding generated from user prompt
const queryVector = [0.119, 0.885, -0.44, 0.04, 0.76];
const similarReports = await articles.vectorSearch({
vector: queryVector,
topK: 3, // Number of top results
filter: { category: "cybersecurity" }, // Optional metadata filter
});
console.log(similarReports);Output: โ
json
[
{
"_id": "f8a92b...",
"title": "Quantum Key Distribution & Zero Knowledge",
"category": "cybersecurity",
"content": "Sensitive intelligence report...",
"_score": 0.9984
}
]The resulting _score is the normalized Cosine Similarity (ranging from 0.0 to 1.0).