naas-abi-core 1.4.0__tar.gz → 1.4.2__tar.gz

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 (128) hide show
  1. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/=0.9.13 +4 -4
  2. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/CHANGELOG.md +27 -0
  3. naas_abi_core-1.4.2/PKG-INFO +631 -0
  4. naas_abi_core-1.4.2/README.md +576 -0
  5. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/pyproject.toml +6 -1
  6. naas_abi_core-1.4.0/PKG-INFO +0 -97
  7. naas_abi_core-1.4.0/README.md +0 -45
  8. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/.gitignore +0 -0
  9. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/assets/favicon.ico +0 -0
  10. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/assets/logo.png +0 -0
  11. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/__init__.py +0 -0
  12. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/apps/api/api.py +0 -0
  13. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/apps/api/api_test.py +0 -0
  14. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/apps/api/openapi_doc.py +0 -0
  15. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/apps/mcp/Dockerfile.mcp +0 -0
  16. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/apps/mcp/mcp_server.py +0 -0
  17. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/apps/mcp/mcp_server_test.py +0 -0
  18. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/apps/terminal_agent/main.py +0 -0
  19. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/apps/terminal_agent/terminal_style.py +0 -0
  20. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/Engine.py +0 -0
  21. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/EngineProxy.py +0 -0
  22. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/Engine_test.py +0 -0
  23. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/IEngine.py +0 -0
  24. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/conftest.py +0 -0
  25. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration.py +0 -0
  26. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_Deploy.py +0 -0
  27. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_GenericLoader.py +0 -0
  28. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_ObjectStorageService.py +0 -0
  29. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_ObjectStorageService_test.py +0 -0
  30. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_SecretService.py +0 -0
  31. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_SecretService_test.py +0 -0
  32. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_TripleStoreService.py +0 -0
  33. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_TripleStoreService_test.py +0 -0
  34. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_VectorStoreService.py +0 -0
  35. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_VectorStoreService_test.py +0 -0
  36. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/EngineConfiguration_test.py +0 -0
  37. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_configuration/utils/PydanticModelValidator.py +0 -0
  38. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_loaders/EngineModuleLoader.py +0 -0
  39. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_loaders/EngineOntologyLoader.py +0 -0
  40. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/engine/engine_loaders/EngineServiceLoader.py +0 -0
  41. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/integration/__init__.py +0 -0
  42. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/integration/integration.py +0 -0
  43. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/models/Model.py +0 -0
  44. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/models/OpenRouter.py +0 -0
  45. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/models/OpenRouter_test.py +0 -0
  46. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/module/Module.py +0 -0
  47. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/module/ModuleAgentLoader.py +0 -0
  48. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/module/ModuleUtils.py +0 -0
  49. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/modules/templatablesparqlquery/README.md +0 -0
  50. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/modules/templatablesparqlquery/__init__.py +0 -0
  51. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/modules/templatablesparqlquery/ontologies/TemplatableSparqlQueryOntology.ttl +0 -0
  52. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/modules/templatablesparqlquery/workflows/GenericWorkflow.py +0 -0
  53. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/modules/templatablesparqlquery/workflows/TemplatableSparqlQueryLoader.py +0 -0
  54. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/pipeline/__init__.py +0 -0
  55. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/pipeline/pipeline.py +0 -0
  56. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/__init__.py +0 -0
  57. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/Agent.py +0 -0
  58. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/AgentMemory_test.py +0 -0
  59. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/Agent_test.py +0 -0
  60. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/IntentAgent.py +0 -0
  61. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/IntentAgent_test.py +0 -0
  62. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/beta/Embeddings.py +0 -0
  63. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/beta/IntentMapper.py +0 -0
  64. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/beta/LocalModel.py +0 -0
  65. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/beta/VectorStore.py +0 -0
  66. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/test_agent_memory.py +0 -0
  67. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/agent/test_postgres_integration.py +0 -0
  68. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/cache/CacheFactory.py +0 -0
  69. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/cache/CachePort.py +0 -0
  70. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/cache/CacheService.py +0 -0
  71. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/cache/CacheService_test.py +0 -0
  72. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/cache/adapters/secondary/CacheFSAdapter.py +0 -0
  73. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/object_storage/ObjectStorageFactory.py +0 -0
  74. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/object_storage/ObjectStoragePort.py +0 -0
  75. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/object_storage/ObjectStorageService.py +0 -0
  76. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/object_storage/adapters/secondary/ObjectStorageSecondaryAdapterFS.py +0 -0
  77. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/object_storage/adapters/secondary/ObjectStorageSecondaryAdapterNaas.py +0 -0
  78. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/object_storage/adapters/secondary/ObjectStorageSecondaryAdapterS3.py +0 -0
  79. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/ontology/OntologyPorts.py +0 -0
  80. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/ontology/OntologyService.py +0 -0
  81. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/ontology/adaptors/secondary/OntologyService_SecondaryAdaptor_NERPort.py +0 -0
  82. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/secret/Secret.py +0 -0
  83. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/secret/SecretPorts.py +0 -0
  84. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/secret/Secret_test.py +0 -0
  85. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/secret/adaptors/secondary/Base64Secret.py +0 -0
  86. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/secret/adaptors/secondary/Base64Secret_test.py +0 -0
  87. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/secret/adaptors/secondary/NaasSecret.py +0 -0
  88. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/secret/adaptors/secondary/NaasSecret_test.py +0 -0
  89. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/secret/adaptors/secondary/dotenv_secret_secondaryadaptor.py +0 -0
  90. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/triple_store/TripleStoreFactory.py +0 -0
  91. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/triple_store/TripleStorePorts.py +0 -0
  92. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/triple_store/TripleStoreService.py +0 -0
  93. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/triple_store/adaptors/secondary/AWSNeptune.py +0 -0
  94. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/triple_store/adaptors/secondary/AWSNeptune_test.py +0 -0
  95. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/triple_store/adaptors/secondary/Oxigraph.py +0 -0
  96. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/triple_store/adaptors/secondary/Oxigraph_test.py +0 -0
  97. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/triple_store/adaptors/secondary/TripleStoreService__SecondaryAdaptor__Filesystem.py +0 -0
  98. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/triple_store/adaptors/secondary/TripleStoreService__SecondaryAdaptor__ObjectStorage.py +0 -0
  99. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/triple_store/adaptors/secondary/base/TripleStoreService__SecondaryAdaptor__FileBase.py +0 -0
  100. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/vector_store/IVectorStorePort.py +0 -0
  101. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/vector_store/IVectorStorePort_test.py +0 -0
  102. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/vector_store/VectorStoreFactory.py +0 -0
  103. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/vector_store/VectorStoreService.py +0 -0
  104. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/vector_store/VectorStoreService_test.py +0 -0
  105. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/vector_store/__init__.py +0 -0
  106. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/vector_store/adapters/QdrantAdapter.py +0 -0
  107. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/services/vector_store/adapters/QdrantAdapter_test.py +0 -0
  108. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/tests/test_services_imports.py +0 -0
  109. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/Expose.py +0 -0
  110. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/Graph.py +0 -0
  111. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/JSON.py +0 -0
  112. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/LazyLoader.py +0 -0
  113. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/Logger.py +0 -0
  114. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/OntologyReasoner.py +0 -0
  115. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/OntologyYaml.py +0 -0
  116. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/SPARQL.py +0 -0
  117. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/Storage.py +0 -0
  118. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/StorageUtils.py +0 -0
  119. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/String.py +0 -0
  120. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/Workers.py +0 -0
  121. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/__init__.py +0 -0
  122. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/onto2py/README.md +0 -0
  123. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/onto2py/__init__.py +0 -0
  124. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/onto2py/__main__.py +0 -0
  125. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/onto2py/onto2py.py +0 -0
  126. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/utils/onto2py/tests/ttl2py_test.py +0 -0
  127. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/workflow/__init__.py +0 -0
  128. {naas_abi_core-1.4.0 → naas_abi_core-1.4.2}/naas_abi_core/workflow/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Collecting uv
