trustgraph-flow 1.3.6__tar.gz → 1.3.8__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 (300) hide show
  1. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/PKG-INFO +1 -1
  2. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/pyproject.toml +1 -0
  3. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/react/service.py +15 -2
  4. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/react/tools.py +37 -0
  5. trustgraph_flow-1.3.8/trustgraph/flow_version.py +1 -0
  6. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/manager.py +4 -0
  7. trustgraph_flow-1.3.8/trustgraph/gateway/dispatch/nlp_query.py +30 -0
  8. trustgraph_flow-1.3.8/trustgraph/gateway/dispatch/structured_query.py +30 -0
  9. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/nlp_query/service.py +3 -5
  10. trustgraph_flow-1.3.8/trustgraph/retrieval/structured_query/__init__.py +1 -0
  11. trustgraph_flow-1.3.8/trustgraph/retrieval/structured_query/__main__.py +5 -0
  12. trustgraph_flow-1.3.8/trustgraph/retrieval/structured_query/service.py +176 -0
  13. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph_flow.egg-info/PKG-INFO +1 -1
  14. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph_flow.egg-info/SOURCES.txt +5 -0
  15. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph_flow.egg-info/entry_points.txt +1 -0
  16. trustgraph_flow-1.3.6/trustgraph/flow_version.py +0 -1
  17. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/README.md +0 -0
  18. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/setup.cfg +0 -0
  19. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/__init__.py +0 -0
  20. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/__init__.py +0 -0
  21. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/mcp_tool/__init__.py +0 -0
  22. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/mcp_tool/__main__.py +0 -0
  23. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/mcp_tool/service.py +0 -0
  24. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/react/__init__.py +0 -0
  25. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/react/__main__.py +0 -0
  26. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/react/agent_manager.py +0 -0
  27. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/react/types.py +0 -0
  28. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/agent/tool_filter.py +0 -0
  29. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/chunking/__init__.py +0 -0
  30. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/chunking/recursive/__init__.py +0 -0
  31. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/chunking/recursive/__main__.py +0 -0
  32. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/chunking/recursive/chunker.py +0 -0
  33. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/chunking/token/__init__.py +0 -0
  34. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/chunking/token/__main__.py +0 -0
  35. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/chunking/token/chunker.py +0 -0
  36. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/config/service/__init__.py +0 -0
  37. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/config/service/__main__.py +0 -0
  38. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/config/service/config.py +0 -0
  39. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/config/service/flow.py +0 -0
  40. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/config/service/service.py +0 -0
  41. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/cores/__init__.py +0 -0
  42. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/cores/__main__.py +0 -0
  43. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/cores/knowledge.py +0 -0
  44. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/cores/service.py +0 -0
  45. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/decoding/__init__.py +0 -0
  46. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/decoding/mistral_ocr/__init__.py +0 -0
  47. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/decoding/mistral_ocr/__main__.py +0 -0
  48. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/decoding/mistral_ocr/processor.py +0 -0
  49. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/decoding/pdf/__init__.py +0 -0
  50. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/decoding/pdf/__main__.py +0 -0
  51. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/decoding/pdf/pdf_decoder.py +0 -0
  52. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/direct/__init__.py +0 -0
  53. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/direct/cassandra.py +0 -0
  54. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/direct/milvus_doc_embeddings.py +0 -0
  55. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/direct/milvus_graph_embeddings.py +0 -0
  56. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/direct/milvus_object_embeddings.py +0 -0
  57. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/__init__.py +0 -0
  58. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/document_embeddings/__init__.py +0 -0
  59. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/document_embeddings/__main__.py +0 -0
  60. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/document_embeddings/embeddings.py +0 -0
  61. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/fastembed/__init__.py +0 -0
  62. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/fastembed/__main__.py +0 -0
  63. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/fastembed/processor.py +0 -0
  64. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/graph_embeddings/__init__.py +0 -0
  65. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/graph_embeddings/__main__.py +0 -0
  66. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/graph_embeddings/embeddings.py +0 -0
  67. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/ollama/__init__.py +0 -0
  68. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/ollama/__main__.py +0 -0
  69. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/embeddings/ollama/processor.py +0 -0
  70. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/external/__init__.py +0 -0
  71. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/external/wikipedia/__init__.py +0 -0
  72. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/external/wikipedia/__main__.py +0 -0
  73. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/external/wikipedia/service.py +0 -0
  74. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/__init__.py +0 -0
  75. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/__init__.py +0 -0
  76. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/agent/__init__.py +0 -0
  77. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/agent/__main__.py +0 -0
  78. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/agent/extract.py +0 -0
  79. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/definitions/__init__.py +0 -0
  80. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/definitions/__main__.py +0 -0
  81. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/definitions/extract.py +0 -0
  82. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/objects/__init__.py +0 -0
  83. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/objects/__main__.py +0 -0
  84. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/objects/processor.py +0 -0
  85. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/relationships/__init__.py +0 -0
  86. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/relationships/__main__.py +0 -0
  87. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/relationships/extract.py +0 -0
  88. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/topics/__init__.py +0 -0
  89. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/topics/__main__.py +0 -0
  90. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/extract/kg/topics/extract.py +0 -0
  91. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/__init__.py +0 -0
  92. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/__main__.py +0 -0
  93. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/auth.py +0 -0
  94. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/config/receiver.py +0 -0
  95. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/agent.py +0 -0
  96. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/config.py +0 -0
  97. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/core_export.py +0 -0
  98. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/core_import.py +0 -0
  99. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/document_embeddings_export.py +0 -0
  100. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/document_embeddings_import.py +0 -0
  101. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/document_load.py +0 -0
  102. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/document_rag.py +0 -0
  103. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/embeddings.py +0 -0
  104. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/entity_contexts_export.py +0 -0
  105. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/entity_contexts_import.py +0 -0
  106. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/flow.py +0 -0
  107. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/graph_embeddings_export.py +0 -0
  108. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/graph_embeddings_import.py +0 -0
  109. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/graph_embeddings_query.py +0 -0
  110. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/graph_rag.py +0 -0
  111. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/knowledge.py +0 -0
  112. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/librarian.py +0 -0
  113. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/mcp_tool.py +0 -0
  114. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/mux.py +0 -0
  115. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/objects_query.py +0 -0
  116. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/prompt.py +0 -0
  117. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/requestor.py +0 -0
  118. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/sender.py +0 -0
  119. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/serialize.py +0 -0
  120. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/streamer.py +0 -0
  121. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/text_completion.py +0 -0
  122. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/text_load.py +0 -0
  123. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/triples_export.py +0 -0
  124. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/triples_import.py +0 -0
  125. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/dispatch/triples_query.py +0 -0
  126. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/endpoint/constant_endpoint.py +0 -0
  127. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/endpoint/manager.py +0 -0
  128. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/endpoint/metrics.py +0 -0
  129. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/endpoint/socket.py +0 -0
  130. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/endpoint/stream_endpoint.py +0 -0
  131. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/endpoint/variable_endpoint.py +0 -0
  132. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/running.py +0 -0
  133. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/service.py +0 -0
  134. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/unused/dbpedia.py +0 -0
  135. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/unused/encyclopedia.py +0 -0
  136. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/gateway/unused/internet_search.py +0 -0
  137. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/librarian/__init__.py +0 -0
  138. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/librarian/__main__.py +0 -0
  139. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/librarian/blob_store.py +0 -0
  140. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/librarian/librarian.py +0 -0
  141. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/librarian/service.py +0 -0
  142. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/metering/__init__.py +0 -0
  143. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/metering/__main__.py +0 -0
  144. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/metering/counter.py +0 -0
  145. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/__init__.py +0 -0
  146. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/__init__.py +0 -0
  147. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/azure/__init__.py +0 -0
  148. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/azure/__main__.py +0 -0
  149. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/azure/llm.py +0 -0
  150. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/azure_openai/__init__.py +0 -0
  151. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/azure_openai/__main__.py +0 -0
  152. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/azure_openai/llm.py +0 -0
  153. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/claude/__init__.py +0 -0
  154. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/claude/__main__.py +0 -0
  155. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/claude/llm.py +0 -0
  156. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/cohere/__init__.py +0 -0
  157. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/cohere/__main__.py +0 -0
  158. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/cohere/llm.py +0 -0
  159. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/googleaistudio/__init__.py +0 -0
  160. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/googleaistudio/__main__.py +0 -0
  161. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/googleaistudio/llm.py +0 -0
  162. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/llamafile/__init__.py +0 -0
  163. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/llamafile/__main__.py +0 -0
  164. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/llamafile/llm.py +0 -0
  165. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/lmstudio/__init__.py +0 -0
  166. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/lmstudio/__main__.py +0 -0
  167. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/lmstudio/llm.py +0 -0
  168. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/mistral/__init__.py +0 -0
  169. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/mistral/__main__.py +0 -0
  170. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/mistral/llm.py +0 -0
  171. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/ollama/__init__.py +0 -0
  172. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/ollama/__main__.py +0 -0
  173. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/ollama/llm.py +0 -0
  174. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/openai/__init__.py +0 -0
  175. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/openai/__main__.py +0 -0
  176. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/openai/llm.py +0 -0
  177. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/tgi/__init__.py +0 -0
  178. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/tgi/__main__.py +0 -0
  179. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/tgi/llm.py +0 -0
  180. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/vllm/__init__.py +0 -0
  181. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/vllm/__main__.py +0 -0
  182. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/model/text_completion/vllm/llm.py +0 -0
  183. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/processing/__init__.py +0 -0
  184. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/processing/__main__.py +0 -0
  185. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/processing/processing.py +0 -0
  186. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/prompt/__init__.py +0 -0
  187. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/prompt/template/__init__.py +0 -0
  188. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/prompt/template/__main__.py +0 -0
  189. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/prompt/template/service.py +0 -0
  190. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/__init__.py +0 -0
  191. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/doc_embeddings/__init__.py +0 -0
  192. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/doc_embeddings/milvus/__init__.py +0 -0
  193. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/doc_embeddings/milvus/__main__.py +0 -0
  194. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/doc_embeddings/milvus/service.py +0 -0
  195. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/doc_embeddings/pinecone/__init__.py +0 -0
  196. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/doc_embeddings/pinecone/__main__.py +0 -0
  197. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/doc_embeddings/pinecone/service.py +0 -0
  198. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/doc_embeddings/qdrant/__init__.py +0 -0
  199. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/doc_embeddings/qdrant/__main__.py +0 -0
  200. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/doc_embeddings/qdrant/service.py +0 -0
  201. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/graph_embeddings/__init__.py +0 -0
  202. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/graph_embeddings/milvus/__init__.py +0 -0
  203. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/graph_embeddings/milvus/__main__.py +0 -0
  204. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/graph_embeddings/milvus/service.py +0 -0
  205. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/graph_embeddings/pinecone/__init__.py +0 -0
  206. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/graph_embeddings/pinecone/__main__.py +0 -0
  207. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/graph_embeddings/pinecone/service.py +0 -0
  208. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/graph_embeddings/qdrant/__init__.py +0 -0
  209. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/graph_embeddings/qdrant/__main__.py +0 -0
  210. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/graph_embeddings/qdrant/service.py +0 -0
  211. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/objects/__init__.py +0 -0
  212. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/objects/cassandra/__init__.py +0 -0
  213. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/objects/cassandra/__main__.py +0 -0
  214. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/objects/cassandra/service.py +0 -0
  215. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/__init__.py +0 -0
  216. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/cassandra/__init__.py +0 -0
  217. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/cassandra/__main__.py +0 -0
  218. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/cassandra/service.py +0 -0
  219. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/falkordb/__init__.py +0 -0
  220. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/falkordb/__main__.py +0 -0
  221. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/falkordb/service.py +0 -0
  222. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/memgraph/__init__.py +0 -0
  223. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/memgraph/__main__.py +0 -0
  224. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/memgraph/service.py +0 -0
  225. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/neo4j/__init__.py +0 -0
  226. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/neo4j/__main__.py +0 -0
  227. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/query/triples/neo4j/service.py +0 -0
  228. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/__init__.py +0 -0
  229. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/document_rag/__init__.py +0 -0
  230. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/document_rag/__main__.py +0 -0
  231. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/document_rag/document_rag.py +0 -0
  232. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/document_rag/rag.py +0 -0
  233. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/graph_rag/__init__.py +0 -0
  234. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/graph_rag/__main__.py +0 -0
  235. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/graph_rag/graph_rag.py +0 -0
  236. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/graph_rag/rag.py +0 -0
  237. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/nlp_query/__init__.py +0 -0
  238. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/retrieval/nlp_query/__main__.py +0 -0
  239. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/rev_gateway/__init__.py +0 -0
  240. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/rev_gateway/__main__.py +0 -0
  241. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/rev_gateway/dispatcher.py +0 -0
  242. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/rev_gateway/service.py +0 -0
  243. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/__init__.py +0 -0
  244. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/doc_embeddings/__init__.py +0 -0
  245. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/doc_embeddings/milvus/__init__.py +0 -0
  246. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/doc_embeddings/milvus/__main__.py +0 -0
  247. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/doc_embeddings/milvus/write.py +0 -0
  248. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/doc_embeddings/pinecone/__init__.py +0 -0
  249. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/doc_embeddings/pinecone/__main__.py +0 -0
  250. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/doc_embeddings/pinecone/write.py +0 -0
  251. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/doc_embeddings/qdrant/__init__.py +0 -0
  252. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/doc_embeddings/qdrant/__main__.py +0 -0
  253. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/doc_embeddings/qdrant/write.py +0 -0
  254. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/graph_embeddings/__init__.py +0 -0
  255. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/graph_embeddings/milvus/__init__.py +0 -0
  256. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/graph_embeddings/milvus/__main__.py +0 -0
  257. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/graph_embeddings/milvus/write.py +0 -0
  258. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/graph_embeddings/pinecone/__init__.py +0 -0
  259. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/graph_embeddings/pinecone/__main__.py +0 -0
  260. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/graph_embeddings/pinecone/write.py +0 -0
  261. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/graph_embeddings/qdrant/__init__.py +0 -0
  262. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/graph_embeddings/qdrant/__main__.py +0 -0
  263. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/graph_embeddings/qdrant/write.py +0 -0
  264. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/knowledge/__init__.py +0 -0
  265. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/knowledge/__main__.py +0 -0
  266. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/knowledge/store.py +0 -0
  267. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/object_embeddings/__init__.py +0 -0
  268. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/object_embeddings/milvus/__init__.py +0 -0
  269. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/object_embeddings/milvus/__main__.py +0 -0
  270. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/object_embeddings/milvus/write.py +0 -0
  271. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/objects/__init__.py +0 -0
  272. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/objects/cassandra/__init__.py +0 -0
  273. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/objects/cassandra/__main__.py +0 -0
  274. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/objects/cassandra/write.py +0 -0
  275. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/rows/__init__.py +0 -0
  276. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/rows/cassandra/__init__.py +0 -0
  277. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/rows/cassandra/__main__.py +0 -0
  278. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/rows/cassandra/write.py +0 -0
  279. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/__init__.py +0 -0
  280. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/cassandra/__init__.py +0 -0
  281. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/cassandra/__main__.py +0 -0
  282. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/cassandra/write.py +0 -0
  283. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/falkordb/__init__.py +0 -0
  284. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/falkordb/__main__.py +0 -0
  285. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/falkordb/write.py +0 -0
  286. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/memgraph/__init__.py +0 -0
  287. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/memgraph/__main__.py +0 -0
  288. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/memgraph/write.py +0 -0
  289. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/neo4j/__init__.py +0 -0
  290. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/neo4j/__main__.py +0 -0
  291. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/storage/triples/neo4j/write.py +0 -0
  292. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/tables/__init__.py +0 -0
  293. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/tables/config.py +0 -0
  294. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/tables/knowledge.py +0 -0
  295. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/tables/library.py +0 -0
  296. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/template/__init__.py +0 -0
  297. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph/template/prompt_manager.py +0 -0
  298. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph_flow.egg-info/dependency_links.txt +0 -0
  299. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph_flow.egg-info/requires.txt +0 -0
  300. {trustgraph_flow-1.3.6 → trustgraph_flow-1.3.8}/trustgraph_flow.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-flow
