isage-middleware 0.1.1__py3-none-any.whl → 0.1.3.1__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.
Files changed (377) hide show
  1. isage_middleware-0.1.3.1.dist-info/METADATA +115 -0
  2. isage_middleware-0.1.3.1.dist-info/RECORD +288 -0
  3. sage/middleware/__init__.py +52 -79
  4. sage/middleware/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  5. sage/middleware/__pycache__/__init__.cpython-311.pyc +0 -0
  6. sage/middleware/__pycache__/_version.cpython-311.opt-2.pyc +0 -0
  7. sage/middleware/__pycache__/_version.cpython-311.pyc +0 -0
  8. sage/middleware/_version.py +38 -0
  9. sage/middleware/api/__init__.py +52 -18
  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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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 +56 -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/{enterprise → components}/sage_db/sage_db.py +3 -211
  143. sage/middleware/components/sage_db/tests/__pycache__/test_python.cpython-311.opt-2.pyc +0 -0
  144. sage/middleware/components/sage_db/tests/__pycache__/test_python.cpython-311.pyc +0 -0
  145. sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-311.opt-2.pyc +0 -0
  146. sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-311.pyc +0 -0
  147. sage/middleware/examples/__pycache__/microservices_demo.cpython-311.opt-2.pyc +0 -0
  148. sage/middleware/examples/__pycache__/microservices_demo.cpython-311.pyc +0 -0
  149. sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-311.opt-2.pyc +0 -0
  150. sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-311.pyc +0 -0
  151. sage/middleware/examples/api_usage_tutorial.py +3 -3
  152. sage/middleware/examples/dag_microservices_demo.py +7 -8
  153. sage/middleware/examples/microservices_integration_demo.py +8 -11
  154. sage/middleware/examples/microservices_registration_demo.py +8 -12
  155. sage/middleware/services/__init__.py +56 -0
  156. sage/middleware/services/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  157. sage/middleware/services/__pycache__/__init__.cpython-311.pyc +0 -0
  158. sage/middleware/services/graph/__init__.py +52 -4
  159. sage/middleware/services/graph/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  160. sage/middleware/services/graph/__pycache__/__init__.cpython-311.pyc +0 -0
  161. sage/middleware/services/graph/__pycache__/graph_index.cpython-311.opt-2.pyc +0 -0
  162. sage/middleware/services/graph/__pycache__/graph_index.cpython-311.pyc +0 -0
  163. sage/middleware/services/graph/__pycache__/graph_service.cpython-311.opt-2.pyc +0 -0
  164. sage/middleware/services/graph/__pycache__/graph_service.cpython-311.pyc +0 -0
  165. sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-311.opt-2.pyc +0 -0
  166. sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-311.pyc +0 -0
  167. sage/middleware/services/graph/examples/graph_demo.py +3 -2
  168. sage/middleware/services/graph/graph_service.py +68 -0
  169. sage/middleware/services/graph/search_engine/__init__.py +56 -0
  170. sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  171. sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
  172. sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.opt-2.pyc +0 -0
  173. sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-311.pyc +0 -0
  174. sage/middleware/services/kv/__init__.py +52 -4
  175. sage/middleware/services/kv/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  176. sage/middleware/services/kv/__pycache__/__init__.cpython-311.pyc +0 -0
  177. sage/middleware/services/kv/__pycache__/kv_service.cpython-311.opt-2.pyc +0 -0
  178. sage/middleware/services/kv/__pycache__/kv_service.cpython-311.pyc +0 -0
  179. sage/middleware/services/kv/examples/__pycache__/{kv_demo.cpython-313.opt-2.pyc → kv_demo.cpython-311.opt-2.pyc} +0 -0
  180. sage/middleware/services/kv/examples/__pycache__/{kv_demo.cpython-313.pyc → kv_demo.cpython-311.pyc} +0 -0
  181. sage/middleware/services/kv/examples/kv_demo.py +1 -1
  182. sage/middleware/services/kv/search_engine/__init__.py +56 -0
  183. sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  184. sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
  185. sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-311.opt-2.pyc +0 -0
  186. sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-311.pyc +0 -0
  187. sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-311.opt-2.pyc +0 -0
  188. sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-311.pyc +0 -0
  189. sage/middleware/services/memory/__init__.py +52 -8
  190. sage/middleware/services/memory/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  191. sage/middleware/services/memory/__pycache__/__init__.cpython-311.pyc +0 -0
  192. sage/middleware/services/memory/__pycache__/memory_service.cpython-311.opt-2.pyc +0 -0
  193. sage/middleware/services/memory/__pycache__/memory_service.cpython-311.pyc +0 -0
  194. sage/middleware/services/memory/examples/__pycache__/{memory_demo.cpython-313.opt-2.pyc → memory_demo.cpython-311.opt-2.pyc} +0 -0
  195. sage/middleware/services/memory/examples/__pycache__/{memory_demo.cpython-313.pyc → memory_demo.cpython-311.pyc} +0 -0
  196. sage/middleware/services/memory/examples/dag_microservices_demo.py +8 -9
  197. sage/middleware/services/memory/examples/memory_demo.py +4 -4
  198. sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.opt-2.pyc +0 -0
  199. sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-311.pyc +0 -0
  200. sage/middleware/services/memory/memory_service.py +14 -11
  201. sage/middleware/services/memory/utils/__init__.py +56 -0
  202. sage/middleware/services/memory/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  203. sage/middleware/services/memory/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  204. sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-311.opt-2.pyc +0 -0
  205. sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-311.pyc +0 -0
  206. sage/middleware/services/vdb/__init__.py +52 -4
  207. sage/middleware/services/vdb/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  208. sage/middleware/services/vdb/__pycache__/__init__.cpython-311.pyc +0 -0
  209. sage/middleware/services/vdb/__pycache__/vdb_service.cpython-311.opt-2.pyc +0 -0
  210. sage/middleware/services/vdb/__pycache__/vdb_service.cpython-311.pyc +0 -0
  211. sage/middleware/services/vdb/examples/__pycache__/{vdb_demo.cpython-313.opt-2.pyc → vdb_demo.cpython-311.opt-2.pyc} +0 -0
  212. sage/middleware/services/vdb/examples/__pycache__/{vdb_demo.cpython-313.pyc → vdb_demo.cpython-311.pyc} +0 -0
  213. sage/middleware/services/vdb/examples/vdb_demo.py +2 -2
  214. sage/middleware/services/vdb/search_engine/__init__.py +56 -0
  215. sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  216. sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-311.pyc +0 -0
  217. sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-311.opt-2.pyc +0 -0
  218. sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-311.pyc +0 -0
  219. sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-311.opt-2.pyc +0 -0
  220. sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-311.pyc +0 -0
  221. sage/middleware/services/vdb/vdb_service.py +44 -41
  222. sage/middleware/utils/__init__.py +53 -2
  223. sage/middleware/utils/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  224. sage/middleware/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  225. sage/middleware/utils/embedding/__init__.py +52 -31
  226. sage/middleware/utils/embedding/__pycache__/__init__.cpython-311.opt-2.pyc +0 -0
  227. sage/middleware/utils/embedding/__pycache__/__init__.cpython-311.pyc +0 -0
  228. sage/middleware/utils/embedding/__pycache__/_cohere.cpython-311.opt-2.pyc +0 -0
  229. sage/middleware/utils/embedding/__pycache__/_cohere.cpython-311.pyc +0 -0
  230. sage/middleware/utils/embedding/__pycache__/bedrock.cpython-311.opt-2.pyc +0 -0
  231. sage/middleware/utils/embedding/__pycache__/bedrock.cpython-311.pyc +0 -0
  232. sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-311.opt-2.pyc +0 -0
  233. sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-311.pyc +0 -0
  234. sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-311.opt-2.pyc +0 -0
  235. sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-311.pyc +0 -0
  236. sage/middleware/utils/embedding/__pycache__/hf.cpython-311.opt-2.pyc +0 -0
  237. sage/middleware/utils/embedding/__pycache__/hf.cpython-311.pyc +0 -0
  238. sage/middleware/utils/embedding/__pycache__/instructor.cpython-311.opt-2.pyc +0 -0
  239. sage/middleware/utils/embedding/__pycache__/instructor.cpython-311.pyc +0 -0
  240. sage/middleware/utils/embedding/__pycache__/jina.cpython-311.opt-2.pyc +0 -0
  241. sage/middleware/utils/embedding/__pycache__/jina.cpython-311.pyc +0 -0
  242. sage/middleware/utils/embedding/__pycache__/lollms.cpython-311.opt-2.pyc +0 -0
  243. sage/middleware/utils/embedding/__pycache__/lollms.cpython-311.pyc +0 -0
  244. sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-311.opt-2.pyc +0 -0
  245. sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-311.pyc +0 -0
  246. sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-311.opt-2.pyc +0 -0
  247. sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-311.pyc +0 -0
  248. sage/middleware/utils/embedding/__pycache__/ollama.cpython-311.opt-2.pyc +0 -0
  249. sage/middleware/utils/embedding/__pycache__/ollama.cpython-311.pyc +0 -0
  250. sage/middleware/utils/embedding/__pycache__/openai.cpython-311.opt-2.pyc +0 -0
  251. sage/middleware/utils/embedding/__pycache__/openai.cpython-311.pyc +0 -0
  252. sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-311.opt-2.pyc +0 -0
  253. sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-311.pyc +0 -0
  254. sage/middleware/utils/embedding/__pycache__/zhipu.cpython-311.opt-2.pyc +0 -0
  255. sage/middleware/utils/embedding/__pycache__/zhipu.cpython-311.pyc +0 -0
  256. isage_middleware-0.1.1.dist-info/METADATA +0 -424
  257. isage_middleware-0.1.1.dist-info/RECORD +0 -182
  258. sage/__init__.py +0 -2
  259. sage/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  260. sage/__pycache__/__init__.cpython-313.pyc +0 -0
  261. sage/middleware/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  262. sage/middleware/__pycache__/__init__.cpython-313.pyc +0 -0
  263. sage/middleware/api/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  264. sage/middleware/api/__pycache__/__init__.cpython-313.pyc +0 -0
  265. sage/middleware/api/__pycache__/graph_api.cpython-313.opt-2.pyc +0 -0
  266. sage/middleware/api/__pycache__/graph_api.cpython-313.pyc +0 -0
  267. sage/middleware/api/__pycache__/kv_api.cpython-313.opt-2.pyc +0 -0
  268. sage/middleware/api/__pycache__/kv_api.cpython-313.pyc +0 -0
  269. sage/middleware/api/__pycache__/memory_api.cpython-313.opt-2.pyc +0 -0
  270. sage/middleware/api/__pycache__/memory_api.cpython-313.pyc +0 -0
  271. sage/middleware/api/__pycache__/vdb_api.cpython-313.opt-2.pyc +0 -0
  272. sage/middleware/api/__pycache__/vdb_api.cpython-313.pyc +0 -0
  273. sage/middleware/enterprise/__init__.py +0 -75
  274. sage/middleware/enterprise/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  275. sage/middleware/enterprise/__pycache__/__init__.cpython-313.pyc +0 -0
  276. sage/middleware/enterprise/sage_db/__init__.py +0 -132
  277. sage/middleware/enterprise/sage_db/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  278. sage/middleware/enterprise/sage_db/__pycache__/__init__.cpython-313.pyc +0 -0
  279. sage/middleware/enterprise/sage_db/__pycache__/sage_db.cpython-313.opt-2.pyc +0 -0
  280. sage/middleware/enterprise/sage_db/__pycache__/sage_db.cpython-313.pyc +0 -0
  281. sage/middleware/enterprise/sage_db/python/__init__.py +0 -7
  282. sage/middleware/enterprise/sage_db/python/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  283. sage/middleware/enterprise/sage_db/python/__pycache__/__init__.cpython-313.pyc +0 -0
  284. sage/middleware/enterprise/sage_db/python/__pycache__/sage_db.cpython-313.opt-2.pyc +0 -0
  285. sage/middleware/enterprise/sage_db/python/__pycache__/sage_db.cpython-313.pyc +0 -0
  286. sage/middleware/enterprise/sage_db/tests/__pycache__/test_python.cpython-313.opt-2.pyc +0 -0
  287. sage/middleware/enterprise/sage_db/tests/__pycache__/test_python.cpython-313.pyc +0 -0
  288. sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-313.opt-2.pyc +0 -0
  289. sage/middleware/examples/__pycache__/api_usage_tutorial.cpython-313.pyc +0 -0
  290. sage/middleware/examples/__pycache__/dag_microservices_demo.cpython-313.opt-2.pyc +0 -0
  291. sage/middleware/examples/__pycache__/dag_microservices_demo.cpython-313.pyc +0 -0
  292. sage/middleware/examples/__pycache__/microservices_demo.cpython-313.opt-2.pyc +0 -0
  293. sage/middleware/examples/__pycache__/microservices_demo.cpython-313.pyc +0 -0
  294. sage/middleware/examples/__pycache__/microservices_integration_demo.cpython-313.opt-2.pyc +0 -0
  295. sage/middleware/examples/__pycache__/microservices_integration_demo.cpython-313.pyc +0 -0
  296. sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-313.opt-2.pyc +0 -0
  297. sage/middleware/examples/__pycache__/microservices_registration_demo.cpython-313.pyc +0 -0
  298. sage/middleware/services/graph/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  299. sage/middleware/services/graph/__pycache__/__init__.cpython-313.pyc +0 -0
  300. sage/middleware/services/graph/__pycache__/graph_index.cpython-313.opt-2.pyc +0 -0
  301. sage/middleware/services/graph/__pycache__/graph_index.cpython-313.pyc +0 -0
  302. sage/middleware/services/graph/__pycache__/graph_service.cpython-313.opt-2.pyc +0 -0
  303. sage/middleware/services/graph/__pycache__/graph_service.cpython-313.pyc +0 -0
  304. sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-313.opt-2.pyc +0 -0
  305. sage/middleware/services/graph/examples/__pycache__/graph_demo.cpython-313.pyc +0 -0
  306. sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  307. sage/middleware/services/graph/search_engine/__pycache__/__init__.cpython-313.pyc +0 -0
  308. sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-313.opt-2.pyc +0 -0
  309. sage/middleware/services/graph/search_engine/__pycache__/base_graph_index.cpython-313.pyc +0 -0
  310. sage/middleware/services/kv/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  311. sage/middleware/services/kv/__pycache__/__init__.cpython-313.pyc +0 -0
  312. sage/middleware/services/kv/__pycache__/kv_service.cpython-313.opt-2.pyc +0 -0
  313. sage/middleware/services/kv/__pycache__/kv_service.cpython-313.pyc +0 -0
  314. sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  315. sage/middleware/services/kv/search_engine/__pycache__/__init__.cpython-313.pyc +0 -0
  316. sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-313.opt-2.pyc +0 -0
  317. sage/middleware/services/kv/search_engine/__pycache__/base_kv_index.cpython-313.pyc +0 -0
  318. sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-313.opt-2.pyc +0 -0
  319. sage/middleware/services/kv/search_engine/__pycache__/bm25s_index.cpython-313.pyc +0 -0
  320. sage/middleware/services/memory/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  321. sage/middleware/services/memory/__pycache__/__init__.cpython-313.pyc +0 -0
  322. sage/middleware/services/memory/__pycache__/memory_service.cpython-313.opt-2.pyc +0 -0
  323. sage/middleware/services/memory/__pycache__/memory_service.cpython-313.pyc +0 -0
  324. sage/middleware/services/memory/examples/__pycache__/dag_microservices_demo.cpython-313.opt-2.pyc +0 -0
  325. sage/middleware/services/memory/examples/__pycache__/dag_microservices_demo.cpython-313.pyc +0 -0
  326. sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-313.opt-2.pyc +0 -0
  327. sage/middleware/services/memory/memory_collection/__pycache__/graph_collection.cpython-313.pyc +0 -0
  328. sage/middleware/services/memory/utils/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  329. sage/middleware/services/memory/utils/__pycache__/__init__.cpython-313.pyc +0 -0
  330. sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-313.opt-2.pyc +0 -0
  331. sage/middleware/services/memory/utils/__pycache__/path_utils.cpython-313.pyc +0 -0
  332. sage/middleware/services/vdb/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  333. sage/middleware/services/vdb/__pycache__/__init__.cpython-313.pyc +0 -0
  334. sage/middleware/services/vdb/__pycache__/vdb_service.cpython-313.opt-2.pyc +0 -0
  335. sage/middleware/services/vdb/__pycache__/vdb_service.cpython-313.pyc +0 -0
  336. sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  337. sage/middleware/services/vdb/search_engine/__pycache__/__init__.cpython-313.pyc +0 -0
  338. sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-313.opt-2.pyc +0 -0
  339. sage/middleware/services/vdb/search_engine/__pycache__/base_vdb_index.cpython-313.pyc +0 -0
  340. sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-313.opt-2.pyc +0 -0
  341. sage/middleware/services/vdb/search_engine/__pycache__/faiss_index.cpython-313.pyc +0 -0
  342. sage/middleware/utils/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  343. sage/middleware/utils/__pycache__/__init__.cpython-313.pyc +0 -0
  344. sage/middleware/utils/embedding/__pycache__/__init__.cpython-313.opt-2.pyc +0 -0
  345. sage/middleware/utils/embedding/__pycache__/__init__.cpython-313.pyc +0 -0
  346. sage/middleware/utils/embedding/__pycache__/_cohere.cpython-313.opt-2.pyc +0 -0
  347. sage/middleware/utils/embedding/__pycache__/_cohere.cpython-313.pyc +0 -0
  348. sage/middleware/utils/embedding/__pycache__/bedrock.cpython-313.opt-2.pyc +0 -0
  349. sage/middleware/utils/embedding/__pycache__/bedrock.cpython-313.pyc +0 -0
  350. sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-313.opt-2.pyc +0 -0
  351. sage/middleware/utils/embedding/__pycache__/embedding_api.cpython-313.pyc +0 -0
  352. sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-313.opt-2.pyc +0 -0
  353. sage/middleware/utils/embedding/__pycache__/embedding_model.cpython-313.pyc +0 -0
  354. sage/middleware/utils/embedding/__pycache__/hf.cpython-313.opt-2.pyc +0 -0
  355. sage/middleware/utils/embedding/__pycache__/hf.cpython-313.pyc +0 -0
  356. sage/middleware/utils/embedding/__pycache__/instructor.cpython-313.opt-2.pyc +0 -0
  357. sage/middleware/utils/embedding/__pycache__/instructor.cpython-313.pyc +0 -0
  358. sage/middleware/utils/embedding/__pycache__/jina.cpython-313.opt-2.pyc +0 -0
  359. sage/middleware/utils/embedding/__pycache__/jina.cpython-313.pyc +0 -0
  360. sage/middleware/utils/embedding/__pycache__/lollms.cpython-313.opt-2.pyc +0 -0
  361. sage/middleware/utils/embedding/__pycache__/lollms.cpython-313.pyc +0 -0
  362. sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-313.opt-2.pyc +0 -0
  363. sage/middleware/utils/embedding/__pycache__/mockembedder.cpython-313.pyc +0 -0
  364. sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-313.opt-2.pyc +0 -0
  365. sage/middleware/utils/embedding/__pycache__/nvidia_openai.cpython-313.pyc +0 -0
  366. sage/middleware/utils/embedding/__pycache__/ollama.cpython-313.opt-2.pyc +0 -0
  367. sage/middleware/utils/embedding/__pycache__/ollama.cpython-313.pyc +0 -0
  368. sage/middleware/utils/embedding/__pycache__/openai.cpython-313.opt-2.pyc +0 -0
  369. sage/middleware/utils/embedding/__pycache__/openai.cpython-313.pyc +0 -0
  370. sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-313.opt-2.pyc +0 -0
  371. sage/middleware/utils/embedding/__pycache__/siliconcloud.cpython-313.pyc +0 -0
  372. sage/middleware/utils/embedding/__pycache__/zhipu.cpython-313.opt-2.pyc +0 -0
  373. sage/middleware/utils/embedding/__pycache__/zhipu.cpython-313.pyc +0 -0
  374. {isage_middleware-0.1.1.dist-info → isage_middleware-0.1.3.1.dist-info}/WHEEL +0 -0
  375. {isage_middleware-0.1.1.dist-info → isage_middleware-0.1.3.1.dist-info}/top_level.txt +0 -0
  376. /sage/middleware/{enterprise → components}/sage_db/python/sage_db.py +0 -0
  377. /sage/middleware/{enterprise → components}/sage_db/tests/test_python.py +0 -0
