isage-middleware 0.1.0__py3-none-any.whl → 0.1.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of isage-middleware might be problematic. Click here for more details.
- isage_middleware-0.1.3.dist-info/METADATA +115 -0
- isage_middleware-0.1.3.dist-info/RECORD +291 -0
- sage/__init__.py +56 -2
- sage/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/__init__.py +52 -79
- sage/middleware/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/__pycache__/_version.cpython-311.opt-2.pyc +0 -0
- sage/middleware/__pycache__/_version.cpython-311.pyc +0 -0
- sage/middleware/_version.py +35 -0
- sage/middleware/api/__init__.py +52 -18
- sage/middleware/api/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/graph_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/graph_api.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/kv_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/kv_api.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/memory_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/memory_api.cpython-311.pyc +0 -0
- sage/middleware/api/__pycache__/vdb_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/api/__pycache__/vdb_api.cpython-311.pyc +0 -0
- sage/middleware/components/enterprise/__init__.py +56 -0
- sage/middleware/components/enterprise/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/enterprise/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/__init__.py +56 -0
- sage/middleware/components/neuromem/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_manager.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_manager.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/__pycache__/memory_service.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__init__.py +56 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/base_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/base_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/graph_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/kv_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/kv_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/vdb_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/__pycache__/vdb_collection.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/memory_collection/base_collection.py +167 -0
- sage/middleware/components/neuromem/memory_collection/graph_collection.py +11 -0
- sage/middleware/components/neuromem/memory_collection/kv_collection.py +709 -0
- sage/middleware/components/neuromem/memory_collection/vdb_collection.py +922 -0
- sage/middleware/components/neuromem/memory_manager.py +401 -0
- sage/middleware/components/neuromem/memory_service.py +324 -0
- sage/middleware/components/neuromem/micro_service/__init__.py +56 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb_service.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/micro_service/neuromem_vdb.py +198 -0
- sage/middleware/components/neuromem/micro_service/neuromem_vdb_service.py +118 -0
- sage/middleware/components/neuromem/search_engine/__init__.py +56 -0
- sage/middleware/components/neuromem/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__init__.py +56 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/base_graph_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/base_graph_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/graph_index/base_graph_index.py +40 -0
- sage/middleware/components/neuromem/search_engine/hybird_index/__init__.py +56 -0
- sage/middleware/components/neuromem/search_engine/hybird_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/hybird_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__init__.py +56 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/base_kv_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/base_kv_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/bm25s_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/bm25s_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/kv_index/base_kv_index.py +76 -0
- sage/middleware/components/neuromem/search_engine/kv_index/bm25s_index.py +320 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__init__.py +56 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/base_vdb_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/base_vdb_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/faiss_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/faiss_index.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/base_vdb_index.py +53 -0
- sage/middleware/components/neuromem/search_engine/vdb_index/faiss_index.py +700 -0
- sage/middleware/components/neuromem/storage_engine/__init__.py +56 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/metadata_storage.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/metadata_storage.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/text_storage.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/text_storage.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/vector_storage.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/__pycache__/vector_storage.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__init__.py +56 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/base_kv_backend.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/base_kv_backend.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/dict_kv_backend.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/dict_kv_backend.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/base_kv_backend.py +65 -0
- sage/middleware/components/neuromem/storage_engine/kv_backend/dict_kv_backend.py +54 -0
- sage/middleware/components/neuromem/storage_engine/metadata_storage.py +260 -0
- sage/middleware/components/neuromem/storage_engine/text_storage.py +106 -0
- sage/middleware/components/neuromem/storage_engine/vector_storage.py +85 -0
- sage/middleware/components/neuromem/tests/__init__.py +56 -0
- sage/middleware/components/neuromem/tests/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/__pycache__/test_memory_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/__pycache__/test_memory_service.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/__init__.py +56 -0
- sage/middleware/components/neuromem/tests/core_test/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__init__.py +56 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/kv_collection_test.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/kv_collection_test.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/vdb_collection_test.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/vdb_collection_test.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/kv_collection_test.py +60 -0
- sage/middleware/components/neuromem/tests/core_test/collection_test/vdb_collection_test.py +88 -0
- sage/middleware/components/neuromem/tests/core_test/manager_test.py +154 -0
- sage/middleware/components/neuromem/tests/test_memory_service.py +293 -0
- sage/middleware/components/neuromem/utils/__init__.py +56 -0
- sage/middleware/components/neuromem/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/utils/__pycache__/path_utils.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/neuromem/utils/__pycache__/path_utils.cpython-311.pyc +0 -0
- sage/middleware/components/neuromem/utils/path_utils.py +25 -0
- sage/middleware/components/sage_db/__init__.py +56 -0
- sage/middleware/components/sage_db/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/{enterprise → components}/sage_db/__pycache__/sage_db.cpython-311.opt-2.pyc +0 -0
- sage/middleware/{enterprise → components}/sage_db/__pycache__/sage_db.cpython-311.pyc +0 -0
- sage/middleware/components/sage_db/python/__init__.py +56 -0
- sage/middleware/components/sage_db/python/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/components/sage_db/python/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/{enterprise → components}/sage_db/python/__pycache__/sage_db.cpython-311.opt-2.pyc +0 -0
- sage/middleware/{enterprise → components}/sage_db/python/__pycache__/sage_db.cpython-311.pyc +0 -0
- sage/middleware/{enterprise → components}/sage_db/tests/__pycache__/test_python.cpython-311.opt-2.pyc +0 -0
- sage/middleware/{enterprise → components}/sage_db/tests/__pycache__/test_python.cpython-311.pyc +0 -0
- sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-311.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_demo.cpython-311.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-311.pyc +0 -0
- sage/middleware/examples/api_usage_tutorial.py +3 -3
- sage/middleware/examples/dag_microservices_demo.py +7 -8
- sage/middleware/examples/microservices_integration_demo.py +8 -11
- sage/middleware/examples/microservices_registration_demo.py +8 -12
- sage/middleware/services/__init__.py +56 -0
- sage/middleware/services/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/graph/__init__.py +52 -4
- sage/middleware/services/graph/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_index.cpython-311.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/__pycache__/graph_service.cpython-311.pyc +0 -0
- sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-311.pyc +0 -0
- sage/middleware/services/graph/examples/graph_demo.py +3 -2
- sage/middleware/services/graph/graph_service.py +68 -0
- sage/middleware/services/graph/search_engine/__init__.py +56 -0
- sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.pyc +0 -0
- sage/middleware/services/kv/__init__.py +52 -4
- sage/middleware/services/kv/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/kv/__pycache__/kv_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/__pycache__/kv_service.cpython-311.pyc +0 -0
- sage/middleware/services/kv/examples/__pycache__/kv_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/examples/__pycache__/kv_demo.cpython-311.pyc +0 -0
- sage/middleware/services/kv/examples/kv_demo.py +1 -1
- sage/middleware/services/kv/search_engine/__init__.py +56 -0
- sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-311.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-311.pyc +0 -0
- sage/middleware/services/memory/__init__.py +52 -8
- sage/middleware/services/memory/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/memory/__pycache__/memory_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/__pycache__/memory_service.cpython-311.pyc +0 -0
- sage/middleware/services/memory/examples/__pycache__/memory_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/examples/__pycache__/memory_demo.cpython-311.pyc +0 -0
- sage/middleware/services/memory/examples/dag_microservices_demo.py +8 -9
- sage/middleware/services/memory/examples/memory_demo.py +4 -4
- sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.pyc +0 -0
- sage/middleware/services/memory/memory_service.py +14 -11
- sage/middleware/services/memory/utils/__init__.py +56 -0
- sage/middleware/services/memory/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/__init__.py +52 -4
- sage/middleware/services/vdb/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/__pycache__/vdb_service.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/__pycache__/vdb_service.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/examples/__pycache__/vdb_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/examples/__pycache__/vdb_demo.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/examples/vdb_demo.py +2 -2
- sage/middleware/services/vdb/search_engine/__init__.py +56 -0
- sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-311.pyc +0 -0
- sage/middleware/services/vdb/vdb_service.py +44 -41
- sage/middleware/utils/__init__.py +53 -2
- sage/middleware/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__init__.py +52 -31
- sage/middleware/utils/embedding/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/_cohere.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/_cohere.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/bedrock.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/bedrock.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/hf.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/hf.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/instructor.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/instructor.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/jina.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/jina.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/lollms.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/lollms.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/ollama.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/ollama.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/openai.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/openai.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-311.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/zhipu.cpython-311.opt-2.pyc +0 -0
- sage/middleware/utils/embedding/__pycache__/zhipu.cpython-311.pyc +0 -0
- isage_middleware-0.1.0.dist-info/METADATA +0 -424
- isage_middleware-0.1.0.dist-info/RECORD +0 -191
- sage/middleware/enterprise/__init__.py +0 -75
- sage/middleware/enterprise/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/enterprise/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/enterprise/sage_db/__init__.py +0 -132
- sage/middleware/enterprise/sage_db/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/enterprise/sage_db/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/enterprise/sage_db/python/__init__.py +0 -7
- sage/middleware/enterprise/sage_db/python/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
- sage/middleware/enterprise/sage_db/python/__pycache__/__init__.cpython-311.pyc +0 -0
- sage/middleware/examples/__pycache__/dag_microservices_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/dag_microservices_demo.cpython-311.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_integration_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/examples/__pycache__/microservices_integration_demo.cpython-311.pyc +0 -0
- sage/middleware/services/memory/examples/__pycache__/dag_microservices_demo.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/examples/__pycache__/dag_microservices_demo.cpython-311.pyc +0 -0
- sage/middleware/services/memory/memory_collection/__pycache__/base_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/memory_collection/__pycache__/base_collection.cpython-311.pyc +0 -0
- sage/middleware/services/memory/memory_collection/__pycache__/kv_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/memory_collection/__pycache__/kv_collection.cpython-311.pyc +0 -0
- sage/middleware/services/memory/memory_collection/__pycache__/vdb_collection.cpython-311.opt-2.pyc +0 -0
- sage/middleware/services/memory/memory_collection/__pycache__/vdb_collection.cpython-311.pyc +0 -0
- sage/middleware/services/memory/memory_collection/base_collection.py +0 -0
- sage/middleware/services/memory/memory_collection/kv_collection.py +0 -0
- sage/middleware/services/memory/memory_collection/vdb_collection.py +0 -0
- {isage_middleware-0.1.0.dist-info → isage_middleware-0.1.3.dist-info}/WHEEL +0 -0
- {isage_middleware-0.1.0.dist-info → isage_middleware-0.1.3.dist-info}/top_level.txt +0 -0
- /sage/middleware/{enterprise → components}/sage_db/python/sage_db.py +0 -0
- /sage/middleware/{enterprise → components}/sage_db/sage_db.py +0 -0
- /sage/middleware/{enterprise → components}/sage_db/tests/test_python.py +0 -0
|
@@ -12,7 +12,7 @@ from sage.middleware.services import (
|
|
|
12
12
|
create_graph_service_factory,
|
|
13
13
|
create_memory_service_factory
|
|
14
14
|
)
|
|
15
|
-
from sage.middleware.
|
|
15
|
+
from sage.middleware.api.memory_api import MemoryServiceAPI
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def test_memory_service_api():
|
|
@@ -32,7 +32,7 @@ def test_memory_service_api():
|
|
|
32
32
|
backend_type="memory",
|
|
33
33
|
max_size=10000
|
|
34
34
|
)
|
|
35
|
-
env.
|
|
35
|
+
env.register_service_factory("demo_kv", kv_factory)
|
|
36
36
|
print(" ✅ KV Service registered")
|
|
37
37
|
|
|
38
38
|
# VDB服务
|
|
@@ -41,7 +41,7 @@ def test_memory_service_api():
|
|
|
41
41
|
embedding_dimension=384,
|
|
42
42
|
index_type="IndexFlatL2"
|
|
43
43
|
)
|
|
44
|
-
env.
|
|
44
|
+
env.register_service_factory("demo_vdb", vdb_factory)
|
|
45
45
|
print(" ✅ VDB Service registered")
|
|
46
46
|
|
|
47
47
|
# Graph服务
|
|
@@ -50,7 +50,7 @@ def test_memory_service_api():
|
|
|
50
50
|
backend_type="memory",
|
|
51
51
|
max_nodes=5000
|
|
52
52
|
)
|
|
53
|
-
env.
|
|
53
|
+
env.register_service_factory("demo_graph", graph_factory)
|
|
54
54
|
print(" ✅ Graph Service registered")
|
|
55
55
|
|
|
56
56
|
# Memory编排服务
|
sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc
CHANGED
|
Binary file
|
sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.pyc
CHANGED
|
Binary file
|
|
@@ -9,7 +9,7 @@ import logging
|
|
|
9
9
|
import time
|
|
10
10
|
import uuid
|
|
11
11
|
|
|
12
|
-
from sage.
|
|
12
|
+
from sage.core.api.service.base_service import BaseService
|
|
13
13
|
|
|
14
14
|
if TYPE_CHECKING:
|
|
15
15
|
from sage.core.factory.service_factory import ServiceFactory
|
|
@@ -36,17 +36,20 @@ class MemoryService(BaseService):
|
|
|
36
36
|
在SAGE DAG中作为服务节点使用
|
|
37
37
|
"""
|
|
38
38
|
|
|
39
|
-
def __init__(self, service_factory: 'ServiceFactory', ctx: 'ServiceContext' = None):
|
|
39
|
+
def __init__(self, service_factory: 'ServiceFactory' = None, ctx: 'ServiceContext' = None, config: MemoryConfig | None = None):
|
|
40
|
+
# 兼容 ServiceFactory 注入与直接使用
|
|
40
41
|
super().__init__(service_factory, ctx)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
self.logger.info(f"
|
|
49
|
-
|
|
42
|
+
if service_factory is not None and hasattr(service_factory, 'config') and service_factory.config is not None:
|
|
43
|
+
self.config: MemoryConfig = service_factory.config
|
|
44
|
+
else:
|
|
45
|
+
# 允许直接传入 config(便于单测或直接构造)
|
|
46
|
+
self.config: MemoryConfig = config or MemoryConfig()
|
|
47
|
+
|
|
48
|
+
# 日志配置预览
|
|
49
|
+
self.logger.info(f"KV Service: {getattr(self.config, 'kv_service_name', 'kv_service')}")
|
|
50
|
+
self.logger.info(f"VDB Service: {getattr(self.config, 'vdb_service_name', 'vdb_service')}")
|
|
51
|
+
self.logger.info(f"Graph Service: {getattr(self.config, 'graph_service_name', 'graph_service')}")
|
|
52
|
+
|
|
50
53
|
def _start_service_instance(self):
|
|
51
54
|
"""启动Memory服务实例"""
|
|
52
55
|
self.logger.info(f"Memory Service '{self.service_name}' started")
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SAGE - Streaming-Augmented Generative Execution
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
# 动态版本加载
|
|
6
|
+
def _load_version():
|
|
7
|
+
"""从 sage-common 包加载版本信息"""
|
|
8
|
+
try:
|
|
9
|
+
# 优先从 sage-common 包加载版本
|
|
10
|
+
from sage.common._version import __version__
|
|
11
|
+
return {
|
|
12
|
+
'version': __version__,
|
|
13
|
+
'author': 'SAGE Team',
|
|
14
|
+
'email': 'shuhao_zhang@hust.edu.cn'
|
|
15
|
+
}
|
|
16
|
+
except ImportError:
|
|
17
|
+
# 如果 sage-common 不可用,从项目根目录加载(开发环境)
|
|
18
|
+
try:
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
current_file = Path(__file__).resolve()
|
|
21
|
+
# 根据当前文件位置计算到项目根目录的层数
|
|
22
|
+
parts = current_file.parts
|
|
23
|
+
sage_index = -1
|
|
24
|
+
for i, part in enumerate(parts):
|
|
25
|
+
if part == 'SAGE':
|
|
26
|
+
sage_index = i
|
|
27
|
+
break
|
|
28
|
+
|
|
29
|
+
if sage_index >= 0:
|
|
30
|
+
root_dir = Path(*parts[:sage_index+1])
|
|
31
|
+
version_file = root_dir / "_version.py"
|
|
32
|
+
|
|
33
|
+
if version_file.exists():
|
|
34
|
+
version_globals = {}
|
|
35
|
+
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
|
+
exec(f.read(), version_globals)
|
|
37
|
+
return {
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.4'),
|
|
39
|
+
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
|
+
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
|
+
}
|
|
42
|
+
except Exception:
|
|
43
|
+
pass
|
|
44
|
+
|
|
45
|
+
# 最后的默认值
|
|
46
|
+
return {
|
|
47
|
+
'version': '0.1.4',
|
|
48
|
+
'author': 'SAGE Team',
|
|
49
|
+
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
# 加载信息
|
|
53
|
+
_info = _load_version()
|
|
54
|
+
__version__ = _info['version']
|
|
55
|
+
__author__ = _info['author']
|
|
56
|
+
__email__ = _info['email']
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,8 +1,56 @@
|
|
|
1
1
|
"""
|
|
2
|
-
|
|
3
|
-
向量数据库服务模块
|
|
2
|
+
SAGE - Streaming-Augmented Generative Execution
|
|
4
3
|
"""
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
# 动态版本加载
|
|
6
|
+
def _load_version():
|
|
7
|
+
"""从 sage-common 包加载版本信息"""
|
|
8
|
+
try:
|
|
9
|
+
# 优先从 sage-common 包加载版本
|
|
10
|
+
from sage.common._version import __version__
|
|
11
|
+
return {
|
|
12
|
+
'version': __version__,
|
|
13
|
+
'author': 'SAGE Team',
|
|
14
|
+
'email': 'shuhao_zhang@hust.edu.cn'
|
|
15
|
+
}
|
|
16
|
+
except ImportError:
|
|
17
|
+
# 如果 sage-common 不可用,从项目根目录加载(开发环境)
|
|
18
|
+
try:
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
current_file = Path(__file__).resolve()
|
|
21
|
+
# 根据当前文件位置计算到项目根目录的层数
|
|
22
|
+
parts = current_file.parts
|
|
23
|
+
sage_index = -1
|
|
24
|
+
for i, part in enumerate(parts):
|
|
25
|
+
if part == 'SAGE':
|
|
26
|
+
sage_index = i
|
|
27
|
+
break
|
|
28
|
+
|
|
29
|
+
if sage_index >= 0:
|
|
30
|
+
root_dir = Path(*parts[:sage_index+1])
|
|
31
|
+
version_file = root_dir / "_version.py"
|
|
32
|
+
|
|
33
|
+
if version_file.exists():
|
|
34
|
+
version_globals = {}
|
|
35
|
+
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
|
+
exec(f.read(), version_globals)
|
|
37
|
+
return {
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.4'),
|
|
39
|
+
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
|
+
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
|
+
}
|
|
42
|
+
except Exception:
|
|
43
|
+
pass
|
|
44
|
+
|
|
45
|
+
# 最后的默认值
|
|
46
|
+
return {
|
|
47
|
+
'version': '0.1.4',
|
|
48
|
+
'author': 'SAGE Team',
|
|
49
|
+
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
|
+
}
|
|
7
51
|
|
|
8
|
-
|
|
52
|
+
# 加载信息
|
|
53
|
+
_info = _load_version()
|
|
54
|
+
__version__ = _info['version']
|
|
55
|
+
__author__ = _info['author']
|
|
56
|
+
__email__ = _info['email']
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -4,8 +4,8 @@ VDB Service API 使用示例
|
|
|
4
4
|
"""
|
|
5
5
|
import numpy as np
|
|
6
6
|
from sage.core.api.local_environment import LocalEnvironment
|
|
7
|
-
from sage.middleware.services.
|
|
8
|
-
from sage.middleware.
|
|
7
|
+
from sage.middleware.services.vdb import create_vdb_service_factory
|
|
8
|
+
from sage.middleware.api.vdb_api import VDBServiceAPI
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def test_vdb_service_api():
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SAGE - Streaming-Augmented Generative Execution
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
# 动态版本加载
|
|
6
|
+
def _load_version():
|
|
7
|
+
"""从 sage-common 包加载版本信息"""
|
|
8
|
+
try:
|
|
9
|
+
# 优先从 sage-common 包加载版本
|
|
10
|
+
from sage.common._version import __version__
|
|
11
|
+
return {
|
|
12
|
+
'version': __version__,
|
|
13
|
+
'author': 'SAGE Team',
|
|
14
|
+
'email': 'shuhao_zhang@hust.edu.cn'
|
|
15
|
+
}
|
|
16
|
+
except ImportError:
|
|
17
|
+
# 如果 sage-common 不可用,从项目根目录加载(开发环境)
|
|
18
|
+
try:
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
current_file = Path(__file__).resolve()
|
|
21
|
+
# 根据当前文件位置计算到项目根目录的层数
|
|
22
|
+
parts = current_file.parts
|
|
23
|
+
sage_index = -1
|
|
24
|
+
for i, part in enumerate(parts):
|
|
25
|
+
if part == 'SAGE':
|
|
26
|
+
sage_index = i
|
|
27
|
+
break
|
|
28
|
+
|
|
29
|
+
if sage_index >= 0:
|
|
30
|
+
root_dir = Path(*parts[:sage_index+1])
|
|
31
|
+
version_file = root_dir / "_version.py"
|
|
32
|
+
|
|
33
|
+
if version_file.exists():
|
|
34
|
+
version_globals = {}
|
|
35
|
+
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
|
+
exec(f.read(), version_globals)
|
|
37
|
+
return {
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.4'),
|
|
39
|
+
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
|
+
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
|
+
}
|
|
42
|
+
except Exception:
|
|
43
|
+
pass
|
|
44
|
+
|
|
45
|
+
# 最后的默认值
|
|
46
|
+
return {
|
|
47
|
+
'version': '0.1.4',
|
|
48
|
+
'author': 'SAGE Team',
|
|
49
|
+
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
# 加载信息
|
|
53
|
+
_info = _load_version()
|
|
54
|
+
__version__ = _info['version']
|
|
55
|
+
__author__ = _info['author']
|
|
56
|
+
__email__ = _info['email']
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -55,22 +55,24 @@ class FaissVDBBackend:
|
|
|
55
55
|
# 导入FaissIndex
|
|
56
56
|
try:
|
|
57
57
|
from sage.middleware.services.vdb.search_engine.faiss_index import FaissIndex
|
|
58
|
-
|
|
59
|
-
# 初始化FAISS
|
|
58
|
+
|
|
59
|
+
# 初始化FAISS索引(使用我们内部的 FaissIndex 实现)
|
|
60
60
|
self.faiss_index = FaissIndex(
|
|
61
61
|
name="vdb_index",
|
|
62
62
|
dim=embedding_dimension,
|
|
63
63
|
config={
|
|
64
64
|
"index_type": index_type,
|
|
65
|
-
**self.faiss_config
|
|
66
|
-
}
|
|
65
|
+
**self.faiss_config,
|
|
66
|
+
},
|
|
67
67
|
)
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
# 文档存储 (id -> VectorDocument)
|
|
70
70
|
self.documents: Dict[str, VectorDocument] = {}
|
|
71
|
-
|
|
72
|
-
self.logger.info(
|
|
73
|
-
|
|
71
|
+
|
|
72
|
+
self.logger.info(
|
|
73
|
+
f"FaissVDBBackend initialized with {index_type}, dim={embedding_dimension}"
|
|
74
|
+
)
|
|
75
|
+
|
|
74
76
|
except ImportError as e:
|
|
75
77
|
self.logger.error(f"Failed to import FaissIndex: {e}")
|
|
76
78
|
raise ImportError("FAISS dependencies not available. Install with: pip install faiss-cpu")
|
|
@@ -102,10 +104,9 @@ class FaissVDBBackend:
|
|
|
102
104
|
self.documents[doc.id] = doc
|
|
103
105
|
|
|
104
106
|
if vector_arrays:
|
|
105
|
-
# 添加到FAISS
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
# 添加到FAISS索引(使用 batch_insert 接口)
|
|
108
|
+
self.faiss_index.batch_insert(vector_arrays, vector_ids)
|
|
109
|
+
|
|
109
110
|
self.logger.debug(f"Added {len(vector_ids)} vectors to FAISS index")
|
|
110
111
|
return vector_ids
|
|
111
112
|
else:
|
|
@@ -120,27 +121,31 @@ class FaissVDBBackend:
|
|
|
120
121
|
"""搜索相似向量"""
|
|
121
122
|
try:
|
|
122
123
|
if len(query_vector) != self.embedding_dimension:
|
|
123
|
-
raise ValueError(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
124
|
+
raise ValueError(
|
|
125
|
+
f"Query vector dimension mismatch: expected {self.embedding_dimension}, got {len(query_vector)}"
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
# 转换查询向量(FaissIndex.search 接受 1D np.ndarray)
|
|
129
|
+
query_np = np.array(query_vector, dtype=np.float32)
|
|
130
|
+
|
|
131
|
+
# 在FAISS中搜索(返回 string_ids 和 distances)
|
|
132
|
+
ids, distances = self.faiss_index.search(query_np, top_k)
|
|
133
|
+
|
|
134
|
+
results: List[Tuple[VectorDocument, float]] = []
|
|
135
|
+
for doc_id, distance in zip(ids, distances):
|
|
133
136
|
if doc_id in self.documents:
|
|
134
137
|
doc = self.documents[doc_id]
|
|
135
|
-
|
|
138
|
+
|
|
136
139
|
# 应用元数据过滤
|
|
137
140
|
if metadata_filter and not self._matches_filter(doc.metadata, metadata_filter):
|
|
138
141
|
continue
|
|
139
|
-
|
|
142
|
+
|
|
140
143
|
results.append((doc, float(distance)))
|
|
141
144
|
else:
|
|
142
|
-
self.logger.warning(
|
|
143
|
-
|
|
145
|
+
self.logger.warning(
|
|
146
|
+
f"Document {doc_id} found in index but not in storage"
|
|
147
|
+
)
|
|
148
|
+
|
|
144
149
|
self.logger.debug(f"Search returned {len(results)} results")
|
|
145
150
|
return results
|
|
146
151
|
|
|
@@ -156,18 +161,19 @@ class FaissVDBBackend:
|
|
|
156
161
|
"""删除向量文档"""
|
|
157
162
|
try:
|
|
158
163
|
deleted_count = 0
|
|
159
|
-
|
|
160
|
-
|
|
164
|
+
|
|
161
165
|
for doc_id in doc_ids:
|
|
162
166
|
if doc_id in self.documents:
|
|
163
167
|
del self.documents[doc_id]
|
|
164
|
-
|
|
168
|
+
try:
|
|
169
|
+
# 从FAISS索引中删除(逐个删除)
|
|
170
|
+
self.faiss_index.delete(doc_id)
|
|
171
|
+
except Exception as e:
|
|
172
|
+
self.logger.warning(
|
|
173
|
+
f"Error deleting id {doc_id} from FAISS: {e}"
|
|
174
|
+
)
|
|
165
175
|
deleted_count += 1
|
|
166
176
|
|
|
167
|
-
# 从FAISS索引中删除
|
|
168
|
-
if valid_ids:
|
|
169
|
-
self.faiss_index.delete(valid_ids)
|
|
170
|
-
|
|
171
177
|
self.logger.debug(f"Deleted {deleted_count} vectors")
|
|
172
178
|
return deleted_count
|
|
173
179
|
|
|
@@ -198,8 +204,8 @@ class FaissVDBBackend:
|
|
|
198
204
|
dim=self.embedding_dimension,
|
|
199
205
|
config={
|
|
200
206
|
"index_type": self.index_type,
|
|
201
|
-
**self.faiss_config
|
|
202
|
-
}
|
|
207
|
+
**self.faiss_config,
|
|
208
|
+
},
|
|
203
209
|
)
|
|
204
210
|
except Exception as e:
|
|
205
211
|
self.logger.error(f"Error reinitializing FAISS index: {e}")
|
|
@@ -207,7 +213,7 @@ class FaissVDBBackend:
|
|
|
207
213
|
def save_index(self, path: str) -> bool:
|
|
208
214
|
"""保存索引到磁盘"""
|
|
209
215
|
try:
|
|
210
|
-
self.faiss_index.
|
|
216
|
+
self.faiss_index.store(path)
|
|
211
217
|
return True
|
|
212
218
|
except Exception as e:
|
|
213
219
|
self.logger.error(f"Error saving index: {e}")
|
|
@@ -217,11 +223,8 @@ class FaissVDBBackend:
|
|
|
217
223
|
"""从磁盘加载索引"""
|
|
218
224
|
try:
|
|
219
225
|
from sage.middleware.services.vdb.search_engine.faiss_index import FaissIndex
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
dim=self.embedding_dimension,
|
|
223
|
-
load_path=path
|
|
224
|
-
)
|
|
226
|
+
# 使用类方法 load 恢复索引
|
|
227
|
+
self.faiss_index = FaissIndex.load(name="vdb_index", load_path=path)
|
|
225
228
|
return True
|
|
226
229
|
except Exception as e:
|
|
227
230
|
self.logger.error(f"Error loading index: {e}")
|
|
@@ -1,5 +1,56 @@
|
|
|
1
1
|
"""
|
|
2
|
-
|
|
2
|
+
SAGE - Streaming-Augmented Generative Execution
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
# 动态版本加载
|
|
6
|
+
def _load_version():
|
|
7
|
+
"""从 sage-common 包加载版本信息"""
|
|
8
|
+
try:
|
|
9
|
+
# 优先从 sage-common 包加载版本
|
|
10
|
+
from sage.common._version import __version__
|
|
11
|
+
return {
|
|
12
|
+
'version': __version__,
|
|
13
|
+
'author': 'SAGE Team',
|
|
14
|
+
'email': 'shuhao_zhang@hust.edu.cn'
|
|
15
|
+
}
|
|
16
|
+
except ImportError:
|
|
17
|
+
# 如果 sage-common 不可用,从项目根目录加载(开发环境)
|
|
18
|
+
try:
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
current_file = Path(__file__).resolve()
|
|
21
|
+
# 根据当前文件位置计算到项目根目录的层数
|
|
22
|
+
parts = current_file.parts
|
|
23
|
+
sage_index = -1
|
|
24
|
+
for i, part in enumerate(parts):
|
|
25
|
+
if part == 'SAGE':
|
|
26
|
+
sage_index = i
|
|
27
|
+
break
|
|
28
|
+
|
|
29
|
+
if sage_index >= 0:
|
|
30
|
+
root_dir = Path(*parts[:sage_index+1])
|
|
31
|
+
version_file = root_dir / "_version.py"
|
|
32
|
+
|
|
33
|
+
if version_file.exists():
|
|
34
|
+
version_globals = {}
|
|
35
|
+
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
|
+
exec(f.read(), version_globals)
|
|
37
|
+
return {
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.4'),
|
|
39
|
+
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
|
+
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
|
+
}
|
|
42
|
+
except Exception:
|
|
43
|
+
pass
|
|
44
|
+
|
|
45
|
+
# 最后的默认值
|
|
46
|
+
return {
|
|
47
|
+
'version': '0.1.4',
|
|
48
|
+
'author': 'SAGE Team',
|
|
49
|
+
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
# 加载信息
|
|
53
|
+
_info = _load_version()
|
|
54
|
+
__version__ = _info['version']
|
|
55
|
+
__author__ = _info['author']
|
|
56
|
+
__email__ = _info['email']
|
|
Binary file
|
|
Binary file
|
|
@@ -1,35 +1,56 @@
|
|
|
1
1
|
"""
|
|
2
|
-
|
|
2
|
+
SAGE - Streaming-Augmented Generative Execution
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
# 动态版本加载
|
|
6
|
+
def _load_version():
|
|
7
|
+
"""从 sage-common 包加载版本信息"""
|
|
8
|
+
try:
|
|
9
|
+
# 优先从 sage-common 包加载版本
|
|
10
|
+
from sage.common._version import __version__
|
|
11
|
+
return {
|
|
12
|
+
'version': __version__,
|
|
13
|
+
'author': 'SAGE Team',
|
|
14
|
+
'email': 'shuhao_zhang@hust.edu.cn'
|
|
15
|
+
}
|
|
16
|
+
except ImportError:
|
|
17
|
+
# 如果 sage-common 不可用,从项目根目录加载(开发环境)
|
|
18
|
+
try:
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
current_file = Path(__file__).resolve()
|
|
21
|
+
# 根据当前文件位置计算到项目根目录的层数
|
|
22
|
+
parts = current_file.parts
|
|
23
|
+
sage_index = -1
|
|
24
|
+
for i, part in enumerate(parts):
|
|
25
|
+
if part == 'SAGE':
|
|
26
|
+
sage_index = i
|
|
27
|
+
break
|
|
28
|
+
|
|
29
|
+
if sage_index >= 0:
|
|
30
|
+
root_dir = Path(*parts[:sage_index+1])
|
|
31
|
+
version_file = root_dir / "_version.py"
|
|
32
|
+
|
|
33
|
+
if version_file.exists():
|
|
34
|
+
version_globals = {}
|
|
35
|
+
with open(version_file, 'r', encoding='utf-8') as f:
|
|
36
|
+
exec(f.read(), version_globals)
|
|
37
|
+
return {
|
|
38
|
+
'version': version_globals.get('__version__', '0.1.4'),
|
|
39
|
+
'author': version_globals.get('__author__', 'SAGE Team'),
|
|
40
|
+
'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
|
|
41
|
+
}
|
|
42
|
+
except Exception:
|
|
43
|
+
pass
|
|
44
|
+
|
|
45
|
+
# 最后的默认值
|
|
46
|
+
return {
|
|
47
|
+
'version': '0.1.4',
|
|
48
|
+
'author': 'SAGE Team',
|
|
49
|
+
'email': 'shuhao_zhang@hust.edu.cn'
|
|
50
|
+
}
|
|
7
51
|
|
|
8
|
-
#
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
from . import bedrock
|
|
14
|
-
from . import zhipu
|
|
15
|
-
from . import mockembedder
|
|
16
|
-
from . import _cohere
|
|
17
|
-
from . import nvidia_openai
|
|
18
|
-
from . import lollms
|
|
19
|
-
from . import jina
|
|
20
|
-
|
|
21
|
-
__all__ = [
|
|
22
|
-
'apply_embedding_model',
|
|
23
|
-
'EmbeddingModel',
|
|
24
|
-
'hf',
|
|
25
|
-
'ollama',
|
|
26
|
-
'siliconcloud',
|
|
27
|
-
'openai',
|
|
28
|
-
'bedrock',
|
|
29
|
-
'zhipu',
|
|
30
|
-
'mockembedder',
|
|
31
|
-
'_cohere',
|
|
32
|
-
'nvidia_openai',
|
|
33
|
-
'lollms',
|
|
34
|
-
'jina'
|
|
35
|
-
]
|
|
52
|
+
# 加载信息
|
|
53
|
+
_info = _load_version()
|
|
54
|
+
__version__ = _info['version']
|
|
55
|
+
__author__ = _info['author']
|
|
56
|
+
__email__ = _info['email']
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|