3
- Version: 1.3.6
3
+ Version: 1.3.8
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
@@ -96,6 +96,7 @@ pdf-ocr-mistral = "trustgraph.decoding.mistral_ocr:run"
96
96
  prompt-template = "trustgraph.prompt.template:run"
97
97
  rev-gateway = "trustgraph.rev_gateway:run"
98
98
  run-processing = "trustgraph.processing:run"
99
+ structured-query = "trustgraph.retrieval.structured_query:run"
99
100
  text-completion-azure = "trustgraph.model.text_completion.azure:run"
100
101
  text-completion-azure-openai = "trustgraph.model.text_completion.azure_openai:run"
101
102
  text-completion-claude = "trustgraph.model.text_completion.claude:run"
@@ -12,11 +12,11 @@ import logging
12
12
  logger = logging.getLogger(__name__)
13
13
 
14
14
  from ... base import AgentService, TextCompletionClientSpec, PromptClientSpec
15
- from ... base import GraphRagClientSpec, ToolClientSpec
15
+ from ... base import GraphRagClientSpec, ToolClientSpec, StructuredQueryClientSpec
16
16
 
17
17
  from ... schema import AgentRequest, AgentResponse, AgentStep, Error
18
18
 
19
- from . tools import KnowledgeQueryImpl, TextCompletionImpl, McpToolImpl, PromptImpl
19
+ from . tools import KnowledgeQueryImpl, TextCompletionImpl, McpToolImpl, PromptImpl, StructuredQueryImpl
20
20
  from . agent_manager import AgentManager
