actian-hackathon-guide

Actian VectorAI DB Guide - HexaFalls 2

Quick reference for HexaFalls 2, July 24–26, 2026, JIS University, Kolkata. Maintained by the Actian VectorAI DB team.


What is VectorAI DB?

Actian VectorAI DB is a vector database, a specialized database for AI applications that search by meaning, not just keywords. Think of it like this:

Common use cases: RAG chatbots, semantic search, recommendation engines, anomaly detection.

Important: VectorAI DB does not include an embedding model. You need to bring your own (e.g. sentence-transformers, OpenAI embeddings). It handles storage and search, you handle the embeddings.

About gRPC: the database communicates over gRPC under the hood, you don’t need to know anything about it. The Python client handles it for you. UNAVAILABLE/timeout errors usually mean a connection issue (server not reachable) — but other gRPC-wrapped errors (not found, dimension mismatch, unimplemented) are code/data issues, not connection issues.

How vector embeddings work

Your data gets converted into arrays of numbers called vectors that capture the meaning of the original content. VectorAI DB stores and indexes these for fast semantic search.

Vector Embeddings


What Can You Build?

VectorAI DB is the storage-and-search layer. Pair it with an embedding model and you can build:

Model Dimensions Notes
sentence-transformers/all-MiniLM-L6-v2 384d Fast, general-purpose, great default choice
sentence-transformers/all-mpnet-base-v2 768d Higher quality text embeddings
BAAI/bge-small-en-v1.5 384d Strong quality-to-speed ratio
openai/clip-vit-base-patch32 512d Multimodal (text + images)
microsoft/codebert-base 768d Code understanding

All models above are on Hugging Face and installable via pip install sentence-transformers or pip install transformers.


The Actian Challenge: “Accio Relevance”

Build with Actian VectorAI Database.

Most student projects at general hackathons default to keyword search or basic CRUD apps because that’s the fastest path to a demo. The real pain point: search that only matches exact words misses what users actually mean, and most teams don’t have time in a short hackathon window to build a proper retrieval layer from scratch.

Actian VectorAI Database removes that barrier: a production-grade vector database that runs anywhere - cloud, edge, or fully offline - so teams can spend their time on the idea, not on standing up infrastructure.

The only hard rule: Actian VectorAI DB must be a core part of your stack, not an afterthought.

Prize Structure: $1,000 Pool

Place Prize
🥇 1st $500
🥈 2nd $300
🥉 3rd $200
Ranked teams Swag + spotlight feature on the Actian blog or socials or Discord

(Prizes are per team, not per person, solo entries take the full amount.)

What counts as a valid project

What doesn’t count

Submission requirements

Building something or have questions? Join our Discord, we’re active there during and after the event.


Get Access

VectorAI DB’s Community Edition comes with 5,000 vectors. Sign up for a free trial key to get 1 million vector embeddings. The key is sent by email after signup.

👉 Get the trial key here

Note: the Community Edition’s 5,000 limit caps out across all your collections combined. The cap isn’t enforced instantly — there’s a periodic background check, so a write can succeed and then start failing shortly after with no warning at the point of insert. If your writes start mysteriously failing mid-hack, check your total vector count before assuming it’s a bug (delete operations still work even while you’re over the limit, so you can trim back down without waiting).


Quickstart

Install to first query, in under 10 minutes.

Requirements: Python 3.10+ (validated on 3.10–3.14).

pip install actian-vectorai-client
docker pull actian/vectorai:latest
docker run -d --name vectorai \
  -v ./local_data:/var/lib/actian-vectorai \
  -p 6573-6575:6573-6575 \
  -e ACTIAN_VECTORAI_ACCEPT_EULA=YES \
  actian/vectorai:latest
from actian_vectorai import VectorAIClient, VectorParams, Distance, PointStruct

with VectorAIClient("localhost:6574") as client:
    info = client.health_check()
    print(f"Connected to {info['title']} v{info['version']}")

    # Create a collection
    client.collections.create(
        "products",
        vectors_config=VectorParams(size=128, distance=Distance.Cosine),
    )

    # Insert points
    client.points.upsert("products", [
        PointStruct(id=1, vector=[0.1] * 128, payload={"category": "books"}),
    ])

    # Search
    results = client.points.search("products", vector=[0.1] * 128, limit=5)
    for r in results:
        print(f"[{r.id}] score={r.score:.4f} payload={r.payload}")

Pattern: Hybrid Fusion

Combine results from multiple search queries, useful if you want to blend dense (semantic) and sparse (keyword-style) search, or merge results from two different queries into one ranked list:

from actian_vectorai import reciprocal_rank_fusion, distribution_based_score_fusion

dense  = client.points.search("col", vector=dense_query,  limit=50)
sparse = client.points.search("col", vector=sparse_query, limit=50)

# Reciprocal Rank Fusion
fused = reciprocal_rank_fusion([dense, sparse], limit=10, weights=[0.7, 0.3])

# Distribution-Based Score Fusion
fused = distribution_based_score_fusion([dense, sparse], limit=10)

Both RRF and DBSF run client-side in the SDK (see Known Issues below) — that’s expected behavior, not a bug.


Known Issues / First-Hour Gotchas


Where to Get Help


What’s Next: $10K Virtual Hackathon in September

We’re running a bigger community hackathon in September. Fully virtual, on our Discord, with a $10,000 grand prize (single winner, no runner-ups).

VectorAI DB Virtual Hackathon in September

Full rules, theme, and judging criteria drop when registration opens, the Discord is where it’ll be posted first.