mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-24 05:43:58 +00:00
- Create docker/Dockerfile with PostgreSQL extension + npm packages - Build ruvnet/ruvector:0.2.5 image (PostgreSQL 17, Node.js 20) - Include 65 SQL functions: vector, hyperbolic, sparse, GNN, routing, learning - Pre-install npm packages: ruvector, @ruvector/sona, ruvllm, postgres-cli - Add comprehensive Docker Hub README with 8 tutorials - Update main README with Docker quickstart section - Add Docker badge to README Docker images available: - ruvnet/ruvector:latest - Full platform (PostgreSQL + npm) - ruvnet/ruvector-postgres:latest - PostgreSQL extension only 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
65 lines
2.3 KiB
SQL
65 lines
2.3 KiB
SQL
-- RuVector Initialization Script
|
|
-- This script runs automatically when the container starts
|
|
|
|
-- Create the RuVector extension
|
|
CREATE EXTENSION IF NOT EXISTS ruvector;
|
|
|
|
-- Display version
|
|
DO $$
|
|
BEGIN
|
|
RAISE NOTICE 'RuVector extension loaded: %', (SELECT ruvector_version());
|
|
END $$;
|
|
|
|
-- Create demo schema
|
|
CREATE SCHEMA IF NOT EXISTS ruvector_demo;
|
|
|
|
-- Demo table for vector search
|
|
CREATE TABLE IF NOT EXISTS ruvector_demo.documents (
|
|
id SERIAL PRIMARY KEY,
|
|
title TEXT NOT NULL,
|
|
content TEXT,
|
|
embedding ruvector(1536),
|
|
metadata JSONB DEFAULT '{}',
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
-- Demo table for smaller embeddings (OpenAI ada-002 compatible)
|
|
CREATE TABLE IF NOT EXISTS ruvector_demo.embeddings_384 (
|
|
id SERIAL PRIMARY KEY,
|
|
source_id TEXT,
|
|
embedding ruvector(384),
|
|
metadata JSONB DEFAULT '{}'
|
|
);
|
|
|
|
-- Demo table for hyperbolic embeddings (hierarchical data)
|
|
CREATE TABLE IF NOT EXISTS ruvector_demo.taxonomy (
|
|
id SERIAL PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
parent_id INTEGER REFERENCES ruvector_demo.taxonomy(id),
|
|
embedding ruvector(128), -- Poincaré ball embeddings
|
|
level INTEGER DEFAULT 0
|
|
);
|
|
|
|
-- Note: HNSW indexes can be created after data is inserted
|
|
-- Example:
|
|
-- CREATE INDEX ON ruvector_demo.documents USING hnsw (embedding ruvector_l2_ops)
|
|
-- WITH (m = 16, ef_construction = 64);
|
|
|
|
-- Grant permissions
|
|
GRANT USAGE ON SCHEMA ruvector_demo TO ruvector;
|
|
GRANT ALL ON ALL TABLES IN SCHEMA ruvector_demo TO ruvector;
|
|
GRANT ALL ON ALL SEQUENCES IN SCHEMA ruvector_demo TO ruvector;
|
|
|
|
-- Show available functions
|
|
DO $$
|
|
BEGIN
|
|
RAISE NOTICE 'RuVector initialized with 53+ SQL functions including:';
|
|
RAISE NOTICE ' - Vector: ruvector_l2_distance, ruvector_cosine_distance, ruvector_normalize';
|
|
RAISE NOTICE ' - Hyperbolic: ruvector_poincare_distance, ruvector_mobius_add, ruvector_exp_map';
|
|
RAISE NOTICE ' - Sparse: ruvector_sparse_dot, ruvector_bm25_score';
|
|
RAISE NOTICE ' - GNN: ruvector_gcn_forward, ruvector_graphsage_forward';
|
|
RAISE NOTICE ' - Attention: attention_score, attention_softmax';
|
|
RAISE NOTICE ' - Graph: ruvector_create_graph, ruvector_cypher, ruvector_shortest_path';
|
|
RAISE NOTICE ' - Routing: ruvector_route, ruvector_register_agent';
|
|
RAISE NOTICE ' - Learning: ruvector_enable_learning, ruvector_record_feedback';
|
|
END $$;
|