trustgraph-base 2.7.0__tar.gz → 2.7.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 (194) hide show
  1. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/PKG-INFO +1 -1
  2. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/__init__.py +2 -0
  3. trustgraph_base-2.7.2/trustgraph/base/keyword_index_client.py +44 -0
  4. trustgraph_base-2.7.2/trustgraph/base/keyword_index_service.py +132 -0
  5. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/request_response_spec.py +13 -1
  6. trustgraph_base-2.7.2/trustgraph/base_version.py +1 -0
  7. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/query.py +21 -0
  8. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph_base.egg-info/PKG-INFO +1 -1
  9. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph_base.egg-info/SOURCES.txt +2 -0
  10. trustgraph_base-2.7.0/trustgraph/base_version.py +0 -1
  11. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/README.md +0 -0
  12. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/pyproject.toml +0 -0
  13. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/setup.cfg +0 -0
  14. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/__init__.py +0 -0
  15. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/api.py +0 -0
  16. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/async_bulk_client.py +0 -0
  17. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/async_flow.py +0 -0
  18. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/async_metrics.py +0 -0
  19. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/async_socket_client.py +0 -0
  20. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/bulk_client.py +0 -0
  21. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/collection.py +0 -0
  22. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/config.py +0 -0
  23. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/exceptions.py +0 -0
  24. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/explainability.py +0 -0
  25. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/flow.py +0 -0
  26. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/knowledge.py +0 -0
  27. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/library.py +0 -0
  28. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/metrics.py +0 -0
  29. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/socket_client.py +0 -0
  30. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/api/types.py +0 -0
  31. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/agent_client.py +0 -0
  32. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/agent_service.py +0 -0
  33. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/async_processor.py +0 -0
  34. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/audit_publisher.py +0 -0
  35. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/backend.py +0 -0
  36. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/cassandra_config.py +0 -0
  37. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/chunking_service.py +0 -0
  38. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/collection_config_handler.py +0 -0
  39. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/config_client.py +0 -0
  40. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/consumer.py +0 -0
  41. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/consumer_spec.py +0 -0
  42. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/document_embeddings_client.py +0 -0
  43. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/document_embeddings_query_service.py +0 -0
  44. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/document_embeddings_store_service.py +0 -0
  45. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/dynamic_tool_service.py +0 -0
  46. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/embeddings_client.py +0 -0
  47. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/embeddings_service.py +0 -0
  48. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/flow.py +0 -0
  49. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/flow_processor.py +0 -0
  50. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/graph_embeddings_client.py +0 -0
  51. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/graph_embeddings_query_service.py +0 -0
  52. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/graph_embeddings_store_service.py +0 -0
  53. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/graph_rag_client.py +0 -0
  54. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/iam_client.py +0 -0
  55. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/kafka_backend.py +0 -0
  56. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/librarian_client.py +0 -0
  57. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/librarian_spec.py +0 -0
  58. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/llm_service.py +0 -0
  59. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/logging.py +0 -0
  60. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/metrics.py +0 -0
  61. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/parameter_spec.py +0 -0
  62. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/processor_group.py +0 -0
  63. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/producer.py +0 -0
  64. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/producer_spec.py +0 -0
  65. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/prompt_client.py +0 -0
  66. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/publisher.py +0 -0
  67. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/pubsub.py +0 -0
  68. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/pulsar_backend.py +0 -0
  69. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/qdrant_config.py +0 -0
  70. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/rabbitmq_backend.py +0 -0
  71. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/reranker_client.py +0 -0
  72. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/reranker_service.py +0 -0
  73. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/row_embeddings_query_client.py +0 -0
  74. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/serialization.py +0 -0
  75. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/spec.py +0 -0
  76. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/structured_query_client.py +0 -0
  77. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/subscriber.py +0 -0
  78. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/subscriber_spec.py +0 -0
  79. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/text_completion_client.py +0 -0
  80. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/tool_client.py +0 -0
  81. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/tool_service.py +0 -0
  82. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/tool_service_client.py +0 -0
  83. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/triples_client.py +0 -0
  84. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/triples_query_service.py +0 -0
  85. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/triples_store_service.py +0 -0
  86. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/base/workspace_processor.py +0 -0
  87. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/__init__.py +0 -0
  88. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/agent_client.py +0 -0
  89. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/base.py +0 -0
  90. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/config_client.py +0 -0
  91. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/document_embeddings_client.py +0 -0
  92. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/document_rag_client.py +0 -0
  93. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/embeddings_client.py +0 -0
  94. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/graph_embeddings_client.py +0 -0
  95. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/graph_rag_client.py +0 -0
  96. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/llm_client.py +0 -0
  97. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/prompt_client.py +0 -0
  98. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/row_embeddings_client.py +0 -0
  99. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/clients/triples_query_client.py +0 -0
  100. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/exceptions.py +0 -0
  101. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/__init__.py +0 -0
  102. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/__init__.py +0 -0
  103. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/ar.json +0 -0
  104. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/en.json +0 -0
  105. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/es.json +0 -0
  106. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/he.json +0 -0
  107. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/hi.json +0 -0
  108. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/pt.json +0 -0
  109. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/ru.json +0 -0
  110. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/sw.json +0 -0
  111. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/tr.json +0 -0
  112. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/i18n/packs/zh-cn.json +0 -0
  113. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/knowledge/__init__.py +0 -0
  114. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/knowledge/defs.py +0 -0
  115. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/knowledge/document.py +0 -0
  116. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/knowledge/identifier.py +0 -0
  117. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/knowledge/organization.py +0 -0
  118. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/knowledge/publication.py +0 -0
  119. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/log_level.py +0 -0
  120. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/__init__.py +0 -0
  121. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/registry.py +0 -0
  122. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/__init__.py +0 -0
  123. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/agent.py +0 -0
  124. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/base.py +0 -0
  125. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/collection.py +0 -0
  126. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/config.py +0 -0
  127. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/diagnosis.py +0 -0
  128. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/document_loading.py +0 -0
  129. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/embeddings.py +0 -0
  130. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/embeddings_query.py +0 -0
  131. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/flow.py +0 -0
  132. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/iam.py +0 -0
  133. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/knowledge.py +0 -0
  134. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/library.py +0 -0
  135. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/metadata.py +0 -0
  136. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/nlp_query.py +0 -0
  137. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/primitives.py +0 -0
  138. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/prompt.py +0 -0
  139. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/reranker.py +0 -0
  140. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/retrieval.py +0 -0
  141. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/rows_query.py +0 -0
  142. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/sparql_query.py +0 -0
  143. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/structured_query.py +0 -0
  144. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/text_completion.py +0 -0
  145. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/tool.py +0 -0
  146. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/messaging/translators/triples.py +0 -0
  147. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/objects/__init__.py +0 -0
  148. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/objects/field.py +0 -0
  149. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/objects/object.py +0 -0
  150. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/provenance/__init__.py +0 -0
  151. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/provenance/agent.py +0 -0
  152. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/provenance/namespaces.py +0 -0
  153. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/provenance/triples.py +0 -0
  154. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/provenance/uris.py +0 -0
  155. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/provenance/vocabulary.py +0 -0
  156. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/rdf.py +0 -0
  157. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/__init__.py +0 -0
  158. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/core/__init__.py +0 -0
  159. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/core/metadata.py +0 -0
  160. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/core/primitives.py +0 -0
  161. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/core/topic.py +0 -0
  162. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/knowledge/__init__.py +0 -0
  163. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/knowledge/document.py +0 -0
  164. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/knowledge/embeddings.py +0 -0
  165. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/knowledge/graph.py +0 -0
  166. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/knowledge/knowledge.py +0 -0
  167. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/knowledge/nlp.py +0 -0
  168. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/knowledge/object.py +0 -0
  169. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/knowledge/rows.py +0 -0
  170. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/knowledge/structured.py +0 -0
  171. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/__init__.py +0 -0
  172. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/agent.py +0 -0
  173. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/audit.py +0 -0
  174. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/collection.py +0 -0
  175. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/config.py +0 -0
  176. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/diagnosis.py +0 -0
  177. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/flow.py +0 -0
  178. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/iam.py +0 -0
  179. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/library.py +0 -0
  180. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/llm.py +0 -0
  181. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/lookup.py +0 -0
  182. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/nlp_query.py +0 -0
  183. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/prompt.py +0 -0
  184. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/reranker.py +0 -0
  185. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/retrieval.py +0 -0
  186. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/rows_query.py +0 -0
  187. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/sparql_query.py +0 -0
  188. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/storage.py +0 -0
  189. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/structured_query.py +0 -0
  190. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph/schema/services/tool_service.py +0 -0
  191. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph_base.egg-info/dependency_links.txt +0 -0
  192. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph_base.egg-info/entry_points.txt +0 -0
  193. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph_base.egg-info/requires.txt +0 -0
  194. {trustgraph_base-2.7.0 → trustgraph_base-2.7.2}/trustgraph_base.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-base
