isage-middleware 0.1.1__py3-none-any.whl → 0.1.4__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.

Files changed (376) hide show
  1. isage_middleware-0.1.4.dist-info/METADATA +115 -0
  2. isage_middleware-0.1.4.dist-info/RECORD +288 -0
  3. sage/__init__.py +37 -2
  4. sage/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  5. sage/__pycache__/__init__.cpython-311.pyc +0 -0
  6. sage/middleware/__init__.py +31 -77
  7. sage/middleware/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  8. sage/middleware/__pycache__/__init__.cpython-311.pyc +0 -0
  9. sage/middleware/api/__init__.py +32 -17
  10. sage/middleware/api/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  11. sage/middleware/api/__pycache__/__init__.cpython-311.pyc +0 -0
  12. sage/middleware/api/__pycache__/graph_api.cpython-311.opt-2.pyc +0 -0
  13. sage/middleware/api/__pycache__/graph_api.cpython-311.pyc +0 -0
  14. sage/middleware/api/__pycache__/kv_api.cpython-311.opt-2.pyc +0 -0
  15. sage/middleware/api/__pycache__/kv_api.cpython-311.pyc +0 -0
  16. sage/middleware/api/__pycache__/memory_api.cpython-311.opt-2.pyc +0 -0
  17. sage/middleware/api/__pycache__/memory_api.cpython-311.pyc +0 -0
  18. sage/middleware/api/__pycache__/vdb_api.cpython-311.opt-2.pyc +0 -0
  19. sage/middleware/api/__pycache__/vdb_api.cpython-311.pyc +0 -0
  20. sage/middleware/components/enterprise/__init__.py +37 -0
  21. sage/middleware/components/enterprise/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  22. sage/middleware/components/enterprise/__pycache__/__init__.cpython-311.pyc +0 -0
  23. sage/middleware/components/neuromem/__init__.py +37 -0
  24. sage/middleware/components/neuromem/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  25. sage/middleware/components/neuromem/__pycache__/__init__.cpython-311.pyc +0 -0
  26. sage/middleware/components/neuromem/__pycache__/memory_manager.cpython-311.opt-2.pyc +0 -0
  27. sage/middleware/components/neuromem/__pycache__/memory_manager.cpython-311.pyc +0 -0
  28. sage/middleware/components/neuromem/__pycache__/memory_service.cpython-311.opt-2.pyc +0 -0
  29. sage/middleware/components/neuromem/__pycache__/memory_service.cpython-311.pyc +0 -0
  30. sage/middleware/components/neuromem/memory_collection/__init__.py +37 -0
  31. sage/middleware/components/neuromem/memory_collection/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  32. sage/middleware/components/neuromem/memory_collection/__pycache__/__init__.cpython-311.pyc +0 -0
  33. sage/middleware/components/neuromem/memory_collection/__pycache__/base_collection.cpython-311.opt-2.pyc +0 -0
  34. sage/middleware/components/neuromem/memory_collection/__pycache__/base_collection.cpython-311.pyc +0 -0
  35. sage/middleware/components/neuromem/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc +0 -0
  36. sage/middleware/components/neuromem/memory_collection/__pycache__/graph_collection.cpython-311.pyc +0 -0
  37. sage/middleware/components/neuromem/memory_collection/__pycache__/kv_collection.cpython-311.opt-2.pyc +0 -0
  38. sage/middleware/components/neuromem/memory_collection/__pycache__/kv_collection.cpython-311.pyc +0 -0
  39. sage/middleware/components/neuromem/memory_collection/__pycache__/vdb_collection.cpython-311.opt-2.pyc +0 -0
  40. sage/middleware/components/neuromem/memory_collection/__pycache__/vdb_collection.cpython-311.pyc +0 -0
  41. sage/middleware/components/neuromem/memory_collection/base_collection.py +167 -0
  42. sage/middleware/components/neuromem/memory_collection/graph_collection.py +11 -0
  43. sage/middleware/components/neuromem/memory_collection/kv_collection.py +709 -0
  44. sage/middleware/components/neuromem/memory_collection/vdb_collection.py +922 -0
  45. sage/middleware/components/neuromem/memory_manager.py +401 -0
  46. sage/middleware/components/neuromem/memory_service.py +324 -0
  47. sage/middleware/components/neuromem/micro_service/__init__.py +37 -0
  48. sage/middleware/components/neuromem/micro_service/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  49. sage/middleware/components/neuromem/micro_service/__pycache__/__init__.cpython-311.pyc +0 -0
  50. sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb.cpython-311.opt-2.pyc +0 -0
  51. sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb.cpython-311.pyc +0 -0
  52. sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb_service.cpython-311.opt-2.pyc +0 -0
  53. sage/middleware/components/neuromem/micro_service/__pycache__/neuromem_vdb_service.cpython-311.pyc +0 -0
  54. sage/middleware/components/neuromem/micro_service/neuromem_vdb.py +198 -0
  55. sage/middleware/components/neuromem/micro_service/neuromem_vdb_service.py +118 -0
  56. sage/middleware/components/neuromem/search_engine/__init__.py +37 -0
  57. sage/middleware/components/neuromem/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  58. sage/middleware/components/neuromem/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
  59. sage/middleware/components/neuromem/search_engine/graph_index/__init__.py +37 -0
  60. sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  61. sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/__init__.cpython-311.pyc +0 -0
  62. sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/base_graph_index.cpython-311.opt-2.pyc +0 -0
  63. sage/middleware/components/neuromem/search_engine/graph_index/__pycache__/base_graph_index.cpython-311.pyc +0 -0
  64. sage/middleware/components/neuromem/search_engine/graph_index/base_graph_index.py +40 -0
  65. sage/middleware/components/neuromem/search_engine/hybird_index/__init__.py +37 -0
  66. sage/middleware/components/neuromem/search_engine/hybird_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  67. sage/middleware/components/neuromem/search_engine/hybird_index/__pycache__/__init__.cpython-311.pyc +0 -0
  68. sage/middleware/components/neuromem/search_engine/kv_index/__init__.py +37 -0
  69. sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  70. sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/__init__.cpython-311.pyc +0 -0
  71. sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/base_kv_index.cpython-311.opt-2.pyc +0 -0
  72. sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/base_kv_index.cpython-311.pyc +0 -0
  73. sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/bm25s_index.cpython-311.opt-2.pyc +0 -0
  74. sage/middleware/components/neuromem/search_engine/kv_index/__pycache__/bm25s_index.cpython-311.pyc +0 -0
  75. sage/middleware/components/neuromem/search_engine/kv_index/base_kv_index.py +76 -0
  76. sage/middleware/components/neuromem/search_engine/kv_index/bm25s_index.py +320 -0
  77. sage/middleware/components/neuromem/search_engine/vdb_index/__init__.py +37 -0
  78. sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  79. sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/__init__.cpython-311.pyc +0 -0
  80. sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/base_vdb_index.cpython-311.opt-2.pyc +0 -0
  81. sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/base_vdb_index.cpython-311.pyc +0 -0
  82. sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/faiss_index.cpython-311.opt-2.pyc +0 -0
  83. sage/middleware/components/neuromem/search_engine/vdb_index/__pycache__/faiss_index.cpython-311.pyc +0 -0
  84. sage/middleware/components/neuromem/search_engine/vdb_index/base_vdb_index.py +53 -0
  85. sage/middleware/components/neuromem/search_engine/vdb_index/faiss_index.py +700 -0
  86. sage/middleware/components/neuromem/storage_engine/__init__.py +37 -0
  87. sage/middleware/components/neuromem/storage_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  88. sage/middleware/components/neuromem/storage_engine/__pycache__/__init__.cpython-311.pyc +0 -0
  89. sage/middleware/components/neuromem/storage_engine/__pycache__/metadata_storage.cpython-311.opt-2.pyc +0 -0
  90. sage/middleware/components/neuromem/storage_engine/__pycache__/metadata_storage.cpython-311.pyc +0 -0
  91. sage/middleware/components/neuromem/storage_engine/__pycache__/text_storage.cpython-311.opt-2.pyc +0 -0
  92. sage/middleware/components/neuromem/storage_engine/__pycache__/text_storage.cpython-311.pyc +0 -0
  93. sage/middleware/components/neuromem/storage_engine/__pycache__/vector_storage.cpython-311.opt-2.pyc +0 -0
  94. sage/middleware/components/neuromem/storage_engine/__pycache__/vector_storage.cpython-311.pyc +0 -0
  95. sage/middleware/components/neuromem/storage_engine/kv_backend/__init__.py +37 -0
  96. sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  97. sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/__init__.cpython-311.pyc +0 -0
  98. sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/base_kv_backend.cpython-311.opt-2.pyc +0 -0
  99. sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/base_kv_backend.cpython-311.pyc +0 -0
  100. sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/dict_kv_backend.cpython-311.opt-2.pyc +0 -0
  101. sage/middleware/components/neuromem/storage_engine/kv_backend/__pycache__/dict_kv_backend.cpython-311.pyc +0 -0
  102. sage/middleware/components/neuromem/storage_engine/kv_backend/base_kv_backend.py +65 -0
  103. sage/middleware/components/neuromem/storage_engine/kv_backend/dict_kv_backend.py +54 -0
  104. sage/middleware/components/neuromem/storage_engine/metadata_storage.py +260 -0
  105. sage/middleware/components/neuromem/storage_engine/text_storage.py +106 -0
  106. sage/middleware/components/neuromem/storage_engine/vector_storage.py +85 -0
  107. sage/middleware/components/neuromem/tests/__init__.py +37 -0
  108. sage/middleware/components/neuromem/tests/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  109. sage/middleware/components/neuromem/tests/__pycache__/__init__.cpython-311.pyc +0 -0
  110. sage/middleware/components/neuromem/tests/__pycache__/test_memory_service.cpython-311.opt-2.pyc +0 -0
  111. sage/middleware/components/neuromem/tests/__pycache__/test_memory_service.cpython-311.pyc +0 -0
  112. sage/middleware/components/neuromem/tests/core_test/__init__.py +37 -0
  113. sage/middleware/components/neuromem/tests/core_test/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  114. sage/middleware/components/neuromem/tests/core_test/__pycache__/__init__.cpython-311.pyc +0 -0
  115. sage/middleware/components/neuromem/tests/core_test/collection_test/__init__.py +37 -0
  116. sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  117. sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/__init__.cpython-311.pyc +0 -0
  118. sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/kv_collection_test.cpython-311.opt-2.pyc +0 -0
  119. sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/kv_collection_test.cpython-311.pyc +0 -0
  120. sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/vdb_collection_test.cpython-311.opt-2.pyc +0 -0
  121. sage/middleware/components/neuromem/tests/core_test/collection_test/__pycache__/vdb_collection_test.cpython-311.pyc +0 -0
  122. sage/middleware/components/neuromem/tests/core_test/collection_test/kv_collection_test.py +60 -0
  123. sage/middleware/components/neuromem/tests/core_test/collection_test/vdb_collection_test.py +88 -0
  124. sage/middleware/components/neuromem/tests/core_test/manager_test.py +154 -0
  125. sage/middleware/components/neuromem/tests/test_memory_service.py +293 -0
  126. sage/middleware/components/neuromem/utils/__init__.py +37 -0
  127. sage/middleware/components/neuromem/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  128. sage/middleware/components/neuromem/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  129. sage/middleware/components/neuromem/utils/__pycache__/path_utils.cpython-311.opt-2.pyc +0 -0
  130. sage/middleware/components/neuromem/utils/__pycache__/path_utils.cpython-311.pyc +0 -0
  131. sage/middleware/components/neuromem/utils/path_utils.py +25 -0
  132. sage/middleware/components/sage_db/__init__.py +37 -0
  133. sage/middleware/components/sage_db/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  134. sage/middleware/components/sage_db/__pycache__/__init__.cpython-311.pyc +0 -0
  135. sage/middleware/components/sage_db/__pycache__/sage_db.cpython-311.opt-2.pyc +0 -0
  136. sage/middleware/components/sage_db/__pycache__/sage_db.cpython-311.pyc +0 -0
  137. sage/middleware/components/sage_db/python/__init__.py +37 -0
  138. sage/middleware/components/sage_db/python/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  139. sage/middleware/components/sage_db/python/__pycache__/__init__.cpython-311.pyc +0 -0
  140. sage/middleware/components/sage_db/python/__pycache__/sage_db.cpython-311.opt-2.pyc +0 -0
  141. sage/middleware/components/sage_db/python/__pycache__/sage_db.cpython-311.pyc +0 -0
  142. sage/middleware/components/sage_db/tests/__pycache__/test_python.cpython-311.opt-2.pyc +0 -0
  143. sage/middleware/components/sage_db/tests/__pycache__/test_python.cpython-311.pyc +0 -0
  144. sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-311.opt-2.pyc +0 -0
  145. sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-311.pyc +0 -0
  146. sage/middleware/examples/__pycache__/microservices_demo.cpython-311.opt-2.pyc +0 -0
  147. sage/middleware/examples/__pycache__/microservices_demo.cpython-311.pyc +0 -0
  148. sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-311.opt-2.pyc +0 -0
  149. sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-311.pyc +0 -0
  150. sage/middleware/examples/api_usage_tutorial.py +3 -3
  151. sage/middleware/examples/dag_microservices_demo.py +7 -8
  152. sage/middleware/examples/microservices_integration_demo.py +8 -11
  153. sage/middleware/examples/microservices_registration_demo.py +8 -12
  154. sage/middleware/services/__init__.py +37 -0
  155. sage/middleware/services/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  156. sage/middleware/services/__pycache__/__init__.cpython-311.pyc +0 -0
  157. sage/middleware/services/graph/__init__.py +33 -4
  158. sage/middleware/services/graph/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  159. sage/middleware/services/graph/__pycache__/__init__.cpython-311.pyc +0 -0
  160. sage/middleware/services/graph/__pycache__/graph_index.cpython-311.opt-2.pyc +0 -0
  161. sage/middleware/services/graph/__pycache__/graph_index.cpython-311.pyc +0 -0
  162. sage/middleware/services/graph/__pycache__/graph_service.cpython-311.opt-2.pyc +0 -0
  163. sage/middleware/services/graph/__pycache__/graph_service.cpython-311.pyc +0 -0
  164. sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-311.opt-2.pyc +0 -0
  165. sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-311.pyc +0 -0
  166. sage/middleware/services/graph/examples/graph_demo.py +3 -2
  167. sage/middleware/services/graph/graph_service.py +68 -0
  168. sage/middleware/services/graph/search_engine/__init__.py +37 -0
  169. sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  170. sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
  171. sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.opt-2.pyc +0 -0
  172. sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.pyc +0 -0
  173. sage/middleware/services/kv/__init__.py +33 -4
  174. sage/middleware/services/kv/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  175. sage/middleware/services/kv/__pycache__/__init__.cpython-311.pyc +0 -0
  176. sage/middleware/services/kv/__pycache__/kv_service.cpython-311.opt-2.pyc +0 -0
  177. sage/middleware/services/kv/__pycache__/kv_service.cpython-311.pyc +0 -0
  178. sage/middleware/services/kv/examples/__pycache__/{kv_demo.cpython-313.opt-2.pyc → kv_demo.cpython-311.opt-2.pyc} +0 -0
  179. sage/middleware/services/kv/examples/__pycache__/{kv_demo.cpython-313.pyc → kv_demo.cpython-311.pyc} +0 -0
  180. sage/middleware/services/kv/examples/kv_demo.py +1 -1
  181. sage/middleware/services/kv/search_engine/__init__.py +37 -0
  182. sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  183. sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
  184. sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-311.opt-2.pyc +0 -0
  185. sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-311.pyc +0 -0
  186. sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-311.opt-2.pyc +0 -0
  187. sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-311.pyc +0 -0
  188. sage/middleware/services/memory/__init__.py +33 -8
  189. sage/middleware/services/memory/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  190. sage/middleware/services/memory/__pycache__/__init__.cpython-311.pyc +0 -0
  191. sage/middleware/services/memory/__pycache__/memory_service.cpython-311.opt-2.pyc +0 -0
  192. sage/middleware/services/memory/__pycache__/memory_service.cpython-311.pyc +0 -0
  193. sage/middleware/services/memory/examples/__pycache__/{memory_demo.cpython-313.opt-2.pyc → memory_demo.cpython-311.opt-2.pyc} +0 -0
  194. sage/middleware/services/memory/examples/__pycache__/{memory_demo.cpython-313.pyc → memory_demo.cpython-311.pyc} +0 -0
  195. sage/middleware/services/memory/examples/dag_microservices_demo.py +8 -9
  196. sage/middleware/services/memory/examples/memory_demo.py +4 -4
  197. sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc +0 -0
  198. sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.pyc +0 -0
  199. sage/middleware/services/memory/memory_service.py +14 -11
  200. sage/middleware/services/memory/utils/__init__.py +37 -0
  201. sage/middleware/services/memory/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  202. sage/middleware/services/memory/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  203. sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-311.opt-2.pyc +0 -0
  204. sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-311.pyc +0 -0
  205. sage/middleware/services/vdb/__init__.py +33 -4
  206. sage/middleware/services/vdb/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  207. sage/middleware/services/vdb/__pycache__/__init__.cpython-311.pyc +0 -0
  208. sage/middleware/services/vdb/__pycache__/vdb_service.cpython-311.opt-2.pyc +0 -0
  209. sage/middleware/services/vdb/__pycache__/vdb_service.cpython-311.pyc +0 -0
  210. sage/middleware/services/vdb/examples/__pycache__/{vdb_demo.cpython-313.opt-2.pyc → vdb_demo.cpython-311.opt-2.pyc} +0 -0
  211. sage/middleware/services/vdb/examples/__pycache__/{vdb_demo.cpython-313.pyc → vdb_demo.cpython-311.pyc} +0 -0
  212. sage/middleware/services/vdb/examples/vdb_demo.py +2 -2
  213. sage/middleware/services/vdb/search_engine/__init__.py +37 -0
  214. sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  215. sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
  216. sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-311.opt-2.pyc +0 -0
  217. sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-311.pyc +0 -0
  218. sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-311.opt-2.pyc +0 -0
  219. sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-311.pyc +0 -0
  220. sage/middleware/services/vdb/vdb_service.py +44 -41
  221. sage/middleware/utils/__init__.py +34 -2
  222. sage/middleware/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  223. sage/middleware/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  224. sage/middleware/utils/embedding/__init__.py +33 -31
  225. sage/middleware/utils/embedding/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  226. sage/middleware/utils/embedding/__pycache__/__init__.cpython-311.pyc +0 -0
  227. sage/middleware/utils/embedding/__pycache__/_cohere.cpython-311.opt-2.pyc +0 -0
  228. sage/middleware/utils/embedding/__pycache__/_cohere.cpython-311.pyc +0 -0
  229. sage/middleware/utils/embedding/__pycache__/bedrock.cpython-311.opt-2.pyc +0 -0
  230. sage/middleware/utils/embedding/__pycache__/bedrock.cpython-311.pyc +0 -0
  231. sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-311.opt-2.pyc +0 -0
  232. sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-311.pyc +0 -0
  233. sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-311.opt-2.pyc +0 -0
  234. sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-311.pyc +0 -0
  235. sage/middleware/utils/embedding/__pycache__/hf.cpython-311.opt-2.pyc +0 -0
  236. sage/middleware/utils/embedding/__pycache__/hf.cpython-311.pyc +0 -0
  237. sage/middleware/utils/embedding/__pycache__/instructor.cpython-311.opt-2.pyc +0 -0
  238. sage/middleware/utils/embedding/__pycache__/instructor.cpython-311.pyc +0 -0
  239. sage/middleware/utils/embedding/__pycache__/jina.cpython-311.opt-2.pyc +0 -0
  240. sage/middleware/utils/embedding/__pycache__/jina.cpython-311.pyc +0 -0
  241. sage/middleware/utils/embedding/__pycache__/lollms.cpython-311.opt-2.pyc +0 -0
  242. sage/middleware/utils/embedding/__pycache__/lollms.cpython-311.pyc +0 -0
  243. sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-311.opt-2.pyc +0 -0
  244. sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-311.pyc +0 -0
  245. sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-311.opt-2.pyc +0 -0
  246. sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-311.pyc +0 -0
  247. sage/middleware/utils/embedding/__pycache__/ollama.cpython-311.opt-2.pyc +0 -0
  248. sage/middleware/utils/embedding/__pycache__/ollama.cpython-311.pyc +0 -0
  249. sage/middleware/utils/embedding/__pycache__/openai.cpython-311.opt-2.pyc +0 -0
  250. sage/middleware/utils/embedding/__pycache__/openai.cpython-311.pyc +0 -0
  251. sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-311.opt-2.pyc +0 -0
  252. sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-311.pyc +0 -0
  253. sage/middleware/utils/embedding/__pycache__/zhipu.cpython-311.opt-2.pyc +0 -0
  254. sage/middleware/utils/embedding/__pycache__/zhipu.cpython-311.pyc +0 -0
  255. isage_middleware-0.1.1.dist-info/METADATA +0 -424
  256. isage_middleware-0.1.1.dist-info/RECORD +0 -182
  257. sage/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  258. sage/__pycache__/__init__.cpython-313.pyc +0 -0
  259. sage/middleware/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  260. sage/middleware/__pycache__/__init__.cpython-313.pyc +0 -0
  261. sage/middleware/api/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  262. sage/middleware/api/__pycache__/__init__.cpython-313.pyc +0 -0
  263. sage/middleware/api/__pycache__/graph_api.cpython-313.opt-2.pyc +0 -0
  264. sage/middleware/api/__pycache__/graph_api.cpython-313.pyc +0 -0
  265. sage/middleware/api/__pycache__/kv_api.cpython-313.opt-2.pyc +0 -0
  266. sage/middleware/api/__pycache__/kv_api.cpython-313.pyc +0 -0
  267. sage/middleware/api/__pycache__/memory_api.cpython-313.opt-2.pyc +0 -0
  268. sage/middleware/api/__pycache__/memory_api.cpython-313.pyc +0 -0
  269. sage/middleware/api/__pycache__/vdb_api.cpython-313.opt-2.pyc +0 -0
  270. sage/middleware/api/__pycache__/vdb_api.cpython-313.pyc +0 -0
  271. sage/middleware/enterprise/__init__.py +0 -75
  272. sage/middleware/enterprise/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  273. sage/middleware/enterprise/__pycache__/__init__.cpython-313.pyc +0 -0
  274. sage/middleware/enterprise/sage_db/__init__.py +0 -132
  275. sage/middleware/enterprise/sage_db/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  276. sage/middleware/enterprise/sage_db/__pycache__/__init__.cpython-313.pyc +0 -0
  277. sage/middleware/enterprise/sage_db/__pycache__/sage_db.cpython-313.opt-2.pyc +0 -0
  278. sage/middleware/enterprise/sage_db/__pycache__/sage_db.cpython-313.pyc +0 -0
  279. sage/middleware/enterprise/sage_db/python/__init__.py +0 -7
  280. sage/middleware/enterprise/sage_db/python/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  281. sage/middleware/enterprise/sage_db/python/__pycache__/__init__.cpython-313.pyc +0 -0
  282. sage/middleware/enterprise/sage_db/python/__pycache__/sage_db.cpython-313.opt-2.pyc +0 -0
  283. sage/middleware/enterprise/sage_db/python/__pycache__/sage_db.cpython-313.pyc +0 -0
  284. sage/middleware/enterprise/sage_db/tests/__pycache__/test_python.cpython-313.opt-2.pyc +0 -0
  285. sage/middleware/enterprise/sage_db/tests/__pycache__/test_python.cpython-313.pyc +0 -0
  286. sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-313.opt-2.pyc +0 -0
  287. sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-313.pyc +0 -0
  288. sage/middleware/examples/__pycache__/dag_microservices_demo.cpython-313.opt-2.pyc +0 -0
  289. sage/middleware/examples/__pycache__/dag_microservices_demo.cpython-313.pyc +0 -0
  290. sage/middleware/examples/__pycache__/microservices_demo.cpython-313.opt-2.pyc +0 -0
  291. sage/middleware/examples/__pycache__/microservices_demo.cpython-313.pyc +0 -0
  292. sage/middleware/examples/__pycache__/microservices_integration_demo.cpython-313.opt-2.pyc +0 -0
  293. sage/middleware/examples/__pycache__/microservices_integration_demo.cpython-313.pyc +0 -0
  294. sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-313.opt-2.pyc +0 -0
  295. sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-313.pyc +0 -0
  296. sage/middleware/services/graph/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  297. sage/middleware/services/graph/__pycache__/__init__.cpython-313.pyc +0 -0
  298. sage/middleware/services/graph/__pycache__/graph_index.cpython-313.opt-2.pyc +0 -0
  299. sage/middleware/services/graph/__pycache__/graph_index.cpython-313.pyc +0 -0
  300. sage/middleware/services/graph/__pycache__/graph_service.cpython-313.opt-2.pyc +0 -0
  301. sage/middleware/services/graph/__pycache__/graph_service.cpython-313.pyc +0 -0
  302. sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-313.opt-2.pyc +0 -0
  303. sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-313.pyc +0 -0
  304. sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  305. sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-313.pyc +0 -0
  306. sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-313.opt-2.pyc +0 -0
  307. sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-313.pyc +0 -0
  308. sage/middleware/services/kv/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  309. sage/middleware/services/kv/__pycache__/__init__.cpython-313.pyc +0 -0
  310. sage/middleware/services/kv/__pycache__/kv_service.cpython-313.opt-2.pyc +0 -0
  311. sage/middleware/services/kv/__pycache__/kv_service.cpython-313.pyc +0 -0
  312. sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  313. sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-313.pyc +0 -0
  314. sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-313.opt-2.pyc +0 -0
  315. sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-313.pyc +0 -0
  316. sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-313.opt-2.pyc +0 -0
  317. sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-313.pyc +0 -0
  318. sage/middleware/services/memory/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  319. sage/middleware/services/memory/__pycache__/__init__.cpython-313.pyc +0 -0
  320. sage/middleware/services/memory/__pycache__/memory_service.cpython-313.opt-2.pyc +0 -0
  321. sage/middleware/services/memory/__pycache__/memory_service.cpython-313.pyc +0 -0
  322. sage/middleware/services/memory/examples/__pycache__/dag_microservices_demo.cpython-313.opt-2.pyc +0 -0
  323. sage/middleware/services/memory/examples/__pycache__/dag_microservices_demo.cpython-313.pyc +0 -0
  324. sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-313.opt-2.pyc +0 -0
  325. sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-313.pyc +0 -0
  326. sage/middleware/services/memory/utils/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  327. sage/middleware/services/memory/utils/__pycache__/__init__.cpython-313.pyc +0 -0
  328. sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-313.opt-2.pyc +0 -0
  329. sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-313.pyc +0 -0
  330. sage/middleware/services/vdb/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  331. sage/middleware/services/vdb/__pycache__/__init__.cpython-313.pyc +0 -0
  332. sage/middleware/services/vdb/__pycache__/vdb_service.cpython-313.opt-2.pyc +0 -0
  333. sage/middleware/services/vdb/__pycache__/vdb_service.cpython-313.pyc +0 -0
  334. sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  335. sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-313.pyc +0 -0
  336. sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-313.opt-2.pyc +0 -0
  337. sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-313.pyc +0 -0
  338. sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-313.opt-2.pyc +0 -0
  339. sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-313.pyc +0 -0
  340. sage/middleware/utils/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  341. sage/middleware/utils/__pycache__/__init__.cpython-313.pyc +0 -0
  342. sage/middleware/utils/embedding/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  343. sage/middleware/utils/embedding/__pycache__/__init__.cpython-313.pyc +0 -0
  344. sage/middleware/utils/embedding/__pycache__/_cohere.cpython-313.opt-2.pyc +0 -0
  345. sage/middleware/utils/embedding/__pycache__/_cohere.cpython-313.pyc +0 -0
  346. sage/middleware/utils/embedding/__pycache__/bedrock.cpython-313.opt-2.pyc +0 -0
  347. sage/middleware/utils/embedding/__pycache__/bedrock.cpython-313.pyc +0 -0
  348. sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-313.opt-2.pyc +0 -0
  349. sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-313.pyc +0 -0
  350. sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-313.opt-2.pyc +0 -0
  351. sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-313.pyc +0 -0
  352. sage/middleware/utils/embedding/__pycache__/hf.cpython-313.opt-2.pyc +0 -0
  353. sage/middleware/utils/embedding/__pycache__/hf.cpython-313.pyc +0 -0
  354. sage/middleware/utils/embedding/__pycache__/instructor.cpython-313.opt-2.pyc +0 -0
  355. sage/middleware/utils/embedding/__pycache__/instructor.cpython-313.pyc +0 -0
  356. sage/middleware/utils/embedding/__pycache__/jina.cpython-313.opt-2.pyc +0 -0
  357. sage/middleware/utils/embedding/__pycache__/jina.cpython-313.pyc +0 -0
  358. sage/middleware/utils/embedding/__pycache__/lollms.cpython-313.opt-2.pyc +0 -0
  359. sage/middleware/utils/embedding/__pycache__/lollms.cpython-313.pyc +0 -0
  360. sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-313.opt-2.pyc +0 -0
  361. sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-313.pyc +0 -0
  362. sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-313.opt-2.pyc +0 -0
  363. sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-313.pyc +0 -0
  364. sage/middleware/utils/embedding/__pycache__/ollama.cpython-313.opt-2.pyc +0 -0
  365. sage/middleware/utils/embedding/__pycache__/ollama.cpython-313.pyc +0 -0
  366. sage/middleware/utils/embedding/__pycache__/openai.cpython-313.opt-2.pyc +0 -0
  367. sage/middleware/utils/embedding/__pycache__/openai.cpython-313.pyc +0 -0
  368. sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-313.opt-2.pyc +0 -0
  369. sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-313.pyc +0 -0
  370. sage/middleware/utils/embedding/__pycache__/zhipu.cpython-313.opt-2.pyc +0 -0
  371. sage/middleware/utils/embedding/__pycache__/zhipu.cpython-313.pyc +0 -0
  372. {isage_middleware-0.1.1.dist-info → isage_middleware-0.1.4.dist-info}/WHEEL +0 -0
  373. {isage_middleware-0.1.1.dist-info → isage_middleware-0.1.4.dist-info}/top_level.txt +0 -0
  374. /sage/middleware/{enterprise → components}/sage_db/python/sage_db.py +0 -0
  375. /sage/middleware/{enterprise → components}/sage_db/sage_db.py +0 -0
  376. /sage/middleware/{enterprise → components}/sage_db/tests/test_python.py +0 -0
