Files
bot/skills/hanzo-vector/SKILL.md
zeekay e5aac7b8a2 feat(skills): add complete Hanzo cloud service repertoire (20 new skills)
Full coverage of Hanzo infrastructure: MCP (260+ tools), CLI, LLM
Gateway, Chat, Network, Node, Web3, Consensus, ACI, REPL, Vector DB,
KV Store, PubSub, DocumentDB, Storage, Studio, Insights, Commerce,
Search, and Telemetry. Updated PaaS skill to use hanzo-tools-paas SDK.
2026-02-27 00:09:47 -08:00

2.9 KiB

name, description, metadata
name description metadata
hanzo-vector Vector similarity search with Hanzo Vector (Qdrant). Store embeddings, semantic search, hybrid search, RAG pipelines, and recommendation systems.
bot
requires install
bins
python3
id kind package label
pip pip qdrant-client Install Qdrant Client (pip)

Hanzo Vector — Similarity Search Engine

pip install qdrant-client

Vector similarity search for embeddings, semantic search, RAG pipelines, and recommendations. Built on Qdrant.

Quick Start

from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct

client = QdrantClient("http://localhost:6333")

# Create collection
client.create_collection(
    collection_name="documents",
    vectors_config=VectorParams(size=384, distance=Distance.COSINE)
)

# Upsert vectors
client.upsert(
    collection_name="documents",
    points=[
        PointStruct(id=1, vector=[0.1, 0.2, ...], payload={"text": "Hello world"}),
        PointStruct(id=2, vector=[0.3, 0.4, ...], payload={"text": "Goodbye world"}),
    ]
)

# Search
results = client.search(
    collection_name="documents",
    query_vector=[0.1, 0.2, ...],
    limit=10
)
for r in results:
    print(r.payload["text"], r.score)

Hybrid Search (Dense + Sparse)

from qdrant_client.models import SparseVector, SearchRequest

# Search with both dense and sparse vectors
results = client.search(
    collection_name="documents",
    query_vector=dense_vector,
    query_filter={"must": [{"key": "category", "match": {"value": "tech"}}]},
    limit=10
)

Payload Filtering

from qdrant_client.models import Filter, FieldCondition, MatchValue, Range

# Complex filtering
results = client.search(
    collection_name="documents",
    query_vector=embedding,
    query_filter=Filter(
        must=[
            FieldCondition(key="author", match=MatchValue(value="hanzo")),
            FieldCondition(key="year", range=Range(gte=2024)),
        ]
    ),
    limit=10
)

RAG Pipeline

# 1. Generate embedding for query
from hanzoai import Hanzo
ai = Hanzo(api_key="...")
embedding = ai.embeddings.create(
    model="text-embedding-3-small",
    input="What is Hanzo MCP?"
).data[0].embedding

# 2. Search vector DB
results = client.search(
    collection_name="knowledge",
    query_vector=embedding,
    limit=5
)

# 3. Build context for LLM
context = "\n".join([r.payload["text"] for r in results])

In-Memory (Testing)

client = QdrantClient(":memory:")  # No server needed

Ports

  • HTTP REST: 6333
  • gRPC: 6334

Environment Variables

QDRANT_HOST=localhost
QDRANT_PORT=6333
QDRANT_API_KEY=...          # Optional, requires TLS