55bc3e862a
- BaraDBStore for Python: add_texts, similarity_search, max_marginal_relevance_search, delete - BaraDBStore for JS: addDocuments, addTexts, similaritySearch, maxMarginalRelevanceSearch, delete - Both use hybrid_search() / hybrid_search_filtered() for vector+FTS+RRF - Multi-tenant support via tenant_id session variable + metadata filter - Embedding function is injected by user (OpenAI, sentence-transformers, etc.) - MMR reranking for result diversity
1.7 KiB
1.7 KiB
BaraDB LangChain Integration
Python
import asyncio
from baradb import Client
from baradb.langchain_store import BaraDBStore
async def main():
client = Client("localhost", 9472)
await client.connect()
# Use OpenAI, sentence-transformers, or any embedder
def embed(text: str) -> list[float]:
# Replace with your embedding model
return [0.1, 0.2, 0.3]
store = BaraDBStore(
client=client,
table="knowledge",
embedding_function=embed,
tenant_id="tenant-a",
vector_dimension=3,
)
await store.add_texts(["BaraDB is fast", "Vector search in SQL"])
results = await store.similarity_search("fast database", k=5)
for doc, score in results:
print(doc.page_content, score)
asyncio.run(main())
JavaScript
const { Client } = require('./baradb');
const { BaraDBStore } = require('./baradb_langchain');
async function main() {
const client = new Client('localhost', 9472);
await client.connect();
const store = new BaraDBStore({
client,
table: 'knowledge',
embeddingFunction: async (text) => [0.1, 0.2, 0.3],
tenantId: 'tenant-a',
vectorDimension: 3,
});
await store.addTexts(['BaraDB is fast', 'Vector search in SQL']);
const results = await store.similaritySearch('fast database', 5);
console.log(results);
}
main();
Features
add_texts()/addDocuments()— auto-generate embeddings + INSERTsimilarity_search()— useshybrid_search()(vector + FTS + RRF)max_marginal_relevance_search()— MMR reranking for diversitydelete()— remove by IDs- Multi-tenant —
tenant_idsets session variable + metadata filter