import random
from actian_vectorai import VectorAIClient, PointStruct
DIMENSION = 128
COLLECTION = "products"
# Connect to VectorAI DB server
with VectorAIClient("localhost:50051") as client:
random.seed(42) # Reproducible random vectors
# Prepare batch data
payloads = [
{"category": "electronics", "price": 299.99, "in_stock": True},
{"category": "electronics", "price": 599.99, "in_stock": True},
{"category": "clothing", "price": 49.99, "in_stock": True},
{"category": "clothing", "price": 79.99, "in_stock": False},
{"category": "food", "price": 9.99, "in_stock": True},
{"category": "food", "price": 4.99, "in_stock": True},
{"category": "books", "price": 19.99, "in_stock": False},
{"category": "books", "price": 24.99, "in_stock": True},
{"category": "toys", "price": 39.99, "in_stock": True},
{"category": "toys", "price": 59.99, "in_stock": False}
]
# Create points with vectors and payloads
points = [
PointStruct(
id=i + 1, # Point ID
vector=[random.gauss(0, 1) for _ in range(DIMENSION)], # Generate vector
payload=payload # Attach metadata (optional)
)
for i, payload in enumerate(payloads)
]
# Batch insert all points
client.points.upsert(COLLECTION, points)
print(f"Batch inserted {len(points)} points with payloads")