From a62326a61f7d369fdc83b2462c601bbc9a778e8d Mon Sep 17 00:00:00 2001 From: KaifAhmad1 Date: Tue, 16 Dec 2025 22:46:50 +0530 Subject: [PATCH] Manual update to 13_Vector_Store.ipynb --- cookbook/introduction/13_Vector_Store.ipynb | 69 +-------------------- 1 file changed, 2 insertions(+), 67 deletions(-) diff --git a/cookbook/introduction/13_Vector_Store.ipynb b/cookbook/introduction/13_Vector_Store.ipynb index c6938dcc..9c9201d1 100644 --- a/cookbook/introduction/13_Vector_Store.ipynb +++ b/cookbook/introduction/13_Vector_Store.ipynb @@ -518,72 +518,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Step 8: Convenience Functions\n", - "\n", - "Use convenience functions for quick operations.\n", - "\n", - "### Available Functions\n", - "\n", - "- `store_vectors()`: Store vectors\n", - "- `search_vectors()`: Search vectors\n", - "- `hybrid_search()`: Hybrid search\n", - "- `update_vectors()`: Update vectors\n", - "- `delete_vectors()`: Delete vectors" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "all the input array dimensions except for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 768 and the array at index 5 has size 384", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[10], line 13\u001b[0m\n\u001b[0;32m 11\u001b[0m new_vectors \u001b[38;5;241m=\u001b[39m [np\u001b[38;5;241m.\u001b[39mrandom\u001b[38;5;241m.\u001b[39mrand(dim) \u001b[38;5;28;01mfor\u001b[39;00m _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m10\u001b[39m)]\n\u001b[0;32m 12\u001b[0m new_metadata \u001b[38;5;241m=\u001b[39m [{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtext\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNew doc \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mi\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m} \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;241m10\u001b[39m)]\n\u001b[1;32m---> 13\u001b[0m new_ids \u001b[38;5;241m=\u001b[39m \u001b[43mstore_vectors\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnew_vectors\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmetadata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnew_metadata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdefault\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 15\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mStored \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(new_ids)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m new vectors\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 17\u001b[0m \u001b[38;5;66;03m# Search using convenience function\u001b[39;00m\n", - "File \u001b[1;32m~\\semantica\\semantica\\vector_store\\methods.py:174\u001b[0m, in \u001b[0;36mstore_vectors\u001b[1;34m(vectors, metadata, method, **options)\u001b[0m\n\u001b[0;32m 172\u001b[0m \u001b[38;5;66;03m# Default implementation\u001b[39;00m\n\u001b[0;32m 173\u001b[0m store \u001b[38;5;241m=\u001b[39m _get_store()\n\u001b[1;32m--> 174\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mstore\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstore_vectors\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvectors\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmetadata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmetadata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\semantica\\semantica\\vector_store\\vector_store.py:178\u001b[0m, in \u001b[0;36mVectorStore.store_vectors\u001b[1;34m(self, vectors, metadata, **options)\u001b[0m\n\u001b[0;32m 174\u001b[0m \u001b[38;5;66;03m# Update index\u001b[39;00m\n\u001b[0;32m 175\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprogress_tracker\u001b[38;5;241m.\u001b[39mupdate_tracking(\n\u001b[0;32m 176\u001b[0m tracking_id, message\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mUpdating vector index...\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 177\u001b[0m )\n\u001b[1;32m--> 178\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindexer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcreate_index\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvectors\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalues\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvector_ids\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 180\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprogress_tracker\u001b[38;5;241m.\u001b[39mstop_tracking(\n\u001b[0;32m 181\u001b[0m tracking_id,\n\u001b[0;32m 182\u001b[0m status\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcompleted\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 183\u001b[0m message\u001b[38;5;241m=\u001b[39m\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mStored \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlen\u001b[39m(vector_ids)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m vectors\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 184\u001b[0m )\n\u001b[0;32m 185\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m vector_ids\n", - "File \u001b[1;32m~\\semantica\\semantica\\vector_store\\vector_store.py:313\u001b[0m, in \u001b[0;36mVectorIndexer.create_index\u001b[1;34m(self, vectors, ids, **options)\u001b[0m\n\u001b[0;32m 311\u001b[0m vectors \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marray(vectors)\n\u001b[0;32m 312\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m--> 313\u001b[0m vectors \u001b[38;5;241m=\u001b[39m \u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvstack\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvectors\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 315\u001b[0m \u001b[38;5;66;03m# Simple in-memory index (would use FAISS, etc. in production)\u001b[39;00m\n\u001b[0;32m 316\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mindex \u001b[38;5;241m=\u001b[39m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mvectors\u001b[39m\u001b[38;5;124m\"\u001b[39m: vectors, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mids\u001b[39m\u001b[38;5;124m\"\u001b[39m: ids \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mlen\u001b[39m(vectors)))}\n", - "File \u001b[1;32mc:\\Users\\Mohd Kaif\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\numpy\\core\\shape_base.py:289\u001b[0m, in \u001b[0;36mvstack\u001b[1;34m(tup, dtype, casting)\u001b[0m\n\u001b[0;32m 287\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(arrs, \u001b[38;5;28mlist\u001b[39m):\n\u001b[0;32m 288\u001b[0m arrs \u001b[38;5;241m=\u001b[39m [arrs]\n\u001b[1;32m--> 289\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_nx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconcatenate\u001b[49m\u001b[43m(\u001b[49m\u001b[43marrs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcasting\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcasting\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[1;31mValueError\u001b[0m: all the input array dimensions except for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 768 and the array at index 5 has size 384" - ] - } - ], - "source": [ - "from semantica.vector_store import (\n", - " store_vectors,\n", - " search_vectors,\n", - " hybrid_search as hybrid_search_func,\n", - " update_vectors,\n", - " delete_vectors\n", - ")\n", - "\n", - "# Store vectors using convenience function\n", - "dim = len(query_vector) if 'query_vector' in locals() else 768\n", - "new_vectors = [np.random.rand(dim) for _ in range(10)]\n", - "new_metadata = [{\"text\": f\"New doc {i}\"} for i in range(10)]\n", - "new_ids = store_vectors(new_vectors, metadata=new_metadata, method=\"default\")\n", - "\n", - "print(f\"Stored {len(new_ids)} new vectors\")\n", - "\n", - "# Search using convenience function\n", - "search_results = search_vectors(\n", - " query_vector,\n", - " new_vectors,\n", - " new_ids,\n", - " k=5,\n", - " method=\"default\"\n", - ")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 9: Multi-Backend Support\n", + "## Step 8: Multi-Backend Support\n", "\n", "Work with different vector store backends.\n", "\n", @@ -630,7 +565,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Step 10: Best Practices\n", + "## Step 9: Best Practices\n", "\n", "### Performance Tips\n", "\n",