mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
Manual update to 13_Vector_Store.ipynb
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user