3
- Version: 2.7.0
3
+ Version: 2.7.2
4
4
  Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
5
5
  Author-email: "trustgraph.ai" <security@trustgraph.ai>
6
6
  Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
@@ -44,6 +44,8 @@ from . agent_client import AgentClientSpec
44
44
  from . structured_query_client import StructuredQueryClientSpec
45
45
  from . reranker_client import RerankerClientSpec
46
46
  from . reranker_service import RerankerService
47
+ from . keyword_index_service import KeywordIndexService
48
+ from . keyword_index_client import KeywordIndexClientSpec, KeywordIndexClient
47
49
  from . row_embeddings_query_client import RowEmbeddingsQueryClientSpec
48
50
  from . collection_config_handler import CollectionConfigHandler
49
51
  from . audit_publisher import AuditPublisher
@@ -0,0 +1,44 @@
1
+
2
+ import logging
3
+
4
+ from . request_response_spec import RequestResponse, RequestResponseSpec
5
+ from .. schema import KeywordIndexRequest, KeywordIndexResponse
6
+
7
+ # Module logger
8
+ logger = logging.getLogger(__name__)
9
+
10
+ class KeywordIndexClient(RequestResponse):
11
+ async def query(self, query, limit=20, collection="default", timeout=30):
12
+
13
+ resp = await self.request(
14
+ KeywordIndexRequest(
15
+ query = query,
16
+ limit = limit,
17
+ collection = collection
18
+ ),
19
+ timeout=timeout
20
+ )
21
+
22
+ logger.debug("Keyword index response: %s", resp)
23
+
24
+ if resp.error:
25
+ raise RuntimeError(resp.error.message)
26
+
27
+ # Return ChunkMatch objects with chunk_id and score
28
+ return resp.chunks
29
+
30
+ class KeywordIndexClientSpec(RequestResponseSpec):
31
+ def __init__(
32
+ self, request_name, response_name,
33
+ ):
34
+ super(KeywordIndexClientSpec, self).__init__(
35
+ request_name = request_name,
36
+ request_schema = KeywordIndexRequest,
37
+ response_name = response_name,
38
+ response_schema = KeywordIndexResponse,
39
+ impl = KeywordIndexClient,
40
+ # Flow definitions predating the keyword index don't declare
41
+ # these topics; bind only where they exist so one stale
42
+ # definition can't wedge the processor.
43
+ optional = True,
44
+ )
@@ -0,0 +1,132 @@
1
+ """
2
+ Keyword index service base class. A single service owns both sides of the
3
+ lexical index: it consumes Chunk messages off the ingestion stream (the last
4
+ message in the pipeline that still carries chunk text) and answers keyword
5
+ search requests over what it has indexed. Unlike the vector stores, ingest
6
+ and query are not split into two processors: the first backend (SQLite FTS5)
7
+ is a single-file index that cannot be shared between containers, so one
8
+ process must own it. Backends with a server (Elasticsearch/OpenSearch) can
9
+ still be split later behind the same schema.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ from argparse import ArgumentParser
15
+
16
+ import logging
17
+
18
+ from .. schema import Chunk
19
+ from .. schema import KeywordIndexRequest, KeywordIndexResponse
20
+ from .. schema import Error
21
+ from .. exceptions import TooManyRequests
22
+
23
+ from . flow_processor import FlowProcessor
24
+ from . consumer_spec import ConsumerSpec
25
+ from . producer_spec import ProducerSpec
26
+
27
+ # Module logger
28
+ logger = logging.getLogger(__name__)
29
+
30
+ default_ident = "kw-index"
31
+ default_concurrency = 10
32
+
33
+ class KeywordIndexService(FlowProcessor):
34
+
35
+ def __init__(self, **params):
36
+
37
+ id = params.get("id")
38
+ concurrency = params.get("concurrency", default_concurrency)
39
+
40
+ super(KeywordIndexService, self).__init__(
41
+ **params | { "id": id }
42
+ )
43
+
44
+ self.register_specification(
45
+ ConsumerSpec(
46
+ name = "input",
47
+ schema = Chunk,
48
+ handler = self.on_chunk,
49
+ )
50
+ )
51
+
52
+ self.register_specification(
53
+ ConsumerSpec(
54
+ name = "request",
55
+ schema = KeywordIndexRequest,
56
+ handler = self.on_request,
57
+ concurrency = concurrency,
58
+ )
59
+ )
60
+
61
+ self.register_specification(
62
+ ProducerSpec(
63
+ name = "response",
64
+ schema = KeywordIndexResponse,
65
+ )
66
+ )
67
+
68
+ async def on_chunk(self, msg, consumer, flow):
69
+
70
+ try:
71
+
72
+ request = msg.value()
73
+
74
+ # Workspace comes from the flow the message arrived on.
75
+ await self.index_chunk(flow.workspace, request)
76
+
77
+ except TooManyRequests as e:
78
+ raise e
79
+
80
+ except Exception as e:
81
+
82
+ logger.error(f"Exception in keyword index store: {e}", exc_info=True)
83
+ raise e
84
+
85
+ async def on_request(self, msg, consumer, flow):
86
+
87
+ try:
88
+
89
+ request = msg.value()
90
+
91
+ # Sender-produced ID
92
+ id = msg.properties()["id"]
93
+
94
+ logger.debug(f"Handling keyword index query request {id}...")
95
+
96
+ chunks = await self.query_keyword_index(
97
+ flow.workspace, request,
98
+ )
99
+
100
+ logger.debug("Sending keyword index query response...")
101
+ r = KeywordIndexResponse(chunks=chunks, error=None)
102
+ await flow("response").send(r, properties={"id": id})
103
+
104
+ logger.debug("Keyword index query request completed")
105
+
106
+ except Exception as e:
107
+
108
+ logger.error(f"Exception in keyword index query service: {e}", exc_info=True)
109
+
110
+ logger.info("Sending error response...")
111
+
112
+ r = KeywordIndexResponse(
113
+ error=Error(
114
+ type = "keyword-index-query-error",
115
+ message = str(e),
116
+ ),
117
+ chunks=[],
118
+ )
119
+
120
+ await flow("response").send(r, properties={"id": id})
121
+
122
+ @staticmethod
123
+ def add_args(parser: ArgumentParser) -> None:
124
+
125
+ FlowProcessor.add_args(parser)
126
+
127
+ parser.add_argument(
128
+ '-c', '--concurrency',
129
+ type=int,
130
+ default=default_concurrency,
131
+ help=f'Number of concurrent requests (default: {default_concurrency})'
132
+ )
@@ -109,16 +109,28 @@ class RequestResponse(Subscriber):
109
109
  class RequestResponseSpec(Spec):
110
110
  def __init__(
111
111
  self, request_name, request_schema, response_name,
112
- response_schema, impl=RequestResponse
112
+ response_schema, impl=RequestResponse, optional=False
113
113
  ):
114
114
  self.request_name = request_name
115
115
  self.request_schema = request_schema
116
116
  self.response_name = response_name
117
117
  self.response_schema = response_schema
118
118
  self.impl = impl
119
+ self.optional = optional
119
120
 
120
121
  def add(self, flow: Any, processor: Any, definition: dict[str, Any]) -> None:
121
122
 
123
+ # An optional client binds only when the flow definition declares
124
+ # its topics. Older definitions predating the topics would otherwise
125
+ # KeyError here during Flow construction, which wedges the whole
126
+ # processor in a start-flow retry loop; skipping instead leaves
127
+ # flow(name) returning None for the caller to handle per-request.
128
+ topics = definition.get("topics", {})
129
+ if self.optional and (
130
+ self.request_name not in topics
131
+ or self.response_name not in topics):
132
+ return
133
+
122
134
  request_metrics = ProducerMetrics(
123
135
  processor = flow.id, flow = flow.name, name = self.request_name
124
136
  )
@@ -0,0 +1 @@
1
+ __version__ = "2.7.2"
@@ -71,6 +71,27 @@ document_embeddings_response_queue = queue('document-embeddings', cls='response'
71
71
 
72
72
  ############################################################################
73
73
 
74
+ # Keyword index query - lexical (BM25) search over chunk text, the sparse
75
+ # counterpart to the doc embeddings query above. Matches share the ChunkMatch
76
+ # shape so both retrieval paths key on chunk_id; score is "higher is better"
77
+ # in both (BM25 rank scores are negated by the service to match).
78
+
79
+ @dataclass
80
+ class KeywordIndexRequest:
81
+ query: str = ""
82
+ limit: int = 0
83
+ collection: str = ""
84
+
85
+ @dataclass
86
+ class KeywordIndexResponse:
87
+ error: Error | None = None
88
+ chunks: list[ChunkMatch] = field(default_factory=list)
89
+
90
+ keyword_index_request_queue = queue('keyword-index', cls='request')
91
+ keyword_index_response_queue = queue('keyword-index', cls='response')
92
+
93
+ ############################################################################
94
+
74
95
  # Row embeddings query - for semantic/fuzzy matching on row index values
75
96
 
76
97
  @dataclass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-base
3
- Version: 2.7.0
3
+ Version: 2.7.2
4
4
  Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
5
5
  Author-email: "trustgraph.ai" <security@trustgraph.ai>
6
6
  Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
@@ -47,6 +47,8 @@ trustgraph/base/graph_embeddings_store_service.py
47
47
  trustgraph/base/graph_rag_client.py
48
48
  trustgraph/base/iam_client.py
49
49
  trustgraph/base/kafka_backend.py
50
+ trustgraph/base/keyword_index_client.py
51
+ trustgraph/base/keyword_index_service.py
50
52
  trustgraph/base/librarian_client.py
51
53
  trustgraph/base/librarian_spec.py
52
54
  trustgraph/base/llm_service.py
@@ -1 +0,0 @@
1
- __version__ = "2.7.0"