@@ -0,0 +1,118 @@
1
+ import os
2
+ from typing import Dict, List, Any, Optional, Union
3
+ from sage.core.api.service.base_service import BaseService
4
+ from sage.common.utils.logging.custom_logger import CustomLogger
5
+ from sage.middleware.components.neuromem.memory_manager import MemoryManager
6
+ from sage.middleware.components.neuromem.memory_collection.vdb_collection import VDBMemoryCollection
7
+ from sage.middleware.utils.embedding.embedding_api import apply_embedding_model
8
+
9
+
10
+ class NeuroMemVDBService(BaseService):
11
+ def __init__(self, collection_name: Union[str, List[str]]):
12
+ self.manager = MemoryManager(self._get_default_data_dir())
13
+ self.online_register_collections: Dict[str, VDBMemoryCollection] = {}
14
+
15
+ # 处理collection_name参数,支持单个字符串或字符串列表
16
+ if isinstance(collection_name, str):
17
+ collection_names = [collection_name]
18
+ else:
19
+ collection_names = collection_name
20
+
21
+ # 连接已有的collection,不存在就会报错
22
+ for name in collection_names:
23
+ try:
24
+ collection = self.manager.get_collection(name)
25
+ if collection is None:
26
+ raise ValueError(f"Collection '{name}' not found")
27
+ if not isinstance(collection, VDBMemoryCollection):
28
+ raise TypeError(f"Collection '{name}' is not a VDBMemoryCollection")
29
+
30
+ self.online_register_collections[name] = collection
31
+ self.logger.info(f"Successfully connected to collection: {name}")
32
+
33
+ # 检查是否有global_index,没有就创建一个
34
+ if "global_index" not in collection.indexes:
35
+ self.logger.info(f"Creating global_index for collection: {name}")
36
+ collection.create_index("global_index", description="Global index for all data")
37
+
38
+ except Exception as e:
39
+ self.logger.error(f"Failed to connect to collection '{name}': {str(e)}")
40
+ raise
41
+
42
+ def retrieve(self, query_text: str, topk: int = 5, collection_name: Optional[str] = None,
43
+ with_metadata: bool = False, **kwargs) -> List[Any]:
44
+ """
45
+ 在所有online_register_collections上按照vdb_collection方式检索,默认使用global_index
46
+
47
+ Args:
48
+ query_text: 查询文本
49
+ topk: 返回结果数量
50
+ collection_name: 指定collection名称,如果为None则在所有collection上检索
51
+ with_metadata: 是否返回metadata
52
+ **kwargs: 其他检索参数
53
+
54
+ Returns:
55
+ 检索结果列表
56
+ """
57
+ if not self.online_register_collections:
58
+ self.logger.warning("No collections are registered")
59
+ return []
60
+
61
+ all_results = []
62
+
63
+ # 如果指定了collection_name,只在该collection上检索
64
+ if collection_name:
65
+ if collection_name not in self.online_register_collections:
66
+ raise ValueError(f"Collection '{collection_name}' is not registered")
67
+ collections_to_search = {collection_name: self.online_register_collections[collection_name]}
68
+ else:
69
+ # 在所有注册的collection上检索
70
+ collections_to_search = self.online_register_collections
71
+
72
+ for name, collection in collections_to_search.items():
73
+ try:
74
+ results = collection.retrieve(
75
+ query_text,
76
+ topk=topk,
77
+ index_name="global_index",
78
+ with_metadata=with_metadata,
79
+ **kwargs
80
+ )
81
+
82
+ # 为结果添加来源collection信息
83
+ if with_metadata:
84
+ for result in results:
85
+ if isinstance(result, dict):
86
+ result['source_collection'] = name
87
+ else:
88
+ # 如果结果不是dict,转换为dict格式
89
+ result = {'text': result, 'source_collection': name}
90
+ else:
91
+ # 如果不要metadata,也可以选择添加来源信息
92
+ results = [{'text': result, 'source_collection': name} for result in results]
93
+
94
+ all_results.extend(results)
95
+ self.logger.debug(f"Retrieved {len(results)} results from collection: {name}")
96
+
97
+ except Exception as e:
98
+ self.logger.error(f"Error retrieving from collection '{name}': {str(e)}")
99
+
100
+ # 如果有多个collection的结果,可以按相似度重新排序(这里简化处理)
101
+ return all_results[:topk] if len(all_results) > topk else all_results
102
+
103
+ def _create_index(self, collection_name: str, index_name: str, **kwargs):
104
+ """为指定collection创建索引"""
105
+ if collection_name not in self.online_register_collections:
106
+ raise ValueError(f"Collection '{collection_name}' is not registered")
107
+
108
+ collection = self.online_register_collections[collection_name]
109
+ collection.create_index(index_name, **kwargs)
110
+ self.logger.info(f"Created index '{index_name}' for collection '{collection_name}'")
111
+
112
+ @classmethod
113
+ def _get_default_data_dir(cls):
114
+ """获取默认数据目录"""
115
+ cur_dir = os.getcwd()
116
+ data_dir = os.path.join(cur_dir, "data", "neuromem_vdb")
117
+ os.makedirs(data_dir, exist_ok=True)
118
+ return data_dir
@@ -0,0 +1,37 @@
1
+ """
2
+ SAGE - Streaming-Augmented Generative Execution
3
+ """
4
+
5
+ # 动态版本加载
6
+ def _load_version():
7
+ """从项目根目录动态加载版本信息"""
8
+ from pathlib import Path
9
+
10
+ # 获取项目根目录
11
+ current_file = Path(__file__).resolve()
12
+ root_dir = current_file.parent.parent.parent.parent.parent.parent.parent.parent
13
+ version_file = root_dir / "_version.py"
14
+
15
+ # 加载版本信息
16
+ if version_file.exists():
17
+ version_globals = {}
18
+ with open(version_file, 'r', encoding='utf-8') as f:
19
+ exec(f.read(), version_globals)
20
+ return {
21
+ 'version': version_globals.get('__version__', '0.1.4'),
22
+ 'author': version_globals.get('__author__', 'SAGE Team'),
23
+ 'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
24
+ }
25
+
26
+ # 默认值
27
+ return {
28
+ 'version': '0.1.4',
29
+ 'author': 'SAGE Team',
30
+ 'email': 'shuhao_zhang@hust.edu.cn'
31
+ }
32
+
33
+ # 加载信息
34
+ _info = _load_version()
35
+ __version__ = _info['version']
36
+ __author__ = _info['author']
37
+ __email__ = _info['email']
@@ -0,0 +1,37 @@
1
+ """
2
+ SAGE - Streaming-Augmented Generative Execution
3
+ """
4
+
5
+ # 动态版本加载
6
+ def _load_version():
7
+ """从项目根目录动态加载版本信息"""
8
+ from pathlib import Path
9
+
10
+ # 获取项目根目录
11
+ current_file = Path(__file__).resolve()
12
+ root_dir = current_file.parent.parent.parent.parent.parent.parent.parent.parent.parent
13
+ version_file = root_dir / "_version.py"
14
+
15
+ # 加载版本信息
16
+ if version_file.exists():
17
+ version_globals = {}
18
+ with open(version_file, 'r', encoding='utf-8') as f:
19
+ exec(f.read(), version_globals)
20
+ return {
21
+ 'version': version_globals.get('__version__', '0.1.4'),
22
+ 'author': version_globals.get('__author__', 'SAGE Team'),
23
+ 'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
24
+ }
25
+
26
+ # 默认值
27
+ return {
28
+ 'version': '0.1.4',
29
+ 'author': 'SAGE Team',
30
+ 'email': 'shuhao_zhang@hust.edu.cn'
31
+ }
32
+
33
+ # 加载信息
34
+ _info = _load_version()
35
+ __version__ = _info['version']
36
+ __author__ = _info['author']
37
+ __email__ = _info['email']
@@ -0,0 +1,40 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import Any, List
3
+
4
+ class BaseGraphIndex(ABC):
5
+ def __init__(self, name: str):
6
+ """
7
+ 基础图索引类初始化
8
+ :param name: 索引名称
9
+ """
10
+ self.name = name
11
+
12
+ @abstractmethod
13
+ def add_node(self, node_id: str, data: Any) -> None:
14
+ """添加一个节点"""
15
+ pass
16
+
17
+ @abstractmethod
18
+ def add_edge(self, from_node: str, to_node: str, weight: float = 1.0) -> None:
19
+ """添加一条有向边"""
20
+ pass
21
+
22
+ @abstractmethod
23
+ def remove_node(self, node_id: str) -> None:
24
+ """删除一个节点及其相关边"""
25
+ pass
26
+
27
+ @abstractmethod
28
+ def remove_edge(self, from_node: str, to_node: str) -> None:
29
+ """删除一条边"""
30
+ pass
31
+
32
+ @abstractmethod
33
+ def get_neighbors(self, node_id: str, k: int = 10) -> List[str]:
34
+ """获取指定节点的前 k 个邻居节点"""
35
+ pass
36
+
37
+ @abstractmethod
38
+ def has_node(self, node_id: str) -> bool:
39
+ """判断节点是否存在"""
40
+ pass
@@ -0,0 +1,37 @@
1
+ """
2
+ SAGE - Streaming-Augmented Generative Execution
3
+ """
4
+
5
+ # 动态版本加载
6
+ def _load_version():
7
+ """从项目根目录动态加载版本信息"""
8
+ from pathlib import Path
9
+
10
+ # 获取项目根目录
11
+ current_file = Path(__file__).resolve()
12
+ root_dir = current_file.parent.parent.parent.parent.parent.parent.parent.parent.parent
13
+ version_file = root_dir / "_version.py"
14
+
15
+ # 加载版本信息
16
+ if version_file.exists():
17
+ version_globals = {}
18
+ with open(version_file, 'r', encoding='utf-8') as f:
19
+ exec(f.read(), version_globals)
20
+ return {
21
+ 'version': version_globals.get('__version__', '0.1.4'),
22
+ 'author': version_globals.get('__author__', 'SAGE Team'),
23
+ 'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
24
+ }
25
+
26
+ # 默认值
27
+ return {
28
+ 'version': '0.1.4',
29
+ 'author': 'SAGE Team',
30
+ 'email': 'shuhao_zhang@hust.edu.cn'
31
+ }
32
+
33
+ # 加载信息
34
+ _info = _load_version()
35
+ __version__ = _info['version']
36
+ __author__ = _info['author']
37
+ __email__ = _info['email']
@@ -0,0 +1,37 @@
1
+ """
2
+ SAGE - Streaming-Augmented Generative Execution
3
+ """
4
+
5
+ # 动态版本加载
6
+ def _load_version():
7
+ """从项目根目录动态加载版本信息"""
8
+ from pathlib import Path
9
+
10
+ # 获取项目根目录
11
+ current_file = Path(__file__).resolve()
12
+ root_dir = current_file.parent.parent.parent.parent.parent.parent.parent.parent.parent
13
+ version_file = root_dir / "_version.py"
14
+
15
+ # 加载版本信息
16
+ if version_file.exists():
17
+ version_globals = {}
18
+ with open(version_file, 'r', encoding='utf-8') as f:
19
+ exec(f.read(), version_globals)
20
+ return {
21
+ 'version': version_globals.get('__version__', '0.1.4'),
22
+ 'author': version_globals.get('__author__', 'SAGE Team'),
23
+ 'email': version_globals.get('__email__', 'shuhao_zhang@hust.edu.cn')
24
+ }
25
+
26
+ # 默认值
27
+ return {
28
+ 'version': '0.1.4',
29
+ 'author': 'SAGE Team',
30
+ 'email': 'shuhao_zhang@hust.edu.cn'
31
+ }
32
+
33
+ # 加载信息
34
+ _info = _load_version()
35
+ __version__ = _info['version']
36
+ __author__ = _info['author']
37
+ __email__ = _info['email']
@@ -0,0 +1,76 @@
1
+ # file sage/core/sage.middleware.services.neuromem./search_engine/kv_index/base_kv_index.py
2
+
3
+ from abc import ABC, abstractmethod
4
+ from typing import List, Any, Dict, Optional
5
+
6
+ class BaseKVIndex(ABC):
7
+ def __init__(
8
+ self,
9
+ config: Optional[dict] = None,
10
+ texts: Optional[List[str]] = None,
11
+ ids: Optional[List[str]] = None
12
+ ):
13
+ """
14
+ 初始化索引基类。
15
+ Initialize the base class for KV Index.
16
+ """
17
+ self.config = config or {}
18
+ self.name = self.config.get("name", None)
19
+
20
+ @abstractmethod
21
+ def insert(self, text: str, id: str) -> None:
22
+ """
23
+ 插入一条新数据。
24
+ Insert a new entry.
25
+ """
26
+ pass
27
+
28
+ @abstractmethod
29
+ def delete(self, id: str) -> None:
30
+ """
31
+ 删除指定id的数据。
32
+ Delete an entry by id.
33
+ """
34
+ pass
35
+
36
+ @abstractmethod
37
+ def search(self, query: str, topk: int = 10) -> List[str]:
38
+ """
39
+ 检索相关数据,返回最相关的id列表。
40
+ Search for relevant entries and return the most relevant ids.
41
+ """
42
+ pass
43
+
44
+ @abstractmethod
45
+ def update(self, id: str, new_text: str) -> None:
46
+ """
47
+ 更新指定id的数据内容。
48
+ Update the entry corresponding to the given id.
49
+ """
50
+ pass
51
+
52
+ @classmethod
53
+ @abstractmethod
54
+ def load(cls, name: str, root_path: str) -> "BaseKVIndex":
55
+ """
56
+ 加载索引实例。
57
+ Load the index instance.
58
+ """
59
+ pass
60
+
61
+ @abstractmethod
62
+ def store(self, root_path: str) -> Dict[str, Any]:
63
+ """
64
+ 存储索引数据到指定目录。
65
+ Store the index data to the specified directory.
66
+ """
67
+ pass
68
+
69
+ @staticmethod
70
+ @abstractmethod
71
+ def clear(dir_path: str) -> None:
72
+ """
73
+ 删除指定目录下的所有索引数据。
74
+ Remove all index data under the specified directory.
75
+ """
76
+ pass