2
- Downloading uv-0.9.21-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
3
- Downloading uv-0.9.21-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.2 MB)
4
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 22.2/22.2 MB 290.7 MB/s 0:00:00
2
+ Downloading uv-0.9.22-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
3
+ Downloading uv-0.9.22-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.2 MB)
4
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 22.2/22.2 MB 161.1 MB/s 0:00:00
5
5
  Installing collected packages: uv
6
- Successfully installed uv-0.9.21
6
+ Successfully installed uv-0.9.22
@@ -2,6 +2,33 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v1.4.2 (2026-01-08)
6
+
7
+ ### Bug Fixes
8
+
9
+ - Pandas-stubs lib version
10
+ ([`343d981`](https://github.com/jupyter-naas/abi/commit/343d981689c044c87c89ce2bf3fc1d5065acde55))
11
+
12
+ - Tipo license
13
+ ([`f639213`](https://github.com/jupyter-naas/abi/commit/f639213b6c680d211c9618737842f01b51a65f8d))
14
+
15
+ - Tipo license
16
+ ([`0269100`](https://github.com/jupyter-naas/abi/commit/0269100ca7d2d338d1f68be0717be6e981cc8eac))
17
+
18
+
19
+ ## v1.4.1 (2026-01-08)
20
+
21
+ ### Bug Fixes
22
+
23
+ - Add project urls in pyproject.toml
24
+ ([`c155efa`](https://github.com/jupyter-naas/abi/commit/c155efa2a794b44312eb90ae19ab1c0da402d3ef))
25
+
26
+ ### Documentation
27
+
28
+ - Add README.md to naas-abi-core
29
+ ([`dc42682`](https://github.com/jupyter-naas/abi/commit/dc4268204d14a396945b34ad5f3bac38fbf7a7cb))
30
+
31
+
5
32
  ## v1.4.0 (2026-01-02)
6
33
 
7
34
  ### Bug Fixes
@@ -0,0 +1,631 @@
1
+ Metadata-Version: 2.4
2
+ Name: naas-abi-core
3
+ Version: 1.4.2
4
+ Summary: Abi framework allowing you to build your AI system.
5
+ Project-URL: Homepage, https://github.com/jupyter-naas/abi
6
+ Project-URL: Repository, https://github.com/jupyter-naas/abi/tree/main/libs/naas-abi-core
7
+ Author-email: Maxime Jublou <maxime@naas.ai>, Florent Ravenel <florent@naas.ai>, Jeremy Ravenel <jeremy@naas.ai>
8
+ License: MIT License
9
+ Requires-Python: <4,>=3.10
10
+ Requires-Dist: click<8.2,>=8.1.1
11
+ Requires-Dist: docker>=7.1.0
12
+ Requires-Dist: dotenv>=0.9.9
13
+ Requires-Dist: fastapi<0.116,>=0.115.5
14
+ Requires-Dist: fastmcp>=2.13.2
15
+ Requires-Dist: langchain-openai<0.4,>=0.3.3
16
+ Requires-Dist: langgraph-checkpoint-postgres>=2.0.21
17
+ Requires-Dist: langgraph>=0.6.6
18
+ Requires-Dist: loguru<0.8,>=0.7.2
19
+ Requires-Dist: pandas-stubs>=2.3.2.250926
20
+ Requires-Dist: pandas>=2.3.3
21
+ Requires-Dist: pillow>=12.0.0
22
+ Requires-Dist: pip>=25.1.1
23
+ Requires-Dist: psycopg[binary,pool]>=3.0.0
24
+ Requires-Dist: pydantic>=2.11.5
25
+ Requires-Dist: pydash>=8.0.5
26
+ Requires-Dist: pytz>=2025.2
27
+ Requires-Dist: pyyaml>=6.0.3
28
+ Requires-Dist: rdflib<8,>=7.1.1
29
+ Requires-Dist: rich<14,>=13.9.4
30
+ Requires-Dist: spacy>=3.8.7
31
+ Requires-Dist: sparqlwrapper>=2.0.0
32
+ Requires-Dist: sse-starlette<3,>=2.1.3
33
+ Requires-Dist: starlette>=0.46.2
34
+ Requires-Dist: types-paramiko>=4.0.0.20250822
35
+ Requires-Dist: types-pyyaml>=6.0.12.20250915
36
+ Requires-Dist: types-tqdm>=4.67.0.20250809
37
+ Provides-Extra: all
38
+ Requires-Dist: boto3-stubs>=1.42.19; extra == 'all'
39
+ Requires-Dist: boto3<2,>=1.38.19; extra == 'all'
40
+ Requires-Dist: langchain-openai>=0.3.35; extra == 'all'
41
+ Requires-Dist: paramiko<4.0.0,>=3.5.1; extra == 'all'
42
+ Requires-Dist: qdrant-client>=1.14.3; extra == 'all'
43
+ Requires-Dist: sshtunnel>=0.4.0; extra == 'all'
44
+ Provides-Extra: aws
45
+ Requires-Dist: boto3-stubs>=1.42.19; extra == 'aws'
46
+ Requires-Dist: boto3<2,>=1.38.19; extra == 'aws'
47
+ Provides-Extra: openrouter
48
+ Requires-Dist: langchain-openai>=0.3.35; extra == 'openrouter'
49
+ Provides-Extra: qdrant
50
+ Requires-Dist: qdrant-client>=1.14.3; extra == 'qdrant'
51
+ Provides-Extra: ssh
52
+ Requires-Dist: paramiko<4.0.0,>=3.5.1; extra == 'ssh'
53
+ Requires-Dist: sshtunnel>=0.4.0; extra == 'ssh'
54
+ Description-Content-Type: text/markdown
55
+
56
+ # naas-abi-core
57
+
58
+ The core implementation library for ABI (Agentic Brain Infrastructure), providing the fundamental building blocks for building unified AI systems. This library implements the core concepts, services, and architecture patterns that enable ontology-driven AI applications.
59
+
60
+ ## Overview
61
+
62
+ The ABI Library is the core implementation of ABI's concepts, designed to build a unified AI system. This library provides the fundamental building blocks for connecting, processing, and utilizing data across different AI components.
63
+
64
+ `naas-abi-core` is the foundational library that powers the ABI framework. It provides:
65
+
66
+ - **Engine**: Central orchestration system that loads and coordinates modules, services, and ontologies
67
+ - **Services**: Hexagonal architecture-based services for storage, secrets, and AI capabilities
68
+ - **Modules**: Modular system for organizing agents, integrations, pipelines, and workflows
69
+ - **Agents**: LangGraph-based AI agents with tool binding and conversation management
70
+ - **Applications**: Ready-to-use interfaces (REST API, Terminal, MCP Protocol)
71
+
72
+ ## Installation
73
+
74
+ ```bash
75
+ pip install naas-abi-core
76
+ ```
77
+
78
+ ### Optional Dependencies
79
+
80
+ ```bash
81
+ # For Qdrant vector store support
82
+ pip install naas-abi-core[qdrant]
83
+
84
+ # For AWS S3 object storage support
85
+ pip install naas-abi-core[aws]
86
+
87
+ # For SSH tunnel support
88
+ pip install naas-abi-core[ssh]
89
+
90
+ # For OpenRouter integration
91
+ pip install naas-abi-core[openrouter]
92
+
93
+ # Install all optional dependencies
94
+ pip install naas-abi-core[all]
95
+ ```
96
+
97
+ ## Core Architecture
98
+
99
+ ### Engine
100
+
101
+ The `Engine` is the central orchestrator that:
102
+
103
+ 1. **Loads Configuration**: Reads and validates YAML configuration files
104
+ 2. **Initializes Services**: Sets up storage, vector, triple store, and secret services based on module dependencies
105
+ 3. **Loads Modules**: Discovers and loads modules with their agents, integrations, pipelines, and workflows
106
+ 4. **Loads Ontologies**: Loads RDF ontologies into the triple store for semantic reasoning
107
+ 5. **Initializes Components**: Calls `on_initialized()` on all modules after everything is loaded
108
+
109
+ **Example Usage:**
110
+
111
+ ```python
112
+ from naas_abi_core.engine.Engine import Engine
113
+
114
+ # Initialize engine with default configuration (config.yaml)
115
+ engine = Engine()
116
+
117
+ # Load all modules
118
+ engine.load()
119
+
120
+ # Or load specific modules
121
+ engine.load(module_names=["naas_abi", "my_custom_module"])
122
+
123
+ # Access loaded modules
124
+ for module_name, module in engine.modules.items():
125
+ print(f"Module: {module_name}")
126
+ print(f"Agents: {[agent.__name__ for agent in module.agents]}")
127
+
128
+ # Access services
129
+ triple_store = engine.services.triple_store
130
+ vector_store = engine.services.vector_store
131
+ object_storage = engine.services.object_storage
132
+ secret_service = engine.services.secret
133
+ ```
134
+
135
+ ### Modules
136
+
137
+ Modules are the primary organizational unit in ABI. Each module can contain:
138
+
139
+ - **Agents**: AI agents that can be used for conversations and task execution
140
+ - **Integrations**: Connections to third-party services and APIs
141
+ - **Pipelines**: Data transformation processes that convert raw data into semantic representations
142
+ - **Workflows**: Business logic that can be exposed as tools, API endpoints, or scheduled jobs
143
+ - **Ontologies**: RDF/Turtle files that define semantic knowledge structures
144
+
145
+ **Module Structure:**
146
+
147
+ ```python
148
+ from naas_abi_core.module.Module import BaseModule, ModuleConfiguration
149
+ from naas_abi_core.engine.EngineProxy import EngineProxy
150
+
151
+ class MyModule(BaseModule):
152
+ class Configuration(ModuleConfiguration):
153
+ # Module-specific configuration
154
+ api_key: str
155
+
156
+ dependencies = ModuleDependencies(
157
+ modules=[], # Other modules this module depends on
158
+ services=[TripleStoreService, VectorStoreService] # Required services
159
+ )
160
+
161
+ def on_load(self):
162
+ # Called when module is loaded
163
+ # Load ontologies, agents, etc.
164
+ super().on_load()
165
+
166
+ def on_initialized(self):
167
+ # Called after all modules and services are initialized
168
+ # Safe to access other modules and services here
169
+ pass
170
+ ```
171
+
172
+ ### Services
173
+
174
+ Services form the foundational layer of ABI, implementing the Hexagonal Architecture (Ports & Adapters) pattern to provide flexible and system-agnostic interfaces. This architectural approach allows ABI to seamlessly integrate with existing systems while maintaining clean separation of concerns.
175
+
176
+ Each service defines a primary port (interface) that specifies its capabilities, while multiple secondary adapters can implement this interface for different backend systems. This means you can:
177
+
178
+ - Easily swap implementations without changing business logic
179
+ - Add new integrations by implementing new adapters
180
+ - Test components in isolation using mock adapters
181
+
182
+ For example, the Secret Service could connect to various backend systems through different adapters:
183
+ - Hashicorp Vault
184
+ - AWS Secrets Manager
185
+ - Azure Key Vault
186
+ - Environment Variables
187
+ - Local File System
188
+ - Google Cloud Secret Manager
189
+ - Kubernetes Secrets
190
+
191
+ This modular approach ensures that ABI can be deployed in any environment while maintaining consistent interfaces and behavior across different infrastructure choices.
192
+
193
+ #### Triple Store Service
194
+
195
+ Manages RDF knowledge graphs for semantic reasoning and ontology storage.
196
+
197
+ **Supported Backends:**
198
+ - Oxigraph (default)
199
+ - SPARQL endpoints
200
+ - Custom adapters
201
+
202
+ **Example:**
203
+
204
+ ```python
205
+ from naas_abi_core.services.triple_store.TripleStoreService import TripleStoreService
206
+
207
+ triple_store = engine.services.triple_store
208
+
209
+ # Query the knowledge graph
210
+ results = triple_store.query("""
211
+ SELECT ?subject ?predicate ?object
212
+ WHERE {
213
+ ?subject ?predicate ?object
214
+ }
215
+ LIMIT 10
216
+ """)
217
+ ```
218
+
219
+ #### Vector Store Service
220
+
221
+ Manages vector embeddings for semantic search and similarity matching.
222
+
223
+ **Supported Backends:**
224
+ - Qdrant (optional, requires `[qdrant]` extra)
225
+ - Custom adapters
226
+
227
+ **Example:**
228
+
229
+ ```python
230
+ from naas_abi_core.services.vector_store.VectorStoreService import VectorStoreService
231
+
232
+ vector_store = engine.services.vector_store
233
+
234
+ # Store embeddings
235
+ vector_store.upsert(
236
+ collection_name="intents",
237
+ vectors=[embedding],
238
+ ids=["intent_1"],
239
+ payloads=[{"text": "user query"}]
240
+ )
241
+
242
+ # Search similar vectors
243
+ results = vector_store.search(
244
+ collection_name="intents",
245
+ query_vector=query_embedding,
246
+ limit=5
247
+ )
248
+ ```
249
+
250
+ #### Object Storage Service
251
+
252
+ Manages file storage for documents, reports, and generated content.
253
+
254
+ **Supported Backends:**
255
+ - AWS S3 (optional, requires `[aws]` extra)
256
+ - MinIO
257
+ - Local file system
258
+ - Custom adapters
259
+
260
+ **Example:**
261
+
262
+ ```python
263
+ from naas_abi_core.services.object_storage.ObjectStorageService import ObjectStorageService
264
+
265
+ object_storage = engine.services.object_storage
266
+
267
+ # Upload a file
268
+ object_storage.upload(
269
+ bucket="my-bucket",
270
+ key="documents/report.pdf",
271
+ file_path="/path/to/report.pdf"
272
+ )
273
+
274
+ # Download a file
275
+ object_storage.download(
276
+ bucket="my-bucket",
277
+ key="documents/report.pdf",
278
+ file_path="/path/to/downloaded.pdf"
279
+ )
280
+ ```
281
+
282
+ #### Secret Service
283
+
284
+ Manages secrets and credentials securely across different storage systems.
285
+
286
+ **Supported Backends:**
287
+ - Environment variables
288
+ - Naas Secret Manager
289
+ - Hashicorp Vault
290
+ - AWS Secrets Manager
291
+ - Azure Key Vault
292
+ - Google Cloud Secret Manager
293
+ - Kubernetes Secrets
294
+ - Local file system
295
+ - Custom adapters
296
+
297
+ **Example:**
298
+
299
+ ```python
300
+ from naas_abi_core.services.secret.Secret import Secret
301
+
302
+ secret_service = engine.services.secret
303
+
304
+ # Get a secret
305
+ api_key = secret_service.get("OPENAI_API_KEY")
306
+
307
+ # List all secrets
308
+ all_secrets = secret_service.list()
309
+ ```
310
+
311
+ #### Cache Service
312
+
313
+ Provides intelligent caching for API calls, tool results, and model responses to optimize performance and manage rate limits.
314
+
315
+ **Example:**
316
+
317
+ ```python
318
+ from naas_abi_core.services.cache.CacheService import CacheService
319
+
320
+ cache = CacheService()
321
+
322
+ # Cache a function result
323
+ @cache.cache(ttl=3600)
324
+ def expensive_api_call(param: str):
325
+ # Expensive operation
326
+ return result
327
+
328
+ # Force refresh
329
+ result = expensive_api_call(param, force_refresh=True)
330
+ ```
331
+
332
+ ## Core Concepts
333
+
334
+ ### Integration
335
+
336
+ Integrations provide standardized connections to third-party services and data sources. They handle:
337
+ - Authentication and authorization
338
+ - API communication
339
+ - Data format standardization
340
+ - Error handling and retries
341
+
342
+ **Example:**
343
+
344
+ ```python
345
+ from naas_abi_core.integration.integration import Integration, IntegrationConfiguration
346
+
347
+ class MyAPIConfiguration(IntegrationConfiguration):
348
+ api_key: str
349
+ base_url: str
350
+
351
+ class MyAPIIntegration(Integration):
352
+ def __init__(self, configuration: MyAPIConfiguration):
353
+ super().__init__(configuration)
354
+ # Initialize connection
355
+
356
+ def fetch_data(self):
357
+ # Implement API call
358
+ pass
359
+ ```
360
+
361
+ ### Pipeline
362
+
363
+ Pipelines are responsible for data ingestion and transformation into the ontological layer. They:
364
+ - Utilize integrations to fetch data
365
+ - Transform raw data into semantic representations
366
+ - Maintain data consistency and quality
367
+ - Map external data models to ABI's ontology
368
+
369
+ **Example:**
370
+
371
+ ```python
372
+ from naas_abi_core.pipeline.pipeline import Pipeline, PipelineConfiguration, PipelineParameters
373
+ from rdflib import Graph
374
+
375
+ class MyPipelineConfiguration(PipelineConfiguration):
376
+ integration_config: dict
377
+
378
+ class MyPipelineParameters(PipelineParameters):
379
+ source: str
380
+
381
+ class MyPipeline(Pipeline):
382
+ def __init__(self, configuration: MyPipelineConfiguration):
383
+ super().__init__(configuration)
384
+
385
+ def run(self, parameters: MyPipelineParameters) -> Graph:
386
+ # Fetch data from integration
387
+ # Transform to RDF
388
+ # Return Graph
389
+ graph = Graph()
390
+ # ... add triples to graph
391
+ return graph
392
+
393
+ def trigger(self, event, ontology_name, triple) -> Graph:
394
+ # Event-driven pipeline execution
395
+ return self.run(MyPipelineParameters(source="event"))
396
+ ```
397
+
398
+ ### Workflow
399
+
400
+ Workflows leverage the ontological layer to implement business logic and provide data to consumers. They can be used by:
401
+ - Large Language Models (LLMs)
402
+ - Remote APIs and services
403
+ - Other automated processes
404
+
405
+ **Example:**
406
+
407
+ ```python
408
+ from naas_abi_core.workflow.workflow import Workflow, WorkflowConfiguration, WorkflowParameters
409
+ from pydantic import BaseModel
410
+
411
+ class MyWorkflowParameters(WorkflowParameters):
412
+ input_data: str
413
+
414
+ class MyWorkflowConfiguration(WorkflowConfiguration):
415
+ processing_option: str
416
+
417
+ class MyWorkflow(Workflow[MyWorkflowParameters]):
418
+ def __init__(self, configuration: MyWorkflowConfiguration):
419
+ super().__init__(configuration)
420
+
421
+ def run(self, parameters: MyWorkflowParameters):
422
+ # Implement business logic
423
+ # Query knowledge graph
424
+ # Process data
425
+ # Return results
426
+ return {"result": "processed"}
427
+ ```
428
+
429
+ ### Agent
430
+
431
+ Agents are AI-powered assistants that can have conversations, use tools, and delegate to sub-agents.
432
+
433
+ **Features:**
434
+ - LangGraph-based conversation management
435
+ - Tool binding and execution
436
+ - Sub-agent delegation
437
+ - Intent-based routing
438
+ - Conversation persistence (PostgreSQL checkpointing)
439
+ - Event streaming for real-time updates
440
+
441
+ **Example:**
442
+
443
+ ```python
444
+ from naas_abi_core.services.agent.Agent import Agent
445
+ from langchain_openai import ChatOpenAI
446
+
447
+ class MyAgent(Agent):
448
+ def __init__(self):
449
+ super().__init__(
450
+ name="MyAgent",
451
+ description="An agent that helps with specific tasks",
452
+ system_prompt="You are a helpful assistant...",
453
+ chat_model=ChatOpenAI(model="gpt-4"),
454
+ tools=[my_tool, my_workflow],
455
+ agents=[sub_agent] # Optional sub-agents
456
+ )
457
+ ```
458
+
459
+ ## Applications
460
+
461
+ ### REST API
462
+
463
+ FastAPI-based REST API that automatically exposes all agents, workflows, and pipelines.
464
+
465
+ **Features:**
466
+ - OpenAPI/Swagger documentation
467
+ - OAuth2 authentication
468
+ - CORS support
469
+ - Automatic endpoint generation from agents/workflows/pipelines
470
+
471
+ **Usage:**
472
+
473
+ ```python
474
+ from naas_abi_core.apps.api.api import api
475
+
476
+ # Run the API server
477
+ api()
478
+ ```
479
+
480
+ **Endpoints:**
481
+ - `GET /` - API landing page
482
+ - `GET /docs` - Swagger UI documentation
483
+ - `GET /redoc` - ReDoc documentation
484
+ - `POST /agents/{agent_name}/completion` - Agent completion endpoint
485
+ - `POST /workflows/{workflow_name}/run` - Workflow execution endpoint
486
+ - `POST /pipelines/{pipeline_name}/run` - Pipeline execution endpoint
487
+
488
+ ### Terminal Agent
489
+
490
+ Interactive terminal interface for chatting with agents.
491
+
492
+ **Usage:**
493
+
494
+ ```python
495
+ from naas_abi_core.apps.terminal_agent.main import run_agent
496
+ from naas_abi_core.services.agent.Agent import Agent
497
+
498
+ agent = MyAgent()
499
+ run_agent(agent)
500
+ ```
501
+
502
+ ### MCP Server
503
+
504
+ Model Context Protocol (MCP) server for integration with Claude Desktop and VS Code.
505
+
506
+ **Features:**
507
+ - Dynamic agent discovery from OpenAPI spec
508
+ - HTTP and stdio transport modes
509
+ - Automatic tool registration
510
+
511
+ **Usage:**
512
+
513
+ ```bash
514
+ # Start MCP server
515
+ python -m naas_abi_core.apps.mcp.mcp_server
516
+
517
+ # Or with HTTP transport
518
+ MCP_TRANSPORT=http python -m naas_abi_core.apps.mcp.mcp_server
519
+ ```
520
+
521
+ ## Configuration
522
+
523
+ ABI uses YAML configuration files (typically `config.yaml`) to configure:
524
+
525
+ - **Services**: Storage backends, connection details
526
+ - **Modules**: Which modules to load and their configurations
527
+ - **API**: API title, description, CORS settings
528
+ - **Global Config**: AI mode (cloud, local, airgap)
529
+
530
+ **Example Configuration:**
531
+
532
+ ```yaml
533
+ api:
534
+ title: "My ABI API"
535
+ description: "API for my AI system"
536
+ cors_origins:
537
+ - "http://localhost:9879"
538
+
539
+ global_config:
540
+ ai_mode: "cloud" # or "local" or "airgap"
541
+
542
+ services:
543
+ triple_store:
544
+ type: "oxigraph"
545
+ url: "http://localhost:7878"
546
+
547
+ vector_store:
548
+ type: "qdrant"
549
+ url: "http://localhost:6333"
550
+
551
+ object_storage:
552
+ type: "minio"
553
+ endpoint: "http://localhost:9000"
554
+
555
+ secret:
556
+ type: "env"
557
+
558
+ modules:
559
+ - module: "naas_abi"
560
+ enabled: true
561
+ - path: "./src/my_module"
562
+ enabled: true
563
+ config:
564
+ api_key: "${MY_API_KEY}"
565
+ ```
566
+
567
+ ## Key Dependencies
568
+
569
+ - **rdflib**: RDF and ontology management
570
+ - **langgraph**: Agent conversation management
571
+ - **langgraph-checkpoint-postgres**: Conversation persistence
572
+ - **fastapi**: REST API framework
573
+ - **sparqlwrapper**: SPARQL query execution
574
+ - **pydantic**: Data validation and configuration
575
+ - **loguru**: Logging
576
+ - **langchain-openai**: OpenAI integration
577
+
578
+ ## Architecture Patterns
579
+
580
+ ### Hexagonal Architecture (Ports & Adapters)
581
+
582
+ All services follow the Hexagonal Architecture pattern:
583
+
584
+ - **Primary Port**: Interface defining service capabilities
585
+ - **Secondary Adapters**: Implementations for different backends
586
+ - **Benefits**: Easy swapping of implementations, testability, system-agnostic design
587
+
588
+ ### Module System
589
+
590
+ - **Dependency Resolution**: Automatic dependency resolution and ordering
591
+ - **Lazy Loading**: Services loaded only when needed by modules
592
+ - **Lifecycle Hooks**: `on_load()` and `on_initialized()` for setup
593
+ - **Isolation**: Modules can be developed and tested independently
594
+
595
+ ### Event-Driven Pipelines
596
+
597
+ Pipelines can be triggered by:
598
+ - Manual execution via API or code
599
+ - Ontology events (triple insertions/updates)
600
+ - Scheduled jobs
601
+ - Workflow triggers
602
+
603
+ ## Development
604
+
605
+ ### Running Tests
606
+
607
+ ```bash
608
+ pytest
609
+ ```
610
+
611
+ ### Type Checking
612
+
613
+ ```bash
614
+ mypy naas_abi_core
615
+ ```
616
+
617
+ ### Building
618
+
619
+ ```bash
620
+ uv build
621
+ ```
622
+
623
+ ## See Also
624
+
625
+ - [ABI Main README](../../README.md) - Complete ABI framework documentation
626
+ - [naas-abi-cli](../naas-abi-cli/) - CLI tool for ABI projects
627
+ - [naas-abi-marketplace](../naas-abi-marketplace/) - Marketplace modules and agents
628
+
629
+ ## License
630
+
631
+ MIT License