Skip to main content

Utility package for interacting with vectorstores

Project description

Rakam System Vectorstore

The vectorstore package of Rakam Systems providing vector database solutions and document processing capabilities.

Overview

rakam-systems-vectorstore provides comprehensive vector storage, embedding models, and document loading capabilities. This package depends on rakam-systems-core.

Features

  • Configuration-First Design: Change your entire vector store setup via YAML — no code changes
  • Multiple Backends: PostgreSQL with pgvector and FAISS in-memory storage
  • Flexible Embeddings: SentenceTransformers, OpenAI, and Cohere
  • Document Loaders: PDF, DOCX, HTML, Markdown, CSV, and more
  • Search Capabilities: Vector search, keyword search (BM25), and hybrid search
  • Chunking: Intelligent text chunking with context preservation

Installation

pip install rakam-systems-vectorstore

# With specific backends
pip install rakam-systems-vectorstore[postgres]
pip install rakam-systems-vectorstore[faiss]
pip install rakam-systems-vectorstore[all]

Available extras:

Extra What it adds
postgres psycopg2-binary, pgvector, django
faiss faiss-cpu
local-embeddings sentence-transformers, torch
openai openai (for OpenAI embeddings)
cohere cohere (for Cohere embeddings)
loaders python-magic, beautifulsoup4, python-docx, pymupdf, docling, chonkie
all Everything above

Quick Start

from rakam_systems_vectorstore import FaissStore, Node, NodeMetadata

store = FaissStore(
    name="my_store",
    base_index_path="./indexes",
    embedding_model="Snowflake/snowflake-arctic-embed-m",
    initialising=True
)

nodes = [
    Node(
        content="Python is great for AI",
        metadata=NodeMetadata(source_file_uuid="doc1", position=0)
    )
]

store.create_collection_from_nodes("my_collection", nodes)
results, _ = store.search(collection_name="my_collection", query="AI programming", number=5)

PostgreSQL store (Django, FastAPI, or plain Python)

The PostgreSQL store is exposed at a stable import path:

from rakam_systems_vectorstore.stores import (
    ConfigurablePgVectorStore,
    VectorStoreConfig,
)

store = ConfigurablePgVectorStore(config=VectorStoreConfig())
store.setup()  # creates the pgvector extension and tables if needed

The store connects through Django's ORM. Inside a Django process it uses your project's existing database configuration. Outside Django (FastAPI, workers, scripts) importing from rakam_systems_vectorstore.stores automatically configures Django from the POSTGRES_* environment variables — no DJANGO_SETTINGS_MODULE or django.setup() needed on your side. A host that has already configured Django is never overridden.

To target a database other than the POSTGRES_* defaults, configure it explicitly before the first import from the store:

from rakam_systems_vectorstore.config import DatabaseConfig
from rakam_systems_vectorstore.stores import ensure_django_configured

ensure_django_configured(DatabaseConfig(host="db.internal", database="tickets"))

from rakam_systems_vectorstore.stores import ConfigurablePgVectorStore

Core Components

  • ConfigurablePgVectorStore — PostgreSQL with pgvector, hybrid search, keyword search
  • FaissStore — In-memory FAISS-based vector search
  • ConfigurableEmbeddings — SentenceTransformers, OpenAI, Cohere backends
  • AdaptiveLoader — Auto-detects and loads PDF, DOCX, HTML, Markdown, CSV, email, code
  • TextChunker / AdvancedChunker — Sentence-based and context-aware chunking

Environment Variables

Variable Description
POSTGRES_HOST PostgreSQL host (default: localhost)
POSTGRES_PORT PostgreSQL port (default: 5432)
POSTGRES_DB Database name (default: vectorstore_db)
POSTGRES_USER Database user (default: postgres)
POSTGRES_PASSWORD Database password
OPENAI_API_KEY For OpenAI embeddings
COHERE_API_KEY For Cohere embeddings
HUGGINGFACE_TOKEN For private HuggingFace models

Documentation

For PostgreSQL setup, search examples, YAML configuration, and full API reference, see the official documentation.

License

Apache 2.0

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

rakam_systems_vectorstore-0.1.4.tar.gz (120.7 kB view details)

Uploaded Source

Built Distribution

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

rakam_systems_vectorstore-0.1.4-py3-none-any.whl (163.2 kB view details)

Uploaded Python 3

File details

Details for the file rakam_systems_vectorstore-0.1.4.tar.gz.

File metadata

  • Download URL: rakam_systems_vectorstore-0.1.4.tar.gz
  • Upload date:
  • Size: 120.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for rakam_systems_vectorstore-0.1.4.tar.gz
Algorithm Hash digest
SHA256 96b0c747665d0ea81559e6ae38463f6470c019968ae2f154faaf3d7c3b349c09
MD5 4225e4115f9a4de85126b2bec8f8382b
BLAKE2b-256 1d4c9e823b6c2a21e3248503d8daac06c734eef351a7b62760a2f606333d5ac7

See more details on using hashes here.

File details

Details for the file rakam_systems_vectorstore-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: rakam_systems_vectorstore-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 163.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for rakam_systems_vectorstore-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 055651b5bad1e5a25f5ba1f9708a5b2bb4261b063fab7043b0584af5b0eae8b7
MD5 6f1c3d2d7e0843fc531f0adbb808e66a
BLAKE2b-256 b39b3d26371371bf1574e5abc3c43f6b13a7f36a86209128fceb0d4c1e604ca4

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