Loading…
Loading…
A search engine for the Walrus protocol that indexes and retrieves blob IDs from Walrus mainnet, with multimodal vector search using Omura Embed.
Using uv (recommended):
uv pip install -e .
Or using pip:
pip install -e .
Copy .env.example to .env and configure:
cp .env.example .env
Key configuration variables:
SUI_RPC_URL: Sui mainnet RPC endpointWALRUS_PUBLISHER_URL: Walrus publisher endpointWALRUS_AGGREGATOR_URL: Walrus aggregator endpointDATABASE_URL: PostgreSQL connection stringGPU_DEVICE: GPU device ID (default: 0)OMURA_EMBEDDING_MODEL: Hugging Face model id used for embeddings.If you duplicated/renamed your model repo on Hugging Face (for example immortaltatsu/omura_emebd), set:
export OMURA_EMBEDDING_MODEL="immortaltatsu/omura_emebd"
Omura will load this model via transformers at runtime.
python -m omura.main
Or run with your custom Hugging Face model directly:
OMURA_EMBEDDING_MODEL="immortaltatsu/omura_emebd" python -m omura.main
# Show statistics
omura stats
# List blobs
omura list
# Export blobs
omura export
GET /blobs - List all blob IDs (with pagination)GET /blobs/{blob_id} - Get blob metadataGET /blobs/{blob_id}/urls - Get frontend-usable URLsPOST /search - Vector similarity searchGET /stats - Indexing statisticsUse the benchmark script to validate latency/throughput and a retrieval sanity check:
PYTHONPATH=. python scripts/benchmark_omura_embed.py --model "immortaltatsu/omura_emebd"
Optional image benchmark:
PYTHONPATH=. python scripts/benchmark_omura_embed.py --model "immortaltatsu/omura_emebd" --image-dir data/samples --max-images 100
Results are saved to data/benchmarks/omura_embed_benchmark.json.
MIT