21
21
  from ..tool_filter import validate_tool_config, filter_tools_by_group_and_state, get_next_state
22
22
 
@@ -80,6 +80,13 @@ class Processor(AgentService):
80
80
  )
81
81
  )
82
82
 
83
+ self.register_specification(
84
+ StructuredQueryClientSpec(
85
+ request_name = "structured-query-request",
86
+ response_name = "structured-query-response",
87
+ )
88
+ )
89
+
83
90
  async def on_tools_config(self, config, version):
84
91
 
85
92
  logger.info(f"Loading configuration version {version}")
@@ -138,6 +145,12 @@ class Processor(AgentService):
138
145
  template_id=data.get("template"),
139
146
  arguments=arguments
140
147
  )
148
+ elif impl_id == "structured-query":
149
+ impl = functools.partial(
150
+ StructuredQueryImpl,
151
+ collection=data.get("collection")
152
+ )
153
+ arguments = StructuredQueryImpl.get_arguments()
141
154
  else:
142
155
  raise RuntimeError(
143
156
  f"Tool type {impl_id} not known"
@@ -85,6 +85,43 @@ class McpToolImpl:
85
85
  return json.dumps(output)
86
86
 
87
87
 
88
+ # This tool implementation knows how to query structured data using natural language
89
+ class StructuredQueryImpl:
90
+ def __init__(self, context, collection=None):
91
+ self.context = context
92
+ self.collection = collection # For multi-tenant scenarios
93
+
94
+ @staticmethod
95
+ def get_arguments():
96
+ return [
97
+ Argument(
98
+ name="question",
99
+ type="string",
100
+ description="Natural language question about structured data (tables, databases, etc.)"
101
+ )
102
+ ]
103
+
104
+ async def invoke(self, **arguments):
105
+ client = self.context("structured-query-request")
106
+ logger.debug("Structured query question...")
107
+
108
+ result = await client.structured_query(
109
+ arguments.get("question")
110
+ )
111
+
112
+ # Format the result for the agent
113
+ if isinstance(result, dict):
114
+ if result.get("error"):
115
+ return f"Error: {result['error']['message']}"
116
+ elif result.get("data"):
117
+ # Pretty format JSON data for agent consumption
118
+ return json.dumps(result["data"], indent=2)
119
+ else:
120
+ return "No data returned"
121
+ else:
122
+ return str(result)
123
+
124
+
88
125
  # This tool implementation knows how to execute prompt templates
89
126
  class PromptImpl:
90
127
  def __init__(self, context, template_id, arguments=None):
@@ -0,0 +1 @@
1
+ __version__ = "1.3.8"
@@ -20,6 +20,8 @@ from . graph_rag import GraphRagRequestor
20
20
  from . document_rag import DocumentRagRequestor
21
21
  from . triples_query import TriplesQueryRequestor
22
22
  from . objects_query import ObjectsQueryRequestor
23
+ from . nlp_query import NLPQueryRequestor
24
+ from . structured_query import StructuredQueryRequestor
23
25
  from . embeddings import EmbeddingsRequestor
24
26
  from . graph_embeddings_query import GraphEmbeddingsQueryRequestor
25
27
  from . mcp_tool import McpToolRequestor
@@ -52,6 +54,8 @@ request_response_dispatchers = {
52
54
  "graph-embeddings": GraphEmbeddingsQueryRequestor,
53
55
  "triples": TriplesQueryRequestor,
54
56
  "objects": ObjectsQueryRequestor,
57
+ "nlp-query": NLPQueryRequestor,
58
+ "structured-query": StructuredQueryRequestor,
55
59
  }
56
60
 
57
61
  global_dispatchers = {
@@ -0,0 +1,30 @@
1
+ from ... schema import QuestionToStructuredQueryRequest, QuestionToStructuredQueryResponse
2
+ from ... messaging import TranslatorRegistry
3
+
4
+ from . requestor import ServiceRequestor
5
+
6
+ class NLPQueryRequestor(ServiceRequestor):
7
+ def __init__(
8
+ self, pulsar_client, request_queue, response_queue, timeout,
9
+ consumer, subscriber,
10
+ ):
11
+
12
+ super(NLPQueryRequestor, self).__init__(
13
+ pulsar_client=pulsar_client,
14
+ request_queue=request_queue,
15
+ response_queue=response_queue,
16
+ request_schema=QuestionToStructuredQueryRequest,
17
+ response_schema=QuestionToStructuredQueryResponse,
18
+ subscription = subscriber,
19
+ consumer_name = consumer,
20
+ timeout=timeout,
21
+ )
22
+
23
+ self.request_translator = TranslatorRegistry.get_request_translator("nlp-query")
24
+ self.response_translator = TranslatorRegistry.get_response_translator("nlp-query")
25
+
26
+ def to_request(self, body):
27
+ return self.request_translator.to_pulsar(body)
28
+
29
+ def from_response(self, message):
30
+ return self.response_translator.from_response_with_completion(message)
@@ -0,0 +1,30 @@
1
+ from ... schema import StructuredQueryRequest, StructuredQueryResponse
2
+ from ... messaging import TranslatorRegistry
3
+
4
+ from . requestor import ServiceRequestor
5
+
6
+ class StructuredQueryRequestor(ServiceRequestor):
7
+ def __init__(
8
+ self, pulsar_client, request_queue, response_queue, timeout,
9
+ consumer, subscriber,
10
+ ):
11
+
12
+ super(StructuredQueryRequestor, self).__init__(
13
+ pulsar_client=pulsar_client,
14
+ request_queue=request_queue,
15
+ response_queue=response_queue,
16
+ request_schema=StructuredQueryRequest,
17
+ response_schema=StructuredQueryResponse,
18
+ subscription = subscriber,
19
+ consumer_name = consumer,
20
+ timeout=timeout,
21
+ )
22
+
23
+ self.request_translator = TranslatorRegistry.get_request_translator("structured-query")
24
+ self.response_translator = TranslatorRegistry.get_response_translator("structured-query")
25
+
26
+ def to_request(self, body):
27
+ return self.request_translator.to_pulsar(body)
28
+
29
+ def from_response(self, message):
30
+ return self.response_translator.from_response_with_completion(message)
@@ -8,10 +8,10 @@ import logging
8
8
  from typing import Dict, Any, Optional, List
9
9
 
10
10
  from ...schema import QuestionToStructuredQueryRequest, QuestionToStructuredQueryResponse
11
- from ...schema import PromptRequest, PromptResponse
11
+ from ...schema import PromptRequest
12
12
  from ...schema import Error, RowSchema, Field as SchemaField
13
13
 
14
- from ...base import FlowProcessor, ConsumerSpec, ProducerSpec, ClientSpec
14
+ from ...base import FlowProcessor, ConsumerSpec, ProducerSpec, PromptClientSpec
15
15
 
16
16
  # Module logger
17
17
  logger = logging.getLogger(__name__)
@@ -57,11 +57,9 @@ class Processor(FlowProcessor):
57
57
 
58
58
  # Client spec for calling prompt service
59
59
  self.register_specification(
60
- ClientSpec(
60
+ PromptClientSpec(
61
61
  request_name = "prompt-request",
62
62
  response_name = "prompt-response",
63
- request_schema = PromptRequest,
64
- response_schema = PromptResponse
65
63
  )
66
64
  )
67
65
 
@@ -0,0 +1 @@
1
+ from . service import *
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env python3
2
+
3
+ from . service import run
4
+
5
+ run()
@@ -0,0 +1,176 @@
1
+ """
2
+ Structured Query Service - orchestrates natural language question processing.
3
+ Takes a question, converts it to GraphQL via nlp-query, executes via objects-query,
4
+ and returns the results.
5
+ """
6
+
7
+ import json
8
+ import logging
9
+ from typing import Dict, Any, Optional
10
+
11
+ from ...schema import StructuredQueryRequest, StructuredQueryResponse
12
+ from ...schema import QuestionToStructuredQueryRequest, QuestionToStructuredQueryResponse
13
+ from ...schema import ObjectsQueryRequest, ObjectsQueryResponse
14
+ from ...schema import Error
15
+
16
+ from ...base import FlowProcessor, ConsumerSpec, ProducerSpec, RequestResponseSpec
17
+
18
+ # Module logger
19
+ logger = logging.getLogger(__name__)
20
+
21
+ default_ident = "structured-query"
22
+
23
+ class Processor(FlowProcessor):
24
+
25
+ def __init__(self, **params):
26
+
27
+ id = params.get("id", default_ident)
28
+
29
+ super(Processor, self).__init__(
30
+ **params | {
31
+ "id": id,
32
+ }
33
+ )
34
+
35
+ self.register_specification(
36
+ ConsumerSpec(
37
+ name = "request",
38
+ schema = StructuredQueryRequest,
39
+ handler = self.on_message
40
+ )
41
+ )
42
+
43
+ self.register_specification(
44
+ ProducerSpec(
45
+ name = "response",
46
+ schema = StructuredQueryResponse,
47
+ )
48
+ )
49
+
50
+ # Client spec for calling NLP query service
51
+ self.register_specification(
52
+ RequestResponseSpec(
53
+ request_name = "nlp-query-request",
54
+ response_name = "nlp-query-response",
55
+ request_schema = QuestionToStructuredQueryRequest,
56
+ response_schema = QuestionToStructuredQueryResponse
57
+ )
58
+ )
59
+
60
+ # Client spec for calling objects query service
61
+ self.register_specification(
62
+ RequestResponseSpec(
63
+ request_name = "objects-query-request",
64
+ response_name = "objects-query-response",
65
+ request_schema = ObjectsQueryRequest,
66
+ response_schema = ObjectsQueryResponse
67
+ )
68
+ )
69
+
70
+ logger.info("Structured Query service initialized")
71
+
72
+ async def on_message(self, msg, consumer, flow):
73
+ """Handle incoming structured query request"""
74
+
75
+ try:
76
+ request = msg.value()
77
+
78
+ # Sender-produced ID
79
+ id = msg.properties()["id"]
80
+
81
+ logger.info(f"Handling structured query request {id}: {request.question[:100]}...")
82
+
83
+ # Step 1: Convert question to GraphQL using NLP query service
84
+ logger.info("Step 1: Converting question to GraphQL")
85
+ nlp_request = QuestionToStructuredQueryRequest(
86
+ question=request.question,
87
+ max_results=100 # Default limit
88
+ )
89
+
90
+ nlp_response = await self.client("nlp-query-request").request(nlp_request)
91
+
92
+ if nlp_response.error is not None:
93
+ raise Exception(f"NLP query service error: {nlp_response.error.message}")
94
+
95
+ if not nlp_response.graphql_query:
96
+ raise Exception("NLP query service returned empty GraphQL query")
97
+
98
+ logger.info(f"Generated GraphQL query: {nlp_response.graphql_query[:200]}...")
99
+ logger.info(f"Detected schemas: {nlp_response.detected_schemas}")
100
+ logger.info(f"Confidence: {nlp_response.confidence}")
101
+
102
+ # Step 2: Execute GraphQL query using objects query service
103
+ logger.info("Step 2: Executing GraphQL query")
104
+
105
+ # Convert variables to strings (GraphQL variables can be various types, but Pulsar schema expects strings)
106
+ variables_as_strings = {}
107
+ if nlp_response.variables:
108
+ for key, value in nlp_response.variables.items():
109
+ if isinstance(value, str):
110
+ variables_as_strings[key] = value
111
+ else:
112
+ variables_as_strings[key] = str(value)
113
+
114
+ # For now, we'll use default user/collection values
115
+ # In a real implementation, these would come from authentication/context
116
+ objects_request = ObjectsQueryRequest(
117
+ user="default", # TODO: Get from authentication context
118
+ collection="default", # TODO: Get from request context
119
+ query=nlp_response.graphql_query,
120
+ variables=variables_as_strings,
121
+ operation_name=None
122
+ )
123
+
124
+ objects_response = await self.client("objects-query-request").request(objects_request)
125
+
126
+ if objects_response.error is not None:
127
+ raise Exception(f"Objects query service error: {objects_response.error.message}")
128
+
129
+ # Handle GraphQL errors from the objects query service
130
+ graphql_errors = []
131
+ if objects_response.errors:
132
+ for gql_error in objects_response.errors:
133
+ graphql_errors.append(f"{gql_error.message} (path: {gql_error.path})")
134
+
135
+ logger.info("Step 3: Returning results")
136
+
137
+ # Create response
138
+ response = StructuredQueryResponse(
139
+ error=None,
140
+ data=objects_response.data or "null", # JSON string
141
+ errors=graphql_errors
142
+ )
143
+
144
+ logger.info("Sending structured query response...")
145
+ await flow("response").send(response, properties={"id": id})
146
+
147
+ logger.info("Structured query request completed")
148
+
149
+ except Exception as e:
150
+
151
+ logger.error(f"Exception in structured query service: {e}", exc_info=True)
152
+
153
+ logger.info("Sending error response...")
154
+
155
+ response = StructuredQueryResponse(
156
+ error = Error(
157
+ type = "structured-query-error",
158
+ message = str(e),
159
+ ),
160
+ data = "null",
161
+ errors = []
162
+ )
163
+
164
+ await flow("response").send(response, properties={"id": id})
165
+
166
+ @staticmethod
167
+ def add_args(parser):
168
+ """Add command-line arguments"""
169
+
170
+ FlowProcessor.add_args(parser)
171
+
172
+ # No additional arguments needed for this orchestrator service
173
+
174
+ def run():
175
+ """Entry point for structured-query command"""
176
+ Processor.launch(default_ident, __doc__)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-flow
3
- Version: 1.3.6
3
+ Version: 1.3.8
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
@@ -102,12 +102,14 @@ trustgraph/gateway/dispatch/librarian.py
102
102
  trustgraph/gateway/dispatch/manager.py
103
103
  trustgraph/gateway/dispatch/mcp_tool.py
104
104
  trustgraph/gateway/dispatch/mux.py
105
+ trustgraph/gateway/dispatch/nlp_query.py
105
106
  trustgraph/gateway/dispatch/objects_query.py
106
107
  trustgraph/gateway/dispatch/prompt.py
107
108
  trustgraph/gateway/dispatch/requestor.py
108
109
  trustgraph/gateway/dispatch/sender.py
109
110
  trustgraph/gateway/dispatch/serialize.py
110
111
  trustgraph/gateway/dispatch/streamer.py
112
+ trustgraph/gateway/dispatch/structured_query.py
111
113
  trustgraph/gateway/dispatch/text_completion.py
112
114
  trustgraph/gateway/dispatch/text_load.py
113
115
  trustgraph/gateway/dispatch/triples_export.py
@@ -225,6 +227,9 @@ trustgraph/retrieval/graph_rag/rag.py
225
227
  trustgraph/retrieval/nlp_query/__init__.py
226
228
  trustgraph/retrieval/nlp_query/__main__.py
227
229
  trustgraph/retrieval/nlp_query/service.py
230
+ trustgraph/retrieval/structured_query/__init__.py
231
+ trustgraph/retrieval/structured_query/__main__.py
232
+ trustgraph/retrieval/structured_query/service.py
228
233
  trustgraph/rev_gateway/__init__.py
229
234
  trustgraph/rev_gateway/__main__.py
230
235
  trustgraph/rev_gateway/dispatcher.py
@@ -41,6 +41,7 @@ pdf-ocr-mistral = trustgraph.decoding.mistral_ocr:run
41
41
  prompt-template = trustgraph.prompt.template:run
42
42
  rev-gateway = trustgraph.rev_gateway:run
43
43
  run-processing = trustgraph.processing:run
44
+ structured-query = trustgraph.retrieval.structured_query:run
44
45
  text-completion-azure = trustgraph.model.text_completion.azure:run
45
46
  text-completion-azure-openai = trustgraph.model.text_completion.azure_openai:run
46
47
  text-completion-claude = trustgraph.model.text_completion.claude:run
@@ -1 +0,0 @@
1
- __version__ = "1.3.6"