Skip to content

PlotArmorDB is a high-performance, Java-based vector database designed for AI-powered semantic search, recommendation systems, and LLM-based retrieval. It provides fast, scalable, and resilient vector search optimized for real-time AI applications.

License

Notifications You must be signed in to change notification settings

SK9712/plotarmordb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PlotArmorDB

PlotArmorDB is a high-performance, Java-based vectorData database designed for AI-powered semantic search, recommendation systems, and LLM-based retrieval. It provides fast, scalable, and resilient vectorData search optimized for real-time AI applications.

Why "PlotArmorDB"?

Like characters with plot armor in stories, your data always survives, adapts, and delivers fast, reliable results—no matter the challenge!

Quick Start

# Build Docker image
docker build -t plotarmordb .

# Run container
docker run -d \
  -p 8080:8080 \
  -v plotarmor-data:/data/plotarmor-data \
  --name plotarmordb \
  plotarmordb

# Stop container
docker stop plotarmordb

# Remove container 
docker rm plotarmordb

# View logs
docker logs plotarmordb

# View container status
docker ps -a | grep plotarmordb

# Shell access
docker exec -it plotarmordb /bin/sh

# View container metrics
docker stats plotarmordb

Access the API:

Key Features

  • Vector storage with RocksDB backend
  • Fast nearest neighbor search using virtual threads
  • Text-to-vectorData conversion
  • Hybrid search (vectorData + keyword filtering)
  • Result caching
  • Docker support with health monitoring

API Examples

Store vectorData:

curl -X POST http://localhost:8080/vectorData \
  -H "Content-Type: application/json" \
  -d '{
    "values": [0.1, 0.2, 0.3],
    "metadata": {"category": "tech"}
  }'

Search vectorData:

curl -X POST http://localhost:8080/vectorData/search \
  -H "Content-Type: application/json" \
  -d '{
    "queryVector": [0.1, 0.2, 0.3],
    "topK": 5,
    "filter": {"category": "tech"}
  }'

Create from text:

curl -X POST http://localhost:8080/vectorData/text \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Example document text",
    "metadata": {"category": "docs"}
  }'

Configuration

Environment variables:

  • DB_PATH: Database storage location
  • SERVER_PORT: HTTP port (default: 8080)
  • MAX_CACHE_SIZE: Result cache size (default: 1000)
  • VOCABULARY_SIZE: Embedding vocab size (default: 10000)
  • BATCH_SIZE: Search batch size (default: 1000)

Requirements

  • Docker
  • Java 21 (for development)
  • Maven (for development)

Development

# Build
./mvnw clean package

# Run tests
./mvnw test

# Run locally
./mvnw spring-boot:run

License

Apache License 2.0

Copyright 2024 PlotArmorDB

About

PlotArmorDB is a high-performance, Java-based vector database designed for AI-powered semantic search, recommendation systems, and LLM-based retrieval. It provides fast, scalable, and resilient vector search optimized for real-time AI applications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published