Files
Baradb/clients/python/baradb/langchain_README.md
T
dimgigov 55bc3e862a feat(langchain): Session 10.2 — LangChain Vector Store (Python + JS)
- 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
2026-05-17 13:46:42 +03:00

68 lines
1.7 KiB
Markdown

# BaraDB LangChain Integration
## Python
```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
```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 + INSERT
- `similarity_search()` — uses `hybrid_search()` (vector + FTS + RRF)
- `max_marginal_relevance_search()` — MMR reranking for diversity
- `delete()` — remove by IDs
- Multi-tenant — `tenant_id` sets session variable + metadata filter