@@ -1,22 +1,56 @@
1
1
  """
2
- SAGE Service API Module
3
- 提供统一的服务API接口
2
+ SAGE - Streaming-Augmented Generative Execution
4
3
  """
5
4
 
6
- # 服务API接口
7
- try:
8
- from .kv_api import KVServiceAPI
9
- from .vdb_api import VDBServiceAPI
10
- from .memory_api import MemoryServiceAPI
11
- from .graph_api import GraphServiceAPI
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.3'),
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
12
44
 
13
- __all__ = [
14
- "KVServiceAPI",
15
- "VDBServiceAPI",
16
- "MemoryServiceAPI",
17
- "GraphServiceAPI"
18
- ]
19
-
20
- except ImportError as e:
21
- print(f"⚠️ Some API modules not available: {e}")
22
- __all__ = []
45
+ # 最后的默认值
46
+ return {
47
+ 'version': '0.1.3',
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']
@@ -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.3'),
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.3',
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']
@@ -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.3'),
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.3',
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']
@@ -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.3'),
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.3',
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']
@@ -0,0 +1,167 @@
1
+ # file: sage.middleware.services.neuromem./memory_collection/base_collection.py
2
+ # python -m sage.core.sage.middleware.services.neuromem.memory_collection.base_collection
3
+
4
+ import os
5
+ import hashlib
6
+ from dotenv import load_dotenv
7
+ from typing import Dict, Optional, Callable, Any, List
8
+ from sage.middleware.components.neuromem.utils.path_utils import get_default_data_dir
9
+ from sage.middleware.components.neuromem.storage_engine.metadata_storage import MetadataStorage
10
+ from sage.middleware.components.neuromem.storage_engine.text_storage import TextStorage
11
+
12
+ # from sage.middleware.services.neuromem..storage_engine.text_storage import TextStorage
13
+ # from sage.middleware.services.neuromem..storage_engine.metadata_storage import MetadataStorage
14
+
15
+
16
+
17
+
18
+ # 加载工程根目录下 sage/.env 配置
19
+ # Load configuration from .env file under the sage directory
20
+ # load_dotenv(dotenv_path=os.path.join(os.path.dirname(__file__), '../../../.env'))
21
+
22
+ class BaseMemoryCollection:
23
+ """
24
+ Base memory collection with support for raw text and metadata management.
25
+ 支持原始文本和元数据管理的基础内存集合类。
26
+ """
27
+
28
+ def __init__(self, name: str):
29
+ self.name = name
30
+ self.text_storage = TextStorage()
31
+ self.metadata_storage = MetadataStorage()
32
+
33
+ def _get_stable_id(self, raw_text: str) -> str:
34
+ """
35
+ Generate stable ID from raw text using SHA256.
36
+ 使用 SHA256 生成稳定的文本 ID。
37
+ """
38
+ return hashlib.sha256(raw_text.encode("utf-8")).hexdigest()
39
+
40
+ def filter_ids(
41
+ self,
42
+ ids: List[str],
43
+ metadata_filter_func: Optional[Callable[[Dict[str, Any]], bool]] = None,
44
+ **metadata_conditions
45
+ ) -> List[str]:
46
+ """
47
+ Filter given IDs based on metadata filter rag or exact match conditions.
48
+ 基于元数据过滤函数或条件筛选给定ID列表中的条目。
49
+ """
50
+ matched_ids = []
51
+
52
+ for item_id in ids:
53
+ metadata = self.metadata_storage.get(item_id)
54
+
55
+ if metadata_filter_func:
56
+ if metadata_filter_func(metadata):
57
+ matched_ids.append(item_id)
58
+ else:
59
+ if all(metadata.get(k) == v for k, v in metadata_conditions.items()):
60
+ matched_ids.append(item_id)
61
+
62
+ return matched_ids
63
+
64
+ def get_all_ids(self) -> List[str]:
65
+ """
66
+ Get all stored item IDs.
67
+ 获取所有存储的条目ID。
68
+ """
69
+ return self.text_storage.get_all_ids()
70
+ # return list(self.text_storage._store.keys())
71
+
72
+ def add_metadata_field(self, field_name: str):
73
+ """
74
+ Register a metadata field.
75
+ 注册一个元数据字段。
76
+ """
77
+ self.metadata_storage.add_field(field_name)
78
+
79
+ def insert(self, raw_text: str, metadata: Optional[Dict[str, Any]] = None) -> str:
80
+ """
81
+ Store raw text with optional metadata.
82
+ 存储原始文本与可选的元数据。自动注册未知的元数据字段。
83
+ """
84
+ stable_id = self._get_stable_id(raw_text)
85
+ self.text_storage.store(stable_id, raw_text)
86
+
87
+ if metadata:
88
+ # 自动注册所有未知的元数据字段
89
+ for field_name in metadata.keys():
90
+ if not self.metadata_storage.has_field(field_name):
91
+ self.metadata_storage.add_field(field_name)
92
+
93
+ self.metadata_storage.store(stable_id, metadata)
94
+
95
+ return stable_id
96
+
97
+ def retrieve(
98
+ self,
99
+ with_metadata: bool = False,
100
+ metadata_filter_func: Optional[Callable[[Dict[str, Any]], bool]] = None,
101
+ **metadata_conditions
102
+ ):
103
+ """
104
+ Retrieve raw texts optionally filtered by metadata.
105
+ 根据元数据(条件或函数)检索原始文本。
106
+ """
107
+ all_ids = self.get_all_ids()
108
+ matched_ids = self.filter_ids(all_ids, metadata_filter_func, **metadata_conditions)
109
+ # return [self.text_storage.get(i) for i in matched_ids]
110
+ if with_metadata:
111
+ return [{"text": self.text_storage.get(i), "metadata": self.metadata_storage.get(i)} for i in matched_ids]
112
+ else:
113
+ return [self.text_storage.get(i) for i in matched_ids]
114
+
115
+ def clear(self):
116
+ """
117
+ Clear all stored text and metadata.
118
+ 清空所有存储的文本和元数据。
119
+ """
120
+ self.text_storage.clear()
121
+ self.metadata_storage.clear()
122
+
123
+ if __name__ == "__main__":
124
+
125
+ def basetest():
126
+ import time
127
+ from datetime import datetime
128
+ col = BaseMemoryCollection("demo")
129
+ col.add_metadata_field("source")
130
+ col.add_metadata_field("lang")
131
+ col.add_metadata_field("timestamp") # 添加时间戳字段
132
+
133
+ # 添加带时间戳的数据
134
+ current_time = time.time()
135
+ col.insert("hello world", {"source": "user", "lang": "en", "timestamp": current_time - 3600}) # 1小时前
136
+ col.insert("你好,世界", {"source": "user", "lang": "zh", "timestamp": current_time - 1800}) # 30分钟前
137
+ col.insert("bonjour le monde", {"source": "web", "lang": "fr", "timestamp": current_time}) # 现在
138
+
139
+ print("=== Filter by keyword ===")
140
+ res1 = col.retrieve(source="user")
141
+ for r in res1:
142
+ print(r)
143
+
144
+ print("\n=== Filter by custom rag (language) ===")
145
+ res2 = col.retrieve(metadata_filter_func=lambda m: m.get("lang") in {"zh", "fr"})
146
+ for r in res2:
147
+ print(r)
148
+
149
+ print(f"\nCurrent time: {datetime.fromtimestamp(current_time)}")
150
+
151
+ print("\n=== Filter by timestamp (last 45 minutes) ===")
152
+ time_threshold = current_time - 2700 # 45分钟前
153
+ matched_ids = col.filter_ids(col.get_all_ids(), metadata_filter_func=lambda m: m.get("timestamp", 0) > time_threshold)
154
+ for item_id in matched_ids:
155
+ text = col.text_storage.get(item_id)
156
+ metadata = col.metadata_storage.get(item_id)
157
+ print(f"{text} (timestamp: {datetime.fromtimestamp(metadata['timestamp']).strftime('%Y-%m-%d %H:%M:%S')})")
158
+
159
+ print("\n=== Filter by timestamp range (30-60 minutes ago) ===")
160
+ start_time = current_time - 3600 # 1小时前
161
+ end_time = current_time - 1800 # 30分钟前
162
+ matched_ids = col.filter_ids(col.get_all_ids(), metadata_filter_func=lambda m: start_time <= m.get("timestamp", 0) <= end_time)
163
+ for item_id in matched_ids:
164
+ text = col.text_storage.get(item_id)
165
+ metadata = col.metadata_storage.get(item_id)
166
+ print(f"{text} (timestamp: {datetime.fromtimestamp(metadata['timestamp']).strftime('%Y-%m-%d %H:%M:%S')})")
167
+
@@ -0,0 +1,11 @@
1
+ # file sage/core/sage.middleware.services.neuromem./memory_collection/graph_collection.py
2
+ from sage.middleware.components.neuromem.memory_collection.base_collection import BaseMemoryCollection
3
+ from sage.middleware.components.neuromem.utils.path_utils import get_default_data_dir
4
+
5
+ class GraphMemoryCollection(BaseMemoryCollection):
6
+ pass
7
+
8
+ @classmethod
9
+ def load(cls, a, b):
10
+ pass
11
+