Skip to main content

An integration package connecting LambdaDB and LangChain

Project description

langchain-lambdadb

This package contains the LangChain integration with LambdaDB vector store.

Installation

pip install -U langchain-lambdadb

Prerequisites

Before using this integration, you need to:

  1. Create a collection in LambdaDB with proper vector and text indexes
  2. Have your LambdaDB credentials ready

Creating a Collection

Create a collection in LambdaDB with the required indexes:

from lambdadb import LambdaDB, models

client = LambdaDB(
    base_url="https://api.lambdadb.ai",
    project_name="playground",
    project_api_key="<your-project-api-key>",
)

# Create collection with vector and text indexes
client.collections.create(
    collection_name="my_collection",
    index_configs={
        "vector": {
            "type": models.TypeVector.VECTOR,
            "dimensions": 1536,  # Match your embedding dimensions
            "similarity": models.Similarity.COSINE
        },
        "text": {
            "type": models.TypeText.TEXT,
            "analyzers": [models.Analyzer.ENGLISH]
        }
    }
)

Quick Start

import os
from lambdadb import LambdaDB
from langchain_lambdadb import LambdaDBVectorStore
from langchain_openai import OpenAIEmbeddings
from langchain_core.documents import Document

# Set up LambdaDB client (0.7.0+ use base_url and project_name)
client = LambdaDB(
    base_url=os.getenv("LAMBDADB_BASE_URL", "https://api.lambdadb.ai"),
    project_name=os.getenv("LAMBDADB_PROJECT_NAME", "playground"),
    project_api_key=os.getenv("LAMBDADB_PROJECT_API_KEY"),
)

# Connect to existing collection
vector_store = LambdaDBVectorStore(
    client=client,
    collection_name="my_collection",  # Must be an existing collection
    embedding=OpenAIEmbeddings()
)

# Add documents
documents = [
    Document(page_content="LambdaDB is a vector database", metadata={"source": "docs"}),
    Document(page_content="LangChain integrates with LambdaDB", metadata={"source": "docs"}),
]
vector_store.add_documents(documents)

# Search for similar documents
results = vector_store.similarity_search("What is LambdaDB?", k=2)
for doc in results:
    print(f"Content: {doc.page_content}")
    print(f"Metadata: {doc.metadata}")

Configuration

Set the following environment variables:

export LAMBDADB_BASE_URL="https://api.lambdadb.ai"   # optional, this is the default
export LAMBDADB_PROJECT_NAME="playground"             # optional, this is the default
export LAMBDADB_PROJECT_API_KEY="<your-project-api-key>"

Vector Store Features

The LambdaDBVectorStore supports:

  • Document Operations: Add, update, and delete documents
  • Similarity Search: Find similar documents using vector search
  • Metadata Filtering: Filter search results by document metadata
  • Batch Operations: Efficient bulk document processing
  • Async Support: Full async/await support for all operations

Advanced Usage

Similarity Search with Scores

# Get similarity scores with results
results_with_scores = vector_store.similarity_search_with_score(
    query="vector database features",
    k=3
)

for doc, score in results_with_scores:
    print(f"Score: {score:.4f}")
    print(f"Content: {doc.page_content}")

Metadata Filtering

# Search with metadata filters
filtered_results = vector_store.similarity_search(
    query="database",
    k=5,
    filter={"source": "documentation"}
)

Using as a Retriever

# Use as a retriever for RAG applications
retriever = vector_store.as_retriever(
    search_type="similarity",
    search_kwargs={"k": 4}
)

relevant_docs = retriever.invoke("How does LambdaDB work?")

Development

For development and testing:

# Clone the repository
git clone <repository-url>
cd langchain-lambdadb

# Install with development dependencies
poetry install --with test,lint

# Run tests with mock data
make test

# Run integration tests with real LambdaDB (requires credentials)
export LAMBDADB_BASE_URL="https://api.lambdadb.ai"
export LAMBDADB_PROJECT_NAME="playground"
export LAMBDADB_PROJECT_API_KEY="<your-project-api-key>"
# Optional: Use existing collection instead of creating test collections
export LAMBDADB_COLLECTION_NAME="your-test-collection"
make integration_tests

# Lint and format code
make lint
make format

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langchain_lambdadb-0.1.1.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langchain_lambdadb-0.1.1-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file langchain_lambdadb-0.1.1.tar.gz.

File metadata

  • Download URL: langchain_lambdadb-0.1.1.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.9.25 Linux/6.14.0-1017-azure

File hashes

Hashes for langchain_lambdadb-0.1.1.tar.gz
Algorithm Hash digest
SHA256 44ab33f6b878ec95c847993f9e8e7721cfb04c932e6eae2bb0e4b31220439d4a
MD5 78b15331d3342e0d9c0e4c498eb3aead
BLAKE2b-256 af1bdbd0d41e2d424be26ab6cd57d1df1978b8e0c0885b0e4a6f88d0941ce8aa

See more details on using hashes here.

File details

Details for the file langchain_lambdadb-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: langchain_lambdadb-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.9.25 Linux/6.14.0-1017-azure

File hashes

Hashes for langchain_lambdadb-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14a7258d5ad32e7c4659fe4293c5a4ead9d11504b878940345e2a2bc30d43198
MD5 3cb6a40faad8329a6e02f90a2fbebca8
BLAKE2b-256 cbc62395ad8a8d38002dfb5e2a83c3a3a62ddfaae8b9cfd78833b2c219782eab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page