{"library":"nano-vectordb","title":"Nano VectorDB","description":"Nano VectorDB is a simple, easy-to-hack, in-memory, disk-persisted vector database implementation. It's designed for rapid prototyping, educational purposes, and small-scale applications, offering a lightweight alternative to more complex solutions. The current version is 0.0.4.3, with an active development cadence featuring frequent minor releases.","language":"python","status":"active","last_verified":"Fri Apr 17","install":{"commands":["pip install nano-vectordb"],"cli":null},"imports":["from nano_vectordb import NanoVectorDB"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import numpy as np\nfrom nano_vectordb import NanoVectorDB\nimport os\nimport shutil\n\n# Initialize the database\ndb_path = \"my_nano_vectordb\"\ndb = NanoVectorDB(db_path, dim=4)\n\n# Add vectors with metadata and IDs\ndb.add(np.array([1.0, 2.0, 3.0, 4.0]), {\"text\": \"The quick brown fox.\"}, \"doc1\")\ndb.add(np.array([1.1, 2.1, 3.1, 4.1]), {\"text\": \"Jumps over the lazy dog.\"}, \"doc2\")\ndb.add(np.array([0.9, 1.9, 2.9, 3.9]), {\"text\": \"Another relevant document.\"}, \"doc3\")\n\n# Perform a similarity search\nquery_vector = np.array([1.0, 2.0, 3.0, 4.0])\nk_results = 2\nresults = db.search(query_vector, k=k_results)\n\nprint(f\"\\nSearch Results for top {k_results} documents:\")\nfor vector, metadata, vector_id, score in results:\n    print(f\"  ID: {vector_id}, Metadata: {metadata}, Score: {score:.4f}\")\n\n# Save the database to disk\ndb.save()\nprint(f\"\\nDatabase saved to '{db_path}'\")\n\n# Load the database from disk\nloaded_db = NanoVectorDB(db_path, dim=4) # Re-initialize with path and dim\nloaded_db.load()\nprint(f\"Database loaded from '{db_path}'. Number of items: {len(loaded_db.store)}\")\n\n# Clean up database files (optional)\nif os.path.exists(db_path):\n    shutil.rmtree(db_path)\n    print(f\"Cleaned up database directory: {db_path}\")","lang":"python","description":"This quickstart demonstrates how to initialize NanoVectorDB, add vectors with associated metadata and unique IDs, perform a similarity search, and persist/load the database from disk. It also includes cleanup for the